繁体   English   中英

PHP Composer自动加载未加载类

[英]PHP Composer Autoload not loading classes

我以某种方式在作曲家自动加载器上遇到问题。 我正在使用Propel作为ORM框架。 我的文件夹结构如下所示:

src/BestFreeSites/App
- /Map
- /Base
src/BestFreeSites/Auth
src/BestFreeSites/Framework

我想使用作曲家自动加载功能包含所有文件。 我的composer.json文件如下所示:

"autoload": {
    "classmap": [
    "src/BestFreeSites/App/",
    "src/BestFreeSites/App/Base/",
    "src/BestFreeSites/App/Map/",
    "src/BestFreeSites/Auth/",
    "src/BestFreeSites/Framework/"
]
}

前三个文件夹中的类可访问,但Auth和Framework中的类(由我创建)不可访问。 我还设置了正确的名称空间。 让我们以AuthController.php(在Auth文件夹中)为例:

namespace BestFreeSites\Auth;

public class AuthController
{

    public function register($args)
    {
        return $args;
    }
}

我正在尝试将文件包含在'use'中,如下所示:

use \BestFreeSites\App\SiteQuery;
use \BestFreeSites\App\UserQuery;
use \BestFreeSites\App\RatingQuery;
use \BestFreeSites\Auth\AuthController as Auth;
use \BestFreeSites\Framework\Abstract;

仅最后两个输入无效。 我已经转储了自动加载并重新加载了它( composer dump-autoload

谁能指导我正确的方向?

提前致谢 :)

亲切的问候,大卫

您真正的\\BestFreeSites\\Auth\\AuthController类在哪里? 您可以提供脚本级别的目录层次结构吗?

您是否正确要求了vendor/autoload.php文件?

或者,如果您只想设置psr4自动加载器,请为composer.json文件遵循以下代码。

{
    "autoload": {
        "psr-4": {
            "BestFreeSites\\": "src/BestFreeSites"
        }
    }
}

//use your AuthController class
$autoController = new \BestFreeSites\Auth\AuthController();

这很简单。 我想这很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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