我有一个类处理一些API集成,我希望在我的主站点包中提供它,如下所示:
class ACH {
public function __constructor();
public function addACHTransaction();
...
}
如何在Symfony 2中集成此类,以便我可以通过执行以下操作在我的控制器和实体中使用它:
$ach = new ACH();
* 编辑:* 以下是我的autoload.php文件的内容。
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
答案 0 :(得分:3)
尝试使用Symfony ClassLoader Component。
如果您的第三方库不遵循symfony标准(即使用命名空间),您可能需要创建一个新的包装类。对于sf2.0,请查看此blog article。
编辑:此reddit post解释了如何处理Call to undefined method Composer\Autoload\ClassLoader::registerPrefixes()
错误。我还没有测试过,但是对于sf2.1,ClassLoader文档可能还不是最新的。
在app/autoload.php
文件中添加以下行:
$loader->add('foo_', __DIR__.'/../vendor/Foo/lib');
set_include_path(__DIR__.'/../vendor/Foo/lib'.PATH_SEPARATOR.get_include_path());
答案 1 :(得分:1)
ClassLoader Composer的使用与ClassLoader
Symfony提供的不同。试试以下,
$achMap = array(
'ACH' => 'path/of/ACH.php'
);
$loader->addClassMap($achMap);