我正在制作一个基于Slim Framework的应用程序。我遵循PSR 4模式。该应用程序基本上处理RESTful服务。为了使其未来更加灵活,我们采用了与传统的超薄编码不同的方法。 我的目录结构如下所示,
│ autoload.php
│ composer.json
│ index.php
│ README.md
│
└───src
└───Service
├───Component
│ ├───Router
│ │ Route.php
│ │ RouterInterface.php
│ │
│ └───YamlLoader
│ YamlLoader.php
│ YamlLoaderInterface.php
│
├───Core
│ Bootstrap.php
│ Settings.php
│
├───Framework
│ ├───Controller
│ │ HomeController.php
│ │
│ ├───Model
│ └───View
└───Routing
course.routing.yml
home.routing.yml
在“路由”目录中,我将使用菜单链接存储一些yaml文件。这些将在路由器组件中进行解析,以生成到控制器及其方法的正确可调用路径。
但是,我面临的问题是确定哪种方法可以做到这一点?如何从.yml文件中分配每个路由器项目并将其用作
$app->map('/about', '\Service\Framework\Controller\HomeController:about')->via('GET', 'POST');
对于进一步的引用,其中一个yaml文件看起来像
service.about:
path: '/about'
handler:
_controller: '\Service\Framework\Controller\HomeController::about',
http_method: GET
service.authenticate:
path: '/auth'
handler:
_controller: 'Service\Framework\HomeController::auth',
http_method: GET
什么是好的和有效的方式?请建议。
答案 0 :(得分:0)
所以,与Slim IRC中的一些人交谈。我发现,任何命名空间类都应该作为字符串提供。所以,
\Service\Framework\Controller\HomeController
成为
\\Service\\Framework\\Controller\\HomeController
现在它正在与之合作,
$this->app->map('/hello', '\\Service\\Framework\\Controller\\HomeController:about')->via('GET');
$this->app->run();