如何在Slim中管理文件结构?

时间:2017-01-27 05:22:30

标签: php slim

我使用过许多MVC框架,现在我正在使用Slim Framework开发一个网站。我喜欢它,因为它非常轻便。

唯一的问题是我如何管理我的文件结构,因为随着应用程序的大小增加,在单个文件中编写所有路由及其闭包函数将无法管理。

2 个答案:

答案 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();