Phalcon框架启动流程(部分源码)分析
创建项目
A、通过命令行生成一个标准的Phalcon多模块应用
phalcon project demo modules(phalcon project store (micro-微型, simple - 单应用, modules-多应用 ) - 默认是单应用文档结构)
B、通过手工的方式创建
入口文件为public/index.php,简化后一共7行,包含了整个Phalcon的启动流程,以下将按顺序说明
use Phalcon\Mvc\Application;
$config = include APP_PATH . "/apps/frontend/config/config.php";
require __DIR__ . '/../config/services.php';
$application = new Application($di);
require __DIR__ . '/../config/modules.php';
require __DIR__ . '/../config/routes.php';
echo $application->handle()->getContent();
DI注册阶段
Phalcon的所有组件服务都是通过DI(依赖注入)进行组织的,这也是目前大部分主流框架所使用的方法。通过DI,可以灵活的控制框架中的服务:哪些需要启用,哪些不启用,组件的内部细节等等,因此Phalcon是一个松耦合可替换的框架,完全可以通过DI替换MVC中任何一个组件。
require __DIR__ . '/../config/services.php';
这个文件中默认注册了Phalcon\Mvc\Router(路由)、Phalcon\Mvc\Url(Url)、Phalcon\Mvc\Model\MetaData\Memory(ORM表结构)、Phalcon\Session\Adapter\Files