微型PHP框架:MicroPHP
MicroPHP是一個免費、開源、敏捷的MVC模式的PHP開發框架。它易拓展而不失靈活,可以輕松對應大中小型項目。MicroPHP沒有大而全的功能,只給你最需要的底層功能,但是給你無限的靈活拓展能力。其它框架都有的基本特性這里就不一一羅列。
說一下MicroPHP的特性:
1. 整個框架核心就一個文件MicroPHP.php(壓縮后的文件MicroPHP.min.php,140KB左右)。
2. 入口文件index.php也是整個項目的配置文件,一個入口文件就是一個項目的入口,可以自定義多個入口文件達到不同項目共存的目的,項目之間隨意共享類庫、幫助文件等目錄,框架核心文件采用零侵入式編寫,整個框架的運行不依賴任何外部變量,初始化的時候只要通過WoniuRouter::setConfig($system)
注入配置,然后WoniuRouter::loadClass()
執行即可。
3. 獨特的插件模式:這是MicroPHP的一大特色,插件模式就是可以把框架嵌入到任何現有的程序代碼到中,只要在使用前包含plugin.php(要保證 plugin.php和MicroPHP.min.php在一個目錄)即可,然后按著MicroPHP框架的各種特性寫代碼,插件模式和正常模式唯一不同的就是插件模式下MicroPHP的路由功能不再使用,其它特性完全保留。
插件模式有用的有三個方法:
//使用默認數據庫配置取得數據庫ActiveRecord操作對象,然后可以$db->get('tablename')->result_array();這樣去操作數據庫。 (1).$db=WoniuLoader::instance()->database(null,true); /實例化一個welcome控制器,然后調用其doIndex方法 (2).WoniuController::instance('welcome')->doIndex(); //實例化控制器目錄里admin文件夾下面的login控制器,然后調用其doIndex方法 WoniuController::instance('admin.login')->doIndex();//admin是文件夾 //實例化一個User模型,然后調用其add方法 (3).WoniuModel::instance('User')->add('snail');
可以看出當想使用MicroPHP的一些方便的功能時,比如數據庫操作,這個時候不需要去實例化一個控制器或者模型,只要通過
WoniuLoader::instance()
返回的對象去獲取即可。 WoniuController::instance($path)、WoniuModel::instance($path)
其中$path支持文件夾用點的方式引用。 當你現在開發的程序使用了一個不友好的框架或者干脆沒有框架的時候,你每次編碼都很痛苦,而且不能換框架或者修改程序結構,那么這個時候你只要引入MicroPHP,然后使用插件模式就能優雅方便的去寫代碼了。
5. 類庫采用懶加載模式,只要按著規定命名規則,然后把你的類庫文件扔到類庫文件夾,在控制器或者模型中直接new 類庫名()即可,系統會自動加載相應的類庫文件。
6. 沒有視圖就不能指定視圖數據?文件可以include共享那么視圖為什么不能共享數據呢?在MicroPHP里面你不再有這個困撓,MicroPHP可以在
$this->view_vars
數組里面存放你的任何想在視圖里面使用的全局數據。 特別是網站頭部導航用戶數據全站每個頁面都用到,那么可以自定義個控制器父類,然后和在父類構造方法里面初始化這個用戶數據,放到$this->view_vars
里面,那么所有的控制器再也不用重復的去取用戶數據傳給視圖。 7. 靈活的session托管,支持的管理類型:
mongodb,mysql,memcache,redis
.當然也可以用系統默認的管理方式.session托管是可選的,根據項目具體情況擇優選用即可。session托管的好處很多,比如:支持分布式、精確控制session過期時間,等等。 8. 靈活的緩存機制。
(1).可用的方式緩存驅動有:
auto,apc,sqlite,files,memcached,redis,wincache,xcache,memcache
。auto自動模式尋找的順序是 : apc,sqlite,files,memcached,redis,wincache,xcache,memcache
。 (2).緩存配置有個第二驅動機制,比如:當你現在在代碼中使用的是memcached, apc等等,然后你的代碼轉移到了一個新的服務器而且不支持memcached 或 apc這時候怎么辦呢?設置第二驅動即可,當你設置的驅動不支持的時候,系統就使用第二驅動。
(3).易拓展的緩存驅動,如果上面的驅動類型還不能滿足項目的緩存需求,那么可以拓展緩存驅動,驅動編寫可以參考源文件里面的
cache-drivers/drivers/example.php
,10分鐘就能寫好你自己的驅動,接著在緩存配置$system['cache_drivers'] = array($example_file_path)
里面指定自己的緩存文件位置和"storage" => "example"
緩存類型即可,然后在項目中$this->cache
即可使用example緩存驅動。當然接著還可以自定義example驅動的第二驅動,比如:"fallback" => array("example" => "files")
,當系統環境不支持example驅動的時候使用第二驅動files。 項目主頁:http://www.baiduhome.net/lib/view/home/1384437365383