繁体   English   中英

超薄3自动加载器

[英]Slim 3 autoloader

我是苗条框架的新手,无法弄清楚如何使用自动加载器自动加载我的类。

我创建了一个app/models/myclass.php但是当我尝试使用它时,我得到了一个未找到的类。 我不确定哪种方法是自动加载类,或者我应该使用的命名方式。 我应该通过composer.json以某种方式这样做吗? 我正在网上搜索几个小时而没有任何可靠的答案。

更新

管理这样做:

  • 在app / src / Model / Client.php中添加了模型
  • 添加namespace App\\Model; 在Client.php中
  • 在depedencies.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM