这让我发疯了。一切进展顺利,直到我尝试更改composer.json文件。一旦我composer.updated,我就开始在日志中收到这个错误:
PHP Fatal error: Class 'ComposerAutoloaderInite904d9fc0cad6e1b28066897f772cc3f' not found in /home/apache2/htdocs/doctrine/vendor/autoload.php on line 7
我已经将composer.json更改回正常状态,甚至删除了整个目录并重新开始。绝对没什么用。
这是autoload.php文件。
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInite904d9fc0cad6e1b28066897f772cc3f::getLoader();
更新:
我在本地使用Adobe Dreamweaver来编辑远程Linux服务器上的文件。
我认出了一个模式。只有当我更新/src文件夹外的文件时,才会出现此类错误。例如,如果我更新src/Form.php,那么上传时一切都很好。如果我更新admin/access/formbuilder.php,我会得到Class错误,直到我composer转储自动加载。
我刚刚尝试在composer.json中添加"admin/access/"来自动加载,但这并没有起到作用
{
"require": {
"doctrine/orm": "2.4.*",
"symfony/yaml": "2.*"
},
"autoload": {
"classmap":["src/", "admin/access/"]
}
}
您不应该提供该文件(您提到该文件取自教程)。这是Composer在更新过程中自动生成的,在安装过程中也会生成。类的名称是动态生成的,您永远不会匹配当前的自动加载器类名。
如果你以某种方式在自己的源代码管理中提交了该文件,那么你应该删除它。不要使用将该文件恢复到以前状态的代码。