1

我有一个类处理一些我希望在我的主站点包中提供的 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;
4

2 回答 2

3

试试 Symfony类加载器组件

您可能需要创建一个新的包装类,以防您的第 3 方库不遵循 symfony 标准(即使用命名空间)。对于 sf2.0 看看这篇博客文章

编辑:这篇reddit 帖子解释了如何处理Call to undefined method Composer\Autoload\ClassLoader::registerPrefixes()错误。我还没有测试过它,但也许 ClassLoader 文档对于 sf2.1 来说还不是最新的。

app/autoload.php在您的文件中添加这些行:

$loader->add('foo_', __DIR__.'/../vendor/Foo/lib');
set_include_path(__DIR__.'/../vendor/Foo/lib'.PATH_SEPARATOR.get_include_path());
于 2012-10-22T14:27:25.230 回答
1

ClassLoader Composer 使用与ClassLoaderSymfony 提供的不同。尝试跟随,

$achMap = array(
    'ACH' => 'path/of/ACH.php'
);
$loader->addClassMap($achMap);
于 2012-10-22T15:51:25.130 回答