【问题标题】:Slim application AutoloadingSlim 应用程序自动加载
【发布时间】:2019-08-14 01:04:59
【问题描述】:

我是 REST 和 Slim 应用程序的新手。

我无法自动加载某些类:

类型:RuntimeException 消息:Callable UserController 不存在 文件:/var/www/fdes/vendor/slim/slim/Slim/CallableResolver.php 行: 90

#0 /var/www/fdes/vendor/slim/slim/Slim/CallableResolver.php(61): Slim\CallableResolver->resolveCallable('UserController', 'login')
#1 /var/www/fdes/vendor/slim/slim/Slim/CallableResolverAwareTrait.php(45): Slim\CallableResolver->resolve('UserController:...')
#2 /var/www/fdes/vendor/slim/slim/Slim/Route.php(351): Slim\Routable->resolveCallable('UserController:...')

composer.json:

"autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }

目录结构:

fdes\app\api\Controllers\User\UserController.php

用户控制器.php:

namespace Api\Controllers\User;

use Slim\Http\Request;
use Slim\Http\Response;
use Respect\Validation\Validator as v;

class UserController extends BaseController {

    protected $db;

你们能告诉我我在这里缺少什么吗?

谢谢大家!

【问题讨论】:

    标签: php slim psr-4


    【解决方案1】:

    我认为你的控制器命名空间是错误的。 命名空间应该是namspace App\Api\Controllers\User

    此外,如果您的文件夹结构与您的命名空间相同,那就太好了。所以api应该是Api等等

    【讨论】:

    • 是的,但请记住 php 中的命名空间不区分大小写,这意味着您可以拥有 dir api 并使用命名空间 APIApi。当然,这不是一个好习惯。
    猜你喜欢
    • 2014-09-10
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    相关资源
    最近更新 更多