【问题标题】:Slim Framework PSR 4 with Controllers带有控制器的 Slim 框架 PSR 4
【发布时间】:2015-08-04 02:10:24
【问题描述】:

我正在制作一个基于 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

什么是好的和有效的方法?请提出建议。

【问题讨论】:

  • 你如何动态循环 yaml 中的所有项目,你的代码是什么?
  • 我在解析 yml 文件内容时使用了 foreach 循环。不过,我找到了解决方案。

标签: model-view-controller slim psr-4


【解决方案1】:

所以,在 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-04-30
    • 2016-04-04
    • 2019-01-11
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    相关资源
    最近更新 更多