标签:
1.1 Minor是什么
Minor是一个简单但是优秀的PHP框架,It just did what a framework should do. 只做一个框架应该做的,简单而又强大!
框架Github地址:github.com/Orlion/Minor
(如果觉得还不错给个star哦(^-^)V)
作者: Orlion
知乎:https://www.zhihu.com/people/orlion
Github: https://github.com/Orlion
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; }
这样当你访问http://localhost/public/时就可以看到安装成功的画面了。 (当然你也可以配置一下把public去掉)
1.4 Minor是如何运转的
1.4.1 整体流程
以访问网址http://www.servername.com/demo/test为例:
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 = \Minor\Framework\App::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‘ );
$response = $app->handle( $request = \Minor\HttpKernel\MinorRequestBuilder::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();
list($controllerName, $actionName, $params) = $this->router->dispatcher($minorRequest->getUrl());
$minorResponse = $this->invoke($controllerName, $actionName, $params);
return $minorResponse;
1.5 请忽视以上吹牛逼字段
恩!就是请忽视。别怪我没提醒
标签:
原文地址:http://www.cnblogs.com/orlion/p/5558842.html