2

我正在制作基于 Slim 框架的应用程序。我正在遵循 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

什么将是一个好的和有效的方法?请建议。

4

1 回答 1

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();
于 2015-05-23T18:03:31.833 回答