0

我想将EasyCSV添加到我的 symfony2 项目https://github.com/jwage/EasyCSV

这是我尝试过的。我添加了

'EasyCSV'          => __DIR__.'/../vendor/easy-csv',

到 autoload.php 和

use EasyCSV\Reader;

在我想使用这个库的控制器中。但我明白了

致命错误:在 ...Controller.php 中找不到类“EasyCSV\Reader”

任何想法为什么?如何解决这个问题?

4

2 回答 2

4

进入vendor/composer/autoload_classmap.php(Symfony 2.1)

<?php

// autoload_classmap.php generated by Composer

$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);

return array(
    'EasyCSV' => __DIR__.'/../vendor/easy-csv',
    [....]
);

然后你可以简单地通过插入来使用它

use EasyCSV

在您需要它的文件的“顶部”。

没有作曲家解决方案

在你的文件中试试这个autoload.php(我想在底部)

use Symfony\Component\ClassLoader\MapClassLoader;
[...]
// Create map autoloader
$mapLoader = new MapClassLoader(array(
    'EasyCSV' => __DIR__.'/../vendor/easy-csv',
    [...]
));

// Register autoloader
$mapLoader->register();
于 2012-11-27T16:23:46.973 回答
1

正如我们在评论中所讨论的,请确保您没有手动将第三方库添加到您的供应商文件中。内置的 symfony 包管理系统是有原因的。

对于有问题的捆绑包,您应该将以下内容添加到您的deps文件中。

[easy-csv]
    git=http://github.com/jwage/EasyCSV.git

然后,您应该将以下内容添加到您的app/autoload.php

$loader->registerNamespaces(array(
    ...
    'EasyCSV'          => __DIR__.'/../vendor/easy-csv/lib',
));

现在您应该能够导入命名空间并使用它。

于 2012-11-30T22:38:39.917 回答