访问我的Propel课程时遇到问题。
例如,我尝试访问Livre
类。
我在index.php中的代码是:
use biblio\biblio\Livre;
//load Propel's autoload
require 'vendor/autoload.php';
$collect = new Livre();
$collect->setNom("Aventure");
$collect->save();
输出错误是:
致命错误:Class' biblio \ biblio \ Livre'在第7行的/Applications/MAMP/htdocs/propel/index.php中找不到
我的classe Livre
位于biblio/biblio/Livre.php
文件夹中
使用此代码,Eclipse找到我的Livre
。但是当PHP执行时,就会出错。
有人有解决方案吗?
答案 0 :(得分:1)
您需要在composer.json
文件中添加这样的内容(显然将此autoload
数据修改为整个JSON文件,而不是仅按原样附加此内容):
{
...
"autoload": {
"classmap": ["biblio/"]
}
}
如果没有这个,require vendor/autoload.php;
将不包含您的Propel类,PHP将无法找到命名空间/类。不要忘记从命令行运行php composer dump-autoload
以更新autoload.php
文件。
有关详细信息,请参阅Propel documentation:
生成类后,您必须自动加载它们。
或者,详细了解Composer's autoloading:
对于指定自动加载信息的库,Composer会生成vendor / autoload.php文件。您只需包含此文件即可免费进行自动加载。 [...]您甚至可以通过向composer.json添加自动加载字段将自己的代码添加到自动加载器。