国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Minor PHP框架 1.簡介

2020-03-22 18:38:40
字體:
來源:轉載
供稿:網友
  • 1.1 Minor是什么

      Minor是一個簡單但是優秀的html' target='_blank'>PHP框架,It just did what a framework should do. 只做一個框架應該做的,簡單而又強大!

      框架Github地址:github.com/Orlion/Minor

      (如果覺得還不錯給個star哦(^-^)V)

      作者: Orlion

      知乎:http://www.zhihu.com/people/orlion

      Github: http://github.com/Orlion

      

    1.2 Minor有什么

      1.2.1 Minor主要提供了:

    MVC分層結構(實際上是沒有Model層的,用戶可以自己任意創建) Ioc(體現在Minor中就是類似于symfony/laravel的服務容器) Event(類似于symfony/laravel中的事件機制,是一個觀察者模式的具體實現) Proxy(代理,是一個代理模式的具體實現,本人在創造Minor時是想實現類似Spring的AOP功能的,但是在寫的時候發現如果要實現AOP則配置文件勢必會變得冗雜,不利于開發所以就放棄了AOP,而提供了一個Proxy類)

      

      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;}

      這樣當你訪問http://localhost/public/時就可以看到安裝成功的畫面了。 (當然你也可以配置一下把public去掉) 

    1.4 Minor是如何運轉的

      1.4.1 整體流程

      以訪問網址http://www.servername.com/demo/test為例:

    所有請求重定向到public/index.php文件 定義全局變量
    define('APP_DIR', realpath(__DIR__.'/../app/') .DIRECTORY_SEPARATOR);define('PUBLIC_DIR', realpath(__DIR__) .DIRECTORY_SEPARATOR);define('VENDOR_DIR', realpath(__DIR__.'/../vendor/') .DIRECTORY_SEPARATOR);define('ROOT_DIR', realpath(__DIR__.'/../') .DIRECTORY_SEPARATOR);
    根據配置文件來創建App對象:$app
    $app = MinorFrameworkApp::getInstance(    $config     = ['app' => require APP_DIR . 'Config/app.php', 'test' => require APP_DIR . 'Config/test.php'],    $providers  = require APP_DIR . 'Config/providers.php',    $routes     = require APP_DIR . 'Config/routes.php',    $events     = require APP_DIR . 'Config/events.php');
    App處理請求生成MinorResponse對象
    $response = $app->handle(    $request = MinorHttpKernelMinorRequestBuilder::buildMinorRequest());
    向用戶返回響應
    $response->send();

      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;    }
    初始化一個默認的響應對象
    $minorResponse = MinorResponse::getInstance();
    調用Router的dispatcher($url)方法根據路由配置獲取url對應的控制器和方法以及參數
    list($controllerName, $actionName, $params) = $this->router->dispatcher($minorRequest->getUrl());
    執行控制器的制定方法,并返回響應對象
    $minorResponse = $this->invoke($controllerName, $actionName, $params);return $minorResponse;

    1.5 請忽視以上吹牛逼字段

      恩!就是請忽視。別怪我沒提醒

      

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 枝江市| 永定县| 旺苍县| 缙云县| 岳池县| 思南县| 建阳市| 卓尼县| 崇礼县| 定兴县| 涞源县| 泸西县| 遂宁市| 杭州市| 莎车县| 北流市| 蕲春县| 邯郸市| 彰化市| 广昌县| 鄂托克旗| 湖州市| 三江| 巴塘县| 班玛县| 葫芦岛市| 宁国市| 广平县| 阳曲县| 龙江县| 永年县| 三台县| 星座| 崇州市| 友谊县| 平度市| 宁安市| 安化县| 阳春市| 博白县| 巴东县|