4

我正在关注这个 FOSTwitterBundle 文档: https ://github.com/FriendsOfSymfony/FOSTwitterBundle

我是一步一步做的,但是当我访问我的网站时,我收到了这个错误:

 Fatal error: Call to undefined method Composer\Autoload\ClassLoader::registerNamespaces() in C:\xampp\htdocs\Symfony\app\autoload.php on line 16

我的 autoload.php 是这样的:

<?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'));

$loader->registerNamespaces(array(
        // ...
        'FOS'    => __DIR__.'/../vendor/bundles',
        // ...
  ));

return $loader;

我应该怎么办?

4

3 回答 3

9

对于 symfony 2.* 替换这个

$loader->add('FOS' => __DIR__.'/../vendor/bundles');

$loader->add('FOS', __DIR__.'/../vendor/bundles');
于 2013-05-23T20:25:26.123 回答
6

基本问题是安装说明是针对 Symfony 2.0 的。您正在使用 S2.1。我没有在 twitter 包里闲逛。很难说它是否会在 2.1 下运行。通过 git submodule 而不是使用 composer 安装它似乎很奇怪。

尝试重新开始并添加:“friendsofsymfony/twitter-bundle”:“dev-master”到您的 composer.json 并进行安装。这应该会降低包并为您处理自动加载。

否则,替换:

$loader->registerNamespaces(array('FOS'    => __DIR__.'/../vendor/bundles'));
with
$loader->add('FOS' => __DIR__.'/../vendor/bundles');

S2.1 使用与 S2.0 不同的类加载器,具有不同的接口。它至少会让你摆脱错误消息。

但同样,请先尝试 composer 路线,然后可能会向项目提交补丁以更新自述文件。

于 2013-03-08T13:53:21.967 回答
0

认证?我不久前使用了https://github.com/hwi/HWIOAuthBundle 。如何与 FOSUB 集成:https ://github.com/hwi/HWIOAuthBundle/issues/81

于 2013-03-07T21:44:48.980 回答