Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 委託模式 樣本 * * @create_date: 2010-01-04 */ class PlayList { var $_songs = array(); var $_object = null; function PlayList($type) { $object = $type."PlayListDelegation"; $this->_object = new $object(); } function addSong($location,$title)
Time of Update: 2016-07-29
使用yii架構的url路徑一般形如hostname/?r=xxxx/xxxx/xxxx&sdfs=dsfdsf 我們可以看到有時會使用protected目錄下的controller,有時會使用module中controller,具體是如何處理的呢,請看如下的分析: 以下代碼摘自yii架構核心代碼%Yiiroot%/framework/web/CWebApplication.php 複製代碼 代碼如下:================================================
Time of Update: 2016-07-29
狀態state模式是GOF23種模式中的一種,和命令模式一樣,也是一種行為模式。狀態模式和命令模式相當像,一樣是“介面—實作類別”這種模式的應用,是面向介面編程原則的體現。
Time of Update: 2016-07-29
模式定義:面板模式(Facade Pattern):外部與一個子系統的通訊必須通過一個統一的外觀對象進行,為子系統中的一組介面提供一個一致的介面,面板模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。面板模式又稱為門面模式,它是一種對象結構型模式。 模式結構: 面板模式的就是讓client用戶端以一種簡單的方式來調用比較複雜的系統,來完成一件事情。 Subsystem: 複製代碼 代碼如下:class car { public function start() {
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * Factory 方法模式 * * 定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化,使用一個類的執行個體化延遲到其子類 */ /* class DBFactory { public static function create($type) { swtich($type) { case "Mysql": return new MysqlDB(); break; case "Postgre": return new PostgreDB(); break;
Time of Update: 2016-07-29
比如當前檔案是放在(d:\www\)下,檔案名稱是test.php。 測試的代碼如下: 複製代碼 代碼如下:echo __FILE__ ; // 取得當前檔案的絕對位址,結果:D:\www\test.php echo dirname(__FILE__); // 取得當前檔案所在的絕對目錄,結果:D:\www\ echo dirname(dirname(__FILE__)); //取得當前檔案的上一層目錄名,結果:D:\ ?> 使用方法提示, dirname(__FILE__)
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 職責鏈模式 * * 為解除請求的寄件者和接收者之間的耦合,而使用多個對象都用機會處理這個請求,將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它 * */ abstract class Handler { protected $_handler = null; public function setSuccessor($handler) { $this->_handler = $handler; } abstract function
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 解譯器 樣本 * * @create_date: 2010-01-04 */ class Expression { function interpreter($str) { return $str; } } class ExpressionNum extends Expression { function interpreter($str) { switch($str) { case "0": return "零"; case "1": return "一";
Time of Update: 2016-07-29
用戶端發送的請求類似這樣 複製代碼 代碼如下:$request = array('parameters00','parameters01'); 在用戶端的請求你可以制定參數的資料類型,你可以將每個參數單獨的放進一個數組,在數組的第二個位置制定參數的資料類型,類似這樣 複製代碼 代碼如下:$request = array( array('parameters00','string'), array('parameters01','boolean'),
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 訪問者模式 * * 表示一個作用於某對象結構中的各元素的操作,可以在不改變各元素的類的前提下定義作用於這些元素的新操作 * */ abstract class Visitor { abstract public function visitCroncreteElementA($element); abstract public function visitCroncreteElementB($element); } class ConcreteVisitor1
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 觀察者模式 * * 定義對象間的一種一對多的依賴關係,以便當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動重新整理 * 能夠便利地建立查看目標對象狀態的對象,並且提供與核心對象非耦合的指定功能 * 外掛程式系統 */ class Observerable { private $_observers = array(); public function registerObserver($observer) { $this->_observers[]
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 單例模式 * * 保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點 * */ class Singleton { static private $_instance = null; private function __construct() { } static public function getInstance() { if(is_null(self::$_instance)) { self::$_instance = new Singleton(
Time of Update: 2016-07-29
複製代碼 代碼如下:ini_set("safe_mode",true); ?> 表 42-2. 安全模式限制函數函數名限制dbmopen()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 UID(所有者)。dbase_open()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 UID(所有者)。filepro()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 UID(所有者)。filepro_rowcount()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的
Time of Update: 2016-07-29
我們知道很多在網上下載的論壇或者個人部落格程式都有安裝的頁面,要製作這樣的安裝程式就需要用到sql檔案建立資料庫。 只對phpmyadmin匯出的sql檔案有效 複製代碼 代碼如下:$dbfile="test.sql"; $c //擷取建立的資料 //去掉注釋 $c/--.*\n/iU","",$content); //替換首碼 $c $carr=array(); $iarr=array(); //提取create preg_match_all("/Create table .*\(.*\).*
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 命令模式 * * 將一個請求封裝為一個對象從而使你可用不同的請求對客戶進行參數化,對請求排除或記錄請求日誌,以及支援可取消的操作 */ interface Command { public function execute(); } class Invoker { private $_command = array(); public function setCommand($command) { $this->_command[] = $command; }
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 建造者模式 * * 將一個複雜物件的構建與它的表示分離,使用同樣的構建過程可以建立不同的表示 */ class Product { public $_type = null; public $_size = null; public $_color = null; public function setType($type) { echo "set product type"; $this->_type = $type; } public function
Time of Update: 2016-07-29
複製代碼 代碼如下:/*template.class.php @康盛微博 模板提取類 覺得這個模板好用 花些時間獨立出來。 by 雷日錦 @看了一下ctt 這個模板 跟 phpcms的模板類似 難道?? ^_^ 嘿嘿!!! @ 微博 http://weibo.com/lrjxgl @ 好東西大家共用 磕磕絆絆的提取出來 有問題請提出來 @ 模板檔案預設為 .htm $tpl = new template('skin',"default"); $tpl->objdir='tpp';
Time of Update: 2016-07-29
代理,指的就是一個角色代表另一個角色採取行動,就象生活中,一個紅酒廠商,是不會直接把紅酒零售客戶的,都是通過代理來完成他的銷售業務。而客戶,也不用為了喝紅酒而到處找工廠,他只要找到廠商在當地的代理就行了,具體紅酒工廠在那裡,客戶不用關心,代理會幫他處理。 代理模式,就是給某一對象提供代理對象,並由代理對象控制具體對象的引用。 代理模式涉及的角色: 抽象主題角色,聲明了代理主題和真實主題的公用介面,使任何需要真實主題的地方都能用代理主題代替。
Time of Update: 2016-07-29
使用mvc開發模式是為了什嗎?? MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。 我們有必要嚴格區分mvc的三層模式模式嗎? m與c的跨界使用更有利於快速開發。 在我使用的架構中 m與c可以跨界使用,並不嚴格區分。有時候很想直接在c裡處理m的事,因為業務的資料處理並不多見,也許只有一次。 這樣在m裡面寫個函數, 再用c調用,變得複雜,這與php快速開發理念相悖。 我們需要的什嗎? 1.視圖分離
Time of Update: 2016-07-29
複製代碼 代碼如下: /** * 組合模式 * * 將對象組合成樹形結構以表示"部分-整體"的階層,使得客戶對單個對象和綜合物件的使用具有一致性 */ abstract class MenuComponent { public function add($component){} public function remove($component){} public function getName(){} public function getUrl(){} public