shadowprince / slimext
Slim 微框架的插件,增加组件和路由前缀支持
0.1.5
2013-11-17 12:11 UTC
Requires
- php: >=5.2.0
- slim/slim: 2.3.5
This package is not auto-updated.
Last update: 2024-09-23 14:18:27 UTC
README
SlimExt - 对 slim 的 monkeypatched 扩展,增加了嵌套路由(易于 URL 前缀添加和中间件添加)以及组件支持(非 symfony)的功能。
路由 URL 前缀
$app->prefix("/uac", function () use ($app) { // Route registered as /uac/login $app->get("/login", function () use ($app) { $app->render("login", array()); }); });
或者甚至
$app->prefix("/uac", Middleware::userLogged(), function () use ($app) { $app->prefix("/edit", function () use ($app) { $app->map("/avatar", function () use ($app) {}); $app->map("/info", function () use ($app) {}); $app->prefix("/photos", Middleware::userCanManagePhotos(), function () use ($app) { $app->map("/upload", function () use ($app) {}); $app->map("/delete/:id", function ($id) use ($app) {}); $app->map("/edit/:id", function ($id) use ($app) {}); }); }); });
中间件
$app->prefix("/admin", Midleware::userAdmin(), function () use ($app) { // Routes registered with Middleware::userAdmin() middleware $app->get("/", function () use ($app) {/* ... */}); $app->get("/users", function () use ($app) {/* ... */}); });
组件
// Uac/urls.php $app->prefix("/uac", function () use ($app) { $app->map("/login", function () use ($app) { // ... }); }); // bootstrap $app->config("comps", array("Uac")); $app->loadComponents();
已注册并准备就绪的路由 /uac/login/。
另一个示例 - 与 autoparis 的集成。您可以从 $app->config("comps")
自动抓取所有模型(分离到组件中)。
服务
服务 - 用于向 $app 添加新功能的实例
class MyApp extends \SlimExt\SlimExt { public function user() { return $this->user_service_instance; } } class UserService extends \SlimExt\SlimService { public function __construct($app) { $this->defaultConfig($app, array( "default config" => "can be here" )); } public function isLogged() { // ... } }