Symfony 2 - 如何确定autoload.php&的名称空间和分发包名称Appkernel.php

时间:2014-05-05 09:03:45

标签: symfony namespaces bundle composer-php

我是symfony2的新手,我找不到这个信息: 要注册位于我的供应商目录中的捆绑包,如何确定autoload.php&的名称空间和捆绑包名称。 Appkernel.php?

例如,我已经下载了Luiggio的PHPExcel Bundle。我把它放在vendorDir / ExcelBundle /

内容是:

namespace Liuggio\ExcelBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class LiuggioExcelBundle extends Bundle
{
}

我应该在Appkernel和namespace.php中添加哪些行? 这和这不起作用:

new Liuggio\ExcelBundle\LiuggioExcelBundle()
//'Liuggio\\ExcelBundle' => array($vendorDir. '/PHPExcel'),

我根本不能使用composer或github repo,我可以使用太多的代理和限制。

2 个答案:

答案 0 :(得分:1)

您不应手动将捆绑包放在vendor目录中。让Composer为您完成此任务。 Composer不仅知道供应商库/软件包应该位于何处,还将它们添加到自动加载文件中并执行其他一些自动化任务。

要告诉Composer需要哪些库,您应该将它们添加到composer.json

    "require" : {
        (...)
        "liuggio/ExcelBundle": "~2.0"
    },

接下来,使用命令行运行composer update命令:

$ php composer.phar update

(如果您的项目目录中没有文件composer.phar,但您在全局安装了Composer,请使用以下命令:)

$ composer update

这将告诉Composer自动下载所需的依赖项,更新自动加载脚本等。当它完成后,你就准备好了。

如果您无法在服务器上使用Composer,请在上传文件之前在本地运行它(尽管我强烈建议您转移到允许您使用Composer的服务器上)。

您尝试添加到AppKernel.php的行是正确的,但它只能在运行Composer后运行(或者您确实必须手动下载文件并更新自动加载器,但我强烈建议反对那个。)

修改

如果您确实无法使用Composer,请执行以下操作:

将ExcelBundle的文件放在以下目录中:

vendor/liuggio/ExcelBundle/Liuggio/ExcelBundle

AppKernel.php中的行已经正确。

将此行添加到autoload_namespaces.php

'Liuggio\\ExcelBundle' => array($vendorDir . '/liuggio/ExcelBundle'),

最后但同样重要的是,向您的系统管理员抱怨他用愚蠢的安全措施让您无法完成工作。

答案 1 :(得分:0)

new Liuggio\ExcelBundle\LiuggioExcelBundle(), 
AppKernel中的

应该可以正常工作。 这是LuiggioExcelBundle类的名称空间+类名。看看你的软件包是如何加载的,它是一样的。

你的错误是什么?

你说vendorDir / ExcelBundle /但它的供应商/ ExcelBundle对吗?

你是什么意思namespace.php? :○

https://github.com/liuggio/ExcelBundle ==>自述文件很容易理解,它应该对你有帮助。

对于你的“代理和限制”,作曲家是一个强大的工具,我可以帮助你使用它。下载此软件,免费版本足够http://www.frozenway.com/(如果您无法阅读法语,标题中的第一个输入是翻译网站,英语是Anglais)有了这个,您将不会有任何端口限制。