【问题标题】:Can't load class on Slim 3无法在 Slim 3 上加载课程
【发布时间】:2018-11-14 10:39:46
【问题描述】:

我正在尝试为 Slim 3 上的模型加载我的自定义类(使用骨架),所以我做了这个:

在 app/composer.json 中:

"autoload": {
    "psr-4": {
        "App\\Classes\\": "/src/classes"
    }
},

在 routes.php 我有这个设置:

<?php

use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Container;


// Routes
$app->get('/sugiere', function (Request $request, Response $response, array $args) {
    // Sample log message
    $this->logger->info("Slim-Skeleton '/' route");
    $cat_mapper = new \App\Classes\CategoryMapper($this->db);
    $comuna_mapper = new \App\Classes\ComunaMapper($this->db);
    $lang_mapper = new \App\Classes\LanguageMapper($this->db);
    $netw_mapper = new \App\Classes\NetworkMapper($this->db);
    $com_list = $com_mapper->getComunaList();
    $cat_list = $cat_mapper->getCategoryList();
    $lang_list = $lang_mapper->getLangList();
    $netw_list = $netw_mapper->getNetworkList();

顺便说一下,我在所有类的顶部添加了一个命名空间 App\Classes。

【问题讨论】:

  • 错误信息究竟是什么?
  • 由于以下错误,应用程序无法运行:详细信息类型:错误消息:找不到类“App\Classes\CategoryMapper”文件:/home/ubuntu/workspace/santiago/src/routes. php 行:13
  • 在将autoload 配置添加到composer.json 后,您是否运行过composer dump-autoload?见getcomposer.org/doc/01-basic-usage.md#autoloading

标签: php slim psr-4


【解决方案1】:

您的路径 /src/classes 看起来不正确。您的src 目录不太可能位于文件系统根目录中。

将您的 composer.json 文件更改为

"autoload": {
  "psr-4": {
    "App\\Classes\\": "src/classes/"
  }
}

然后运行

composer dump-autoload

重新生成autoload.php 文件。

https://getcomposer.org/doc/01-basic-usage.md#autoloading

【讨论】:

  • 我改变了它,但我得到了同样的错误。我收到 500 错误。
  • @ffuentes 将其更改为 what,究竟是什么?请使用您当前使用的配置和代码更新您的问题。
  • @ffuentes 您能否在您的一个文件中显示您的src/classes 目录内容以及命名空间和类定义的屏幕截图,例如src/classes/CategoryMapper.php
  • 现在我明白了。我改了路由,在上面和调用方法的时候写了use语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多