我使用过许多MVC框架,现在我正在使用Slim Framework开发一个网站。我喜欢它,因为它非常轻便。
唯一的问题是我如何管理我的文件结构,因为随着应用程序的大小增加,在单个文件中编写所有路由及其闭包函数将无法管理。
答案 0 :(得分:2)
假设您有应包含所有路线的文件夹:
$dir = 'path/to/routes';
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS)) as $file){
require $file;
}
Slim并不是真的知道,这是一件好事。
路由应该使用名称声明,因此它们所在的文件名或目录对于框架本身没什么影响。
您可能希望自己对其进行优化,因此建议使用子目录。
如果您不想使用子目录,可以从循环中删除RecursiveIteratorIterator
,或只包含1个包含所有子目录的文件。
答案 1 :(得分:1)
我已经成功地将路由分成按用法或意图分组的不同文件,并且只为每个文件使用require_once
。它很简单,明确,并且保持组织良好,IMO。
将所有路径文件保存在一个地方也很重要,所以我通常将我的路由放入他们自己的子目录中。我已经使用/routes
,/src/routes
和/app/routes
,但都取得了相同的成功。
我的/public/index.php
文件的最后一位通常看起来像这样:
<?php
// ... snip ...
require_once dirname(__DIR__) . '/app/routes/auth.php';
require_once dirname(__DIR__) . '/app/routes/default.php';
require_once dirname(__DIR__) . '/app/routes/admin.php';
// $app is an instance of \Slim\App
$app->run();