Symfony 2 - 如何确定 autoload.php & Appkernel 的命名空间和bundle名称.php



我对symfony2很陌生,找不到以下信息:要注册位于我的供应商目录中的捆绑包,如何确定autoload.php的命名空间和捆绑包名称;Appkernel.php?

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

内容所在位置:

namespace LiuggioExcelBundle;
use SymfonyComponentHttpKernelBundleBundle;
class LiuggioExcelBundle extends Bundle
{
}

我应该在Appkernel和namespace.php中放入哪些行?这个和这个都不起作用:

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

我根本无法使用composer或github-reo,因为我所在的位置有太多的代理和限制。

您不应该手动将捆绑包放置在vendor目录中。让作曲家为你做这件事。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'),

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

new LiuggioExcelBundleLiuggioExcelBundle(), 

在AppKernel中应该工作正常。这是LuiggioExcelBundle类的名称空间+类名。看看你的包裹是怎么装的,都一样。

你的错误是什么?

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

你所说的namespace.php是什么意思?:o

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

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

最新更新