安装ClassLoader组件

时间:2013-05-17 16:10:42

标签: symfony composer-php

我想安装第三方库,搜索后我尝试将其包含在 app / autolad.php 中:

loader->registerNamespace('libMyLib', __DIR__.'/vendor/mylib/libmylib');

会抛出错误:

Call to undefined method Composer\Autoload\ClassLoader::registerNamespace()

哪个搜索看起来像Symfony2中包含的ClassLoader与component ClassLoader不同,您必须安装此组件才能使用此方法包含第三方库。

所以,我尝试按照神秘的说明来安装它,看起来我需要安装Composer(我在Windows下),用这两行更新我的composer.json(我编写了版本根据{{​​3}})编号:

"symfony/finder": "2.2.*",
"symfony/class-loader": "2.4.*",

在我的命令行中执行composer install(就在symfony文件夹下),我做了,没有任何反应,我收到了这条消息:

Loading composer repositories with package information
Installing dependencies from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. 
You may be getting outdated dependencies. Run update to update them.
Nothing to install or update
Generating autoload files
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-install-cmd event terminated with an exception

[RuntimeException] An error occurred when generating the bootstrap file.

所以我比起初时更迷失;我如何包含第三方库?如何安装组件?

由于

1 个答案:

答案 0 :(得分:1)

忘记类加载器并手动注册命名空间,因为自动加载器是由composer生成的。但有两种选择。要求开发人员将composer.json添加到库中并在packagist上发布。或者将它自己包含在作曲家文档中描述的composer.json中的包存储库中:http://getcomposer.org/doc/05-repositories.md#package-2

编辑:在composer.json中更改内容后,您需要运行更新而不是安装。作为提示;-)