MicroPHP 2.2.0 發佈

ver 2.2.0:
增長了
    1.$this->cache爲最新的phpfastcache2.1,緩存功能更增強大,並且編寫本身的緩存類很是容易。
    2.自定義緩存類說明:
        $system['cache_drivers'] = array();
        自定義緩存類文件的路徑是$system['cache_drivers']的一個元素,能夠有多個自定義緩存類。
        緩存類文件名稱命名規範是:
           好比文件名是mycahe.php,那麼文件mycahe.php裏面的緩存類就是:class phpfastcache_mycahe{......}
           mycahe.php的編寫規範請參考:http://git.oschina.net/snail/microphp/blob/development/modules/cache-drivers/drivers/example.php
    3.phpfastcache增長Redis緩存支持
    4.Redis存儲SESSION支持。
    5.Memcache存儲SESSION支持。
    6.Mongodb存儲SESSION支持。
    7.Mysql存儲SESSION支持。
    8.有時候類庫文件不少,都放在一個類庫文件夾裏面會顯得很亂,很差管理。
      所以增長了自動加載的類庫子文件夾支持:類庫文件放在配置的類庫文件夾的一級子文件夾裏面。
刪除了
    1.WoniuCache已經被移除,請使用$this->cache代替
優化了php

    1.緩存文件夾的建立。 mysql

升級提示: git

1.若是項目中使用了WoniuCache進行緩存,請使用$this->cache->代替WoniuCache:: github

2.在$system中增長以下配置:
/**
 * ========================緩存配置========================
 */
$system['cache_drivers'] = array();
$system['cache_config'] = array(
    /*
     * 默認存儲方式
     * 可用的方式有:auto,apc,sqlite,files,memcached,redis,wincache,xcache,memcache
     * auto自動模式尋找的順序是 : apc,sqlite,files,memcached,redis,wincache,xcache,memcache
     */
    "storage" => "auto",
    /*
     * 默認緩存文件存儲的路徑
     * 使用絕對全路徑,好比: /home/username/cache
     * 留空,系統本身選擇
     */
    "path" => "", // 緩存文件存儲默認路徑
    "securityKey" => "", // 緩存安全key,建議留空,系統會自動處理 PATH/securityKey


    /*
     * 第二驅動
     * 好比:當你如今在代碼中使用的是memcached, apc等等,而後你的代碼轉移到了一個新的服務器並且不支持memcached 或 apc
     * 這時候怎麼辦呢?設置第二驅動便可,當你設置的驅動不支持的時候,系統就使用第二驅動。
     * $key是你設置的驅動,當設置的「storage」=$key不可用時,就使用$key對應的$value驅動
     */
    "fallback" => array(
        "memcache" => "files",
        "memcached" => "files",
        "redis" => "files",
        "wincache" => "files",
        "xcache" => "files",
        "apc" => "files",
        "sqlite" => "files",
    ),
    /*
     * .htaccess 保護
     * true會自動在緩存文件夾裏面創建.htaccess文件防止web非法訪問
     */
    "htaccess" => false,
    /*
     * Memcache服務器地址;
     */
    "server" => array(
        array("192.168.199.25", 11211, 1),
    //  array("new.host.ip",11211,1),
    ),
    /*
     * Redis服務器地址;
     */
    "redis" => array(
        'type'=>'tcp',//sock,tcp;鏈接類型,tcp:使用host port鏈接,sock:本地sock文件鏈接
        'prefix'=>@$_SERVER['HTTP_HOST'],//key的前綴,便於管理查看,在set和get的時候會自動加上和去除前綴,無前綴請保持null
        'sock'=>'',//sock的完整路徑
        'host' => '192.168.199.25',
        'port' => 6379,
        'password' => NULL,//密碼,若是沒有,保持null
        'timeout'=>0,//0意味着沒有超時限制,單位秒
        'retry'=>100,//鏈接失敗後的重試時間間隔,單位毫秒
        'db' => 0, // 數據庫序號,默認0, 參考 http://redis.io/commands/select
    ),
);
/**
 * =======================SESSION管理配置=======================
 */
$system['session_handle'] = array(
    'handle' => '', //支持的管理類型:mongodb,mysql,memcache,redis。不使用留空便可。
    'common' => array(
        'autostart' => true,//是否自動session_start()
        'cookie_path' => '/',
        'cookie_domain' => '.' . @$_SERVER['HTTP_HOST'],
        'session_name' => 'PHPSESSID',
        'lifetime' => 3600, // session lifetime in seconds
    ),
    'mongodb' => array(
        'host' => '192.168.199.25',
        'port' => 27017,
        'user' => 'root',
        'password' => 'local',
        'database' => 'local', // name of MongoDB database
        'collection' => 'session', // name of MongoDB collection
        // persistent related vars
        'persistent' => false, // persistent connection to DB?
        'persistentId' => 'MongoSession', // name of persistent connection
        // whether we're supporting replicaSet
        'replicaSet' => false,
    ),
    /**
     * mysql表結構
     *   CREATE TABLE `session_handler_table` (
      `id` varchar(255) NOT NULL,
      `data` mediumtext NOT NULL,
      `timestamp` int(255) NOT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`,`timestamp`),
      KEY `timestamp` (`timestamp`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     */
    'mysql' => array(
        'host' => '127.0.0.1',
        'port' => 3306,
        'user' => 'root',
        'password' => 'admin',
        'database' => 'test',
        'table' => 'session_handler_table',
    ),
    /**
     * memcache採用的是session.save_handler管理機制
     * 須要php安裝memcache拓展支持
     */
    'memcache' => "tcp://192.168.199.25:11211",
    /**
     * redis採用的是session.save_handler管理機制
     * 須要php安裝redis拓展支持,你能夠在https://github.com/nicolasff/phpredis 找到該拓展。
     */
    'redis' => "tcp://192.168.199.25:6379",
);


       MicroPHP是一個免費、開源、敏捷的MVC模式的PHP開發框架。它易拓展而不失靈活,能夠輕鬆對應大中小型項目。MicroPHP沒有大而全的功能,只給你最須要的底層功能,可是給你無限的靈活拓展能力。其它框架都有的基本特性這裏就不一一羅列。 
說一下MicroPHP的特性:
1. 整個框架核心就一個文件MicroPHP.php(壓縮後的文件MicroPHP.min.php,140KB左右)。 
2. 入口文件index.php也是整個項目的配置文件,一個入口文件就是一個項目的入口,能夠自定義多個入口文件達到不一樣項目共存的目的,項目之間隨意共享 類庫、幫助文件等目錄,框架核心文件採用零侵入式編寫,整個框架的運行不依賴任何外部變量,初始化的時候只要經過 WoniuRouter::setConfig($system)注入配置,而後WoniuRouter::loadClass()執行便可。
3. 獨特的插件模式。
4. 項目控制器、模型、視圖、類庫等各類文件夾徹底自定義,用到什麼就創建什麼文件夾,完全擺脫一堆無用的一大堆文件夾的困擾。
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這時候怎麼辦呢?設置第二驅動便可,當你設置的驅動不支持的時候,系統就使用第二驅動。


更多詳細信息,請移步官網:http://microphp.us/web

相關文章
相關標籤/搜索