PHP Slim 3 Framework - 我可以在哪里放置我的控制器文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Slim 3 Framework - 我可以在哪里放置我的控制器文件?相关的知识,希望对你有一定的参考价值。
我在容器中注册了一个控制器,但似乎没有用,因为它与正确的位置不匹配。
苗条的 src routes.php文件
<?php
// Routes
$app->get('/dd', 'AppcontrollersHomeController:home');
苗条 APP 控制器 HomeController.php
<?php
class HomeController
{
protected $container;
// constructor receives container instance
public function __construct(ContainerInterface $container) {
$this->container = $container;
}
public function home($request, $response, $args) {
// your code
// to access items in the container... $this->container->get('');
return $response;
}
public function contact($request, $response, $args) {
// your code
// to access items in the container... $this->container->get('');
return $response;
}
}
我的项目文件夹结构:
slim
public
index.php
.htaccess
App
controllers
HomeController.php
src
dependencies.php
middleware.php
routes.php
settings.php
emplates
index.phtml
vendor
slim
也许我应该设置 slim src settings.php?
因为它显示Slim Application Error:
类型:RuntimeException消息:可调用App controllers HomeController不存在文件:D: htdocs slim vendor slim slim Slim CallableResolver.php行:90
最后,我还参考了这些文章:https://www.slimframework.com/docs/objects/router.html#container-resolution
PHP Slim框架创建控制器PHP Slim Framework Create Controller
如何在Slim Framework 3上创建中间件? How can i create middleware on Slim Framework 3?
您忘记在HomeController
文件中定义命名空间,将此行添加到HomeController.php
的顶部:
namespace AppcontrollersHomeController;
将psr-4添加到您的composer文件中,以便您可以调用命名空间。
{
"require": {
"slim/slim": "^3.12
},
"autoload": {
"psr-4": {
"App\": "app"
}
}
}
此PSR描述了从文件路径自动加载类的规范。然后在您的routes.php文件中添加以下内容:
<?php
use appcontrollersHomeController;
// Routes
$app->get('/dd', 'AppcontrollersHomeController:home');
最后在你的HomeController.php文件中添加:
<?php
namespace appcontrollers;
class HomeController
{
//.. your code
}
希望这可以帮助...:)
以上是关于PHP Slim 3 Framework - 我可以在哪里放置我的控制器文件?的主要内容,如果未能解决你的问题,请参考以下文章
学习Slim Framework for PHP v3 ( 二)
学习Slim Framework for PHP v3 --route怎么被调用的?
学习Slim Framework for PHP v3 --route怎么被匹配的?