Minor【 PHP框架】1.简介
1.1 Minor是什么
框架Github地址:github.com/Orlion/Minor
(如果覺得還不錯給個star)
1.2 Minor有什么
1.2.1 Minor主要提供了
1.2.2 Minor為什么只提供了這么點東西?
現在的PHP框架大多很臃腫,提供了各種功能,在本人看來這只是在重復造輪子(雖然寫框架也是在重復造輪子...),框架只需要提供給用戶一個架子和一些工具即可,不應該給用戶一大堆東西(一大堆重復造的輪子),不應該捆綁用戶而應該給用戶極大自由,這樣也會使用戶更容易上手。個人覺得java的Spring框架就是一個很不錯的框架,足夠簡單,足夠強大,小即是美!而Minor就是在這種思想下誕生的框架。沒有各種亂七八糟的分頁、ORM、模板引擎、日志、隊列等功能,就是一個很純粹的“架子”。
?
1.2.3 優點
快! 性能高! 簡單! 容易上手! 結構清晰!
小即是美!
?
1.3 安裝
只需從github上(github.com/Orlion/Minor) git clone或者直接復制zip壓縮包然后解壓到項目中即可。
Minor框架通過設置 public/.htaccess 文件去除鏈接中的index.php。 如果你你的服務器使用的是 Apache,請確保開啟 mod_rewrite 模塊。
如果是 Nginx 服務器,將下列指令放到網址的配置文件中:
location / {try_files $uri $uri/ /index.php?$query_string; }下面是我的配置:
server{listen 80;server_name www.minor.com;root html/minor/public;location / {index index.php;try_files $uri $uri/ /index.php; }location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params; } }?
這樣當你訪問http://localhost/public/時就可以看到安裝成功的畫面了。 (當然你也可以配置一下把public去掉)
?
1.4 Minor是如何運轉的
1.4.1 整體流程
以訪問網址http://www.servername.com/demo/test為例:
?
?
?
?
1.4.2 App是如何處理請求的
public function handle(MinorRequest $minorRequest){$minorResponse = MinorResponse::getInstance();$this->minorRequest = $minorRequest;list($controllerName, $actionName, $params) = $this->router->dispatcher($minorRequest->getUrl());if (!($controllerName && $actionName && is_array($params))) {if (!Config::get(['app' => 'DEBUG']) && ($handler = Config::get(['app' => '404_HANDLER'])) && ($handler instanceof \Closure)) {$handler($minorRequest->getRequestUrl());} else {throw new RouteException('404 Not Found');}} else {$minorResponse = $this->invoke($controllerName, $actionName, $params);}return $minorResponse;}?
?
?1.5 配置
1.5.1 讀取與設置配置
有時你需要在程序執行階段訪問配置的值。你可以使用 Config 類:
Config::get(['app' => 'TIMEZONE']);這樣你就可以獲取app/Config/app.php配置文件中TIMEZONE的配置項值。(請注意,這里不一定是app.php,請觀察本文1.4.1中的步驟3中可以看到在構建$app這個對象時傳了一個參數:$config = ['app' => require APP_DIR . 'Config/app.php' ...)
在這里'app' 指向了app/Config/app.php文件,當然你也可以指向其他文件(eg: app_dev.php)這樣再當你執行Config::get(['app' => 'TIMEZONE'])時就會從app_dev.php文件中獲取TIMEZONE這個配置項的值了)。
你也可以指定一個默認值,如果配置選項不存在它將被返回:
Config::get(['app' => 'TIMEZONE'], 'UTC');注意“['xxx' => 'xxx']”語法風格可以用于訪問不同文件里的值,你也可以在程序執行階段設置配置的值:
Config::set(['test' => 'key'], 'value');
1.5.2 配置項
1.5.2.1 應用配置
一些常用的應用配置,你也可以添加自己的配置項。
'CHARSET' => 'UTF-8', // 設置charset'TIMEZONE' => 'PRC', //設置時區'SESSION_START' => true, // 設置是否自動開啟session,當開啟后就可以從MinorRequest對象中通過getMinorSession()方法獲取當前session對象'DEBUG' => true, // 設置是否開啟DEBUG模式,如果開啟則程序中發生的錯誤就會全部顯示出來,如果設置為false或者不設置則當發生錯誤或異常時就會執行以下的全局錯誤處理函數和全局異常處理函數。?
1.5.2.2 全局異常處理
當DEBUG為false并且應用拋出異常時就會執行配置的這個匿名函數,你可以在這個函數里做任何操作,比如向管理員發送通知郵件或者記錄日志等等
'EXCEPTION_HANDLER' => function($e){header('HTTP/1.1 500 Internal Server Error');exit(require APP_DIR . 'View/exception.php');},?
?
?
1.5.2.3 全局錯誤處理
當DEBUG為false并且應用發生語法錯誤時就會執行配置的這個匿名函數,你可以在這個函數里做任何操作,比如向管理員發送通知郵件或者記錄日志等等
'ERROR_HANDLER' => function($errno, $errstr, $errfile, $errline){header('HTTP/1.1 500 Internal Server Error');exit(require APP_DIR . 'View/error.php');},?
?
?
1.5.2.4 404處理
當DEBUG為false并且應用沒有匹配到響應的路由時就會執行這個匿名函數,你可以在這個函數里顯示一個404頁面。
'404_HANDLER' => function($url){header('HTTP/1.1 404 Not Found');header("status: 404 Not Found");exit(require APP_DIR . 'View/404.php');},?
?
?
1.5.2.5 變量過濾器
當通過$minorRequest->get('param_name'))獲取get參數或者通過$minorRequest->post('param_name')時,框架會自動調用這個函數對$_GET['param_name']或者$_POST['param_name']做處理后返回
'DEFAULT_FILTER' => function($param){return htmlspecialchars($param);},?
1.6 請忽視以上吹牛逼字段
恩!就是請忽視。別怪我沒提醒
轉載于:https://www.cnblogs.com/orlion/p/5558842.html
總結
以上是生活随笔為你收集整理的Minor【 PHP框架】1.简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快手ta是什么意思
- 下一篇: 视吧怎么赚钱 教你玩转视吧涨粉圈钱