大家好,我在用作曲家自动加载我的类时遇到了问题。在Linux上,一切都很完美,但现在我的老板改变了环境并设置了Windows。 所有这些工作都在 linux 上工作,但 Windows 显示新手致命错误:
致命错误:在 中找不到类"抽象控制器" D:''xampp''htdocs''ikacFw''frontController.php 在第 7 行
常见的是看到我的作曲家.json和结构,以便更好地描绘问题。
结构是:
frontController.php
-- vendor
----- Doctrine
----- Ikac
--------- Components
---------- Mvc
------------- Controller
我正在尝试从供应商目录加载所有数据。
作曲家.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();
我收到错误"未找到"。
我的类抽象控制器包含定义的命名空间,但不再工作。像测试一样,我这样做:
<?php
//vendor/Ikac/Mvc/Controller/AbstractController.php
namespace Ikac'Mvc'Controller;
class AbstractController {
function __construct() {
echo __CLASS__;
}
}
?>
我从cmd作曲家转储自动加载,安装,但不起作用。所有这些在 Linux 上的完美工作,但在这里不会。知道如何解决这个问题或我犯错的地方。
谢谢大家!
斯洛夫德:
{
"autoload": {
"psr-0": {
"": "vendor/"
}
}
}
好吧,
你应该这样做
<?php
require_once 'vendor/autoload.php';
use Ikac'Mvc'Controller'AbstractController;
$a = new AbstractController();
您的自动加载声明是错误的。
您永远不需要在任何自动加载中包含供应商文件夹。供应商文件夹将包含所有依赖项的自动加载,以及您自己的类(如果已配置)的自动加载。
您可以使用 Composer 为自己的课程创建自动加载。只需包含正确的信息。但是从您当前的信息中,我无法推断出正确的内容。