在 Phalcon 中应用程序的结构不受约束,你可以定义成你想要的各种结构。最简单的结构如下:
tutorial/
app/
controllers/
models/
views/
public/
css/
img/
js/
index.php
controllers
,models
,views
目录位置都可以自定义。
use Phalcon\Loader;
// ...
// 载入 controllers、models 目录
$loader = new Loader();
$loader->registerDirs([
"../app/controllers/",
"../app/models/",
// 加入自定义的目录
]);
$loader->register();
use Phalcon\Mvc\View;
// ...
// 注册视图模块
$di->set(
"view",
function () {
$view = new View();
$view->setViewsDir("../app/views/"); // 设置视图目录
return $view;
}
);
项目开发时会用到更多的功能,这时候目录就多一些。如:
tutorial/
app/
console/ // 命令行
controllers/ // 控制器
models/ // 模型
views/ // 视图,如果是服务端或 API 则不需要 views 目录
bootstrap/ // 启动目录
config/ // 配置文件
library/ // 项目公共类
public/ // 入口
index.php
resources/ // 资源文件
lang/
zh-cn/
storage/ // 存储文件,缓存或日志等
cache/
logs/
vendor/ // 第三方库
composer/ // composer 包管理文件
xxx/
autoload.php
上面这个目录结构可以适用大多数单一应用了,具体可以根据自己的需要删减和调整。Phalcon 给于用户很大的灵活性,不仅目录可以定义,所有使用到的服务都可以继承或覆盖重写。
网友评论