我是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,我可以使用太多的代理和限制。
答案 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)有了这个,您将不会有任何端口限制。