PHP 框架:Gaeaphp
Gaeaphp 是一個基于 flightphp 的 PHP 框架
基礎
環境要求
php 5.4+
安裝
-
WebServer,具體配置方法參見Flight按照要求
-
Php-Memcached擴展,具體配置方法參見pecl
結構設計
項目目錄結構
|-app/
| ?|-configs/ 配置文件夾
| ?|-bootstrap.php 引導文件
|-src/ 代碼目錄
| ?|-libs/ 類庫方法庫
| ?| ?|-classes/
| ?| ?|-functions/
| ?|-modules/ 模塊文件夾
| ?| ?|-xxxmodules/
| ?| ?| ?|-controller/
| ?| ?| ?|-libs/
| ?| ?| ?|-model/
| ?|-templates/
| ?| ?|-default/
|-temp/ 臨時目錄
| ?|-caches/
| ?|-compiled/
| ?|-logs/
url訪問
框架采用mvc設計模式開發,采用單一入口方式部署和訪問。訪問示例
http://yourdomain.com/module/controller/action/param1/param2
其中將會訪問
/src/module/controller.php下的action方法
引導文件
/app/bootstrap.php引導文件完成了命名空間的注冊,擴展模版引擎,以及路由的注冊。
其中常量定義:
ROOT_PATH?系統根目錄
APP_PATH?app目錄
TEMP_PATH?臨時目錄
SSRC_PATH ? 系統代碼目錄
WEB_PATH ? 系統WEB資源目錄
系統配置
所有的配置文件均已數組形式返回。具體配置文件項在/app/configs下
|-db.php 數據庫(Mysql)配置文件
|-memcache.php 緩存(Memcache)配置文件
|-route.php 路由配置文件
|-smarty.php 模版引擎配置文件
|-system.php 系統配置文件
系統配置
結構為一維數組,各項參數見注釋
return array( 'theme' => 'default', //主題 'debug' => true, //是否調試信息 'log_level' => 'DEBUG', //日志打印級別EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG 'cache_expire' => 3600, //緩存時間,單位秒 'prefix' => 'sobey_', //存儲鍵值前綴,包含db和cache );
數據庫配置
結構為二維數組,默認使用default,可參考default結構配置多個數據庫配置如test
return array( 'default' => array( 'database_type'=>'mysql', 'database_name'=>'ecshop', 'server'=>'127.0.0.1', 'username'=>'root', 'password'=>'123456', //其他可選參數參見php手冊 //http://www.php.net/manual/en/pdo.setattribute.php 'port'=>3306 ), //test配置非系統默認 'test' => array( //......... ), );
Memcached配置
結構為二維數組,默認使用default,可參考default結構配置多個數據庫配置如test
return array( 'servers'=>array( //array('域名','端口','權重') array('127.0.0.1','11211'), ), //options為Memcached::setOptions參數 'options'=>array( //Memcached::OPT_HASH => Memcached::HASH_MURMUR, //Memcached::OPT_PREFIX_KEY => "widgets" ), );
smarty配置
結構為二維數組,默認使用default,可參考default結構配置多個數據庫配置如test
return array( 'servers'=>array( //array('域名','端口','權重') array('127.0.0.1','11211'), ), 'options'=>array( //Memcached::OPT_HASH => Memcached::HASH_MURMUR, //Memcached::OPT_PREFIX_KEY => "widgets" ), );
模塊modules
一個模塊的基本結構為,請遵循以下的規則:
|-src/ 代碼目錄
| ?|-modules/ 模塊文件夾
| ?| ?|-xxxmodules/ 模塊根目錄
| ?| ?| ?|-api/ 接口文件目錄
| ?| ?| ?|-controller/ 控制器文件夾 | ?| ?| ?|-libs/ 工具類庫
| ?| ?| ?|-model/ 模型類庫
項目
開發技巧
Core文件
-
Core::config($file,[$key,[$dafault = false,[$reload = false]]]) 獲取配置文件
-
Core::load_func($func,[$path= '']) 加載函數
-
Core::log($module,$level,$message,[$context = array()]) 日志記錄
-
Core::db([$key='default',[$option=array()]]) 獲取db實例
-
Core::memcached([$key='default',[$servers=array(),[$options=array()]]]) 獲取memcached實例
項目函數庫
一些項目的全局函數位于/src/libs/functions/global.php,該文件會被自動加載。自己可新建模塊的函數庫并使用Core::load_func()引入使用
模版
模版文件位于: /src/teplate/{風格}/sso(模塊)下,為smarty語法文件。