大家好,我在使用作曲家自动加载课程时遇到问题。在Linux上所有工作都很完美,但现在我的老板改变环境并设置Windows。所有这些都在linux上工作,但是windows显示新手致命的错误:
致命错误:未找到类'AbstractController' 第7行的D:\ xampp \ htdocs \ ikacFw \ frontController.php
通常可以看到我的composer.json和结构,以便更好地了解问题。
结构是:
frontController.php
-- vendor
----- Doctrine
----- Ikac
--------- Components
---------- Mvc
------------- Controller
我尝试从供应商目录加载所有数据。
Composer.json
{
"autoload": {
"psr-0": {
"vendor": ""
}
}
}
我也添加了手册。像这样:
$loader = require_once 'vendor/autoload.php';
$loader->add('vendor', "Ikac");
接下来当我试着打电话时:
<?php
require_once 'vendor/autoload.php';
use Ikac\Mvc\Controller;
$a = new AbstractController();
我收到错误“找不到”。
我的类AbstractController包含已定义的命名空间但不再工作。像测试我这样做:
<?php
//vendor/Ikac/Mvc/Controller/AbstractController.php
namespace Ikac\Mvc\Controller;
class AbstractController {
function __construct() {
echo __CLASS__;
}
}
?>
我是从cmd composer dump-autoload ,安装做的,但是不行。所有这些完美的工作在Linux上,但在这里不会。任何想法如何解决这个或我错误的地方。
谢谢你们!
SLOVED:
{
"autoload": {
"psr-0": {
"": "vendor/"
}
}
}
答案 0 :(得分:0)
你应该做的
<?php
require_once 'vendor/autoload.php';
use Ikac\Mvc\Controller\AbstractController;
$a = new AbstractController();
答案 1 :(得分:0)
您的自动加载声明错误。
您永远不需要在任何自动加载中包含供应商文件夹。供应商文件夹将包含所有依赖项的自动加载,以及 - 如果已配置 - 也适用于您自己的类。
您可以使用Composer为您自己的类创建自动加载。只需包含正确的信息。但是根据您当前的信息,我无法推断出什么是正确的。