如何组织大型 Slim Framework 应用程序
Slim 微型框架是一种微型框架,使开发者能够快速编写 RESTful Web 应用程序和 API。我强调微型是因为 Slim 就是这样——用于构建小型 Web 应用程序和 API 的轻量、灵活的 PHP 框架。与 CodeIgniter 和 Symfony(分别由 EllisLab 和 Sensio Labs 创建的出色框架)不同,Slim 放弃控制器和抽象组件以实现简洁性和易用性。
你可以使用一个文件构建 Slim Framework Web 应用程序。然而,随着时间的推移,项目的范围和规模都会不断扩大;更好的组织变得越来越必要。Slim 不使用控制器组织应用程序方法或路由;控制器超越了 Slim 的关注范围。话虽如此,完全可以组织大型 Slim Framework 应用程序。以下是我组织自己的 Slim Framework 应用程序的方式。
文件系统布局
以下是我用于自己 Slim Framework 应用程序的目录结构
public_html/
.htaccess
index.php
styles/
images/
scripts/
app/
routes/
session.php
member.php
admin.php
vendor/
lib/
data/
public_html/
- 包含 Slim Framework 的 .htaccess 和 index.php 文件。index.php 是你在其中实例化并运行 Slim Framework 应用程序的文件。公共资产(样式表、图像和脚本)也在此目录中。
app/
- 包含不应在公共文档根目录中使用的应用程序代码。
vendor/
- 包含第三方库,如 Twig 或 Smarty。
lib/
- 包含我的应用程序所使用的自定义库。
data/
- 包含应用程序数据库模式和(如果需要)SQLite 数据库。
将路由组织到单独的文件中
Slim Framework 示例应用程序可能包含一个管理控制面板、仅限会员页面和公共页面(例如登录、登出和注册)。如上文的文件系统布局所示,我将相关路由分离到单独的文件中。管理员路由转至 app/routes/admin.php
。会员路由转至 app/routes/member.php
。会话管理路由(例如登录、登出、注册)转至 app/routes/session.php
。这些单独的路由文件由 public_html/index.php
以这种方式必需
$app = new Slim();
require '../app/routes/session.php';
require '../app/routes/member.php';
require '../app/routes/admin.php';
$app->run();
不必使用一个非常大的 index.php
文件,有几个较小的文件可以使构建大型 Slim Framework 应用程序更容易。