2013-05-17 35 views
0

我想安装一个第三方库和搜索后我tryed包括这应用程序/ autolad.php安装的ClassLoader组件

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

会抛出一个错误:

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

哪些搜索看起来像Symfony2中包含的ClassLoader与component ClassLoader不同,您必须安装此组件才能使用此方法包含第三方库。因此,我尝试按照神秘的说明来安装它,看起来像我需要安装Composer(我在Windows下),用这两行更新我的composer.json(我根据packagist):

"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. 

所以我比更多的损失当我开始时;我如何包含第三方库?我如何安装组件?

由于

+0

没有运气'没有安装为更新列出的软件包“symfony \ component \ classloader \ universalclassloader”。忽略。 更新依赖关系(包括require-dev) 您的需求无法解析为可安装的一组软件包。 问题1 - 无法找到请求的软件包symfony/class-loader 2.4。*。 可能的原因: - 软件包名称中的拼写错误 - 根据最低稳定性设置,该软件包不够稳定版本 请参阅的更多详细信息。' –

回答

1

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

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

+0

我在版本中出错,packagist为composer.json提供了正确的行:“symfony/class-loader”:“v2.2.1” –

+0

Kk,但试试作为composer.json中的包,而不是将其添加到autoload.php中,因为混合两个自动加载器并不好。使用生成的作曲家自动加载器的作曲家项目。 –

+0

Ppppff,作曲家接连抛出一个错误 –