我知道这个问题已经被问过了,但是自动加载过程似乎随着 composer 发生了一些变化。
我只想向我的 silex 项目添加一个类库。
所以我制作了这个文件: 供应商\lib\picture.php
<?php
namespace MyNamespace;
class Picture
{
function testage()
{
echo 'hihaaa ça marche'; exit;
}
}
在 vendor/composer/autoload_namespaces.php 中,我将这一行添加到大数组中:
'MyNamespace' => $vendorDir . '/lib/',
在主文件中我添加了:
use MyNamespace\Picture as Picture;
并这样调用它:
$app->register(new Picture());
这给了我这个错误:
Fatal error: Class 'MyNamespace\Picture' not found...
我只是不知道如何在没有命令行的情况下轻松地添加一个我可以从任何 Controller 使用的类(我不使用 composer,我下载了预配置的 silex),知道吗?
最佳答案
如果您使用的是 Composer,则不应更改供应商目录。您不应向其中添加文件,也不应修改 Composer 生成的文件。
我建议您将这些类放入src
目录。 @gunnx 展示了如何在 composer.json
中配置自动加载,以便在每次运行 composer install
时重新生成它。
该文件位于 src/MyNamespace/Picture.php
中。 composer.json
中的自动加载配置为:
{
"autoload": {
"psr-0": { "MyNamespace": "src/" }
}
}
实际的解决方案是前面两个答案的组合。但我认为确保细节正确很重要 ;-)。
关于php - 将库添加到 silex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11593120/