原创 YII框架分析筆記8:CDataProvider

CDataProvider,顧名思義,數據提供者,它提供了三個抽象方法(fetchData,、fetchKeys 和 calculateTotalItemCount),分別爲調用不同數據結構的數據提供了獲取數據、獲取鍵值、獲取數量的,接口

原创 設計模式php實例:策略模式

策略模式在於定義一系列的算法,並把它們封裝起來,算法可以自由添加和替換,符合開閉原則,它降低了算法與具體的業務邏輯的耦合性。它還有一個優點是避免了代碼中一些條件判斷語句,當代碼中出現了太多得判斷語句的時候也可以考慮一下是否可以用策略模式。

原创 zendFramework分析1:框架執行流程

1、通過url重寫請求都定位到入口文件,默認是index.php 2、入口文件加載系統的配置,單例生成前端控制器。老版本的框架需要在入口文件中添加部分配置和插件註冊,後來由專門負責程序引導的Bootstrap類控制 3、前端控制器初始化請

原创 is_calleable、function_exits與method_exits函數用法

bool is_callable ( mixed $var [, bool $syntax_only [, string $callable_name ]] ) is_calleable是測參數是否爲合法的可調用結構 第一個參數可以

原创 設計模式php實例:適配器模式

適配器模式將一個類的換成客戶端需要的另一個接口,使原本不兼容的接口能一起工作。一個現實中的例子,假如屋裏牆上只有兩項插口,而風扇有三個插頭,這時需要再拿一個移動插線板,插線板接入牆壁插口的一段是兩項插頭,插線板另外一段能夠提供三項插口給風

原创 php多關鍵字匹配擴展

由於對php擴展的api不熟悉,擴展中大部分都是用原生c寫的,也不支持php多線程的情況。 擴展使用了wu-manber匹配算法(http://blog.csdn.net/pi9nc/article/details/9124623),可以

原创 awesome PHP之事件管理evenement

事件管理一直是js之類的語言的法寶,事件註冊和調用過程中能減少代碼的複雜程度,evenement是基於php5.4特性寫的一個時間管理程序。 namespace Evenement; trait EventEmitterTrait {

原创 單元測試代碼生成器

   測試驅動開發的思想是先有測試後有業務代碼,但有些時候我們更習慣先給業務代碼餓方法命名好,然後寫測試代碼。下面針對自己參與的基於zendframework框架的系統寫了一個簡單的單元測試代碼腳手架。 <?php /** * a

原创 MySQL存儲引擎的選擇

兩種類型最主要的差別就是Innodb 支持事務處理與外鍵和行級鎖.而MyISAM不支持.所以MyISAM往往就容易被人認爲只適合在小項目中使用。    我作爲使用MySQL的用戶角度出發,Innodb和MyISAM都是比較喜歡的,但是

原创 linux下php多進程編程

    php在很多情況用在web開發中,通常情況下一次請求對應一個php進程,進程執行完返回數據銷燬執行過程中的中間變量代碼,在一些perfork類型的的sapi中,它又會等待下一個請求過來重新初始化執行環境、執行腳本,已經執行完成後的

原创 awesome PHP之monolog

monolog是php下比較全又容易擴展的記錄日誌組件。目前有包括Symfony 、Laravel、 CakePHP等諸多知名php框架都內置了monolog。可以通過github clone https://github.com/Se

原创 awesome PHP之依賴注入容器pimple

依賴注入(Dependency Injection)又叫控制反轉(Inversion of Control)是一個重要的面向對象編程的法則來削減計算機程序的耦合問題,它能消除組件間的直接依賴關係,讓組件的

原创 設計模式總結

創建型模式 Singleton模式解決的是實體對象個數的問題。除了Singleton之外,其他創建型模式解決的都是new所帶來的耦合關係。 Factory Method,Abstract Factory,Builder都需要一個額外的工廠

原创 AngularJS開發指南

AngularJS開發指南01:AngularJS簡介2669 angularjs  03-29 18:12  10-23 18:08  12 AngularJSAngularJS 開發指南 AngularJS開發指南02

原创 php的數組和spl固定數組

php固定數組隸屬於php標準庫(spl)的一種數據結構。和php普通數組相比,固定數組只能用整形定義其下標,並且如名字所示,是固定長度,它的優點是比普通數組佔用的內存少,而且更快速,具體原因下文會做分析,先做一個簡單的測試,將10W個a