[英]Slim 3 autoloader
我是苗条框架的新手,无法弄清楚如何使用自动加载器自动加载我的类。
我创建了一个app/models/myclass.php
但是当我尝试使用它时,我得到了一个未找到的类。 我不确定哪种方法是自动加载类,或者我应该使用的命名方式。 我应该通过composer.json以某种方式这样做吗? 我正在网上搜索几个小时而没有任何可靠的答案。
更新 :
管理这样做:
namespace App\\Model;
在Client.php中 $container['App\Model\Client'] = function ($c) {
return new App\Model\Client();
};
和routes.php:
$app->get('/client/ping/{id}', function ($request, $response, $args) {
$container = $this->getContainer();
$client=$container['App\Model\Client']; //instantiates a new Client
...
...
}
对于自己的类的自动加载,您应该通过向composer.json
添加一些选项来使用Composer
:
{
"require": {
"slim/slim": "^3.9"
},
"autoload": {
"psr-4": {
"My\\Namespace\\": "src/"
}
}
}
// index.php
require 'vendor/autoload.php';
$app = new \Slim\App();
$myClass = new \My\Namespace\MyClass();
运行composer update
composer将注册您自己的命名空间,并为您自动加载它们。
在composer.json文件中添加它,其中app1是您要自动加载的文件夹的名称。
"autoload": {
"psr-4":{
"app1\\": "anything"
}
}
这样做之后在cmd中运行(通过作曲家)
composer dump-autoload -o
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.