我对使用Composer有点困惑。
我已经构建了自己的包管理器,它使用了一个配置文件和一个大型SVN repo,其中包含我在几个不同项目中需要的所有可能的库(PHP和Javascript/CSS)。我自己从图书馆网站下载这些软件包。
现在我尝试使用Composer,因为我喜欢自动相关性检查,并且希望使用其他人都做的东西。但你如何决定什么套餐是最好的呢?
例如,对于CodeMirror
,我曾经从https://codemirror.net/。但当我在Packagist上查看时,我看到了很多不同的版本,我不知道该选择哪一个。似乎每个人都可以为Composer创建新的包?我只需要官方的。
那么,你们怎么挑选你们需要的包裹呢?
要直接回答您的问题,对于要导入到项目中的任何组件,找到"规范"源代码(而不是各种fork)的方法是返回原始源代码,查看它们的使用/安装说明。如果他们支持基于Packagist的安装,他们通常会这么说。如果不支持,但他们(通常)的Github存储库中有一个composer.json
,那么你可以像往常一样将存储库添加到你的composer.json
,然后再添加到require
包中。
然而,更普遍地说,我认为对于作曲家真正的工作还有一些困惑。如注释中所述,Composer是PHP的依赖项管理器。Packagist是composer管理包的主要存储库。您引用的CodeMirror库基本上是一个javascript库。
现在,如果你在Packagist上搜索"codemirror",你会在那里看到很多结果,其中一些被标记为Javascript组件。但它们主要是:
-
允许消费者在基于PHP的视图脚本中与CodeMirror交互或简单加载CodeMirror的包装器,如Yii框架的征服/CodeMirror,或Symfony框架的nitrado/code-mirror捆绑包;或
-
组件项目的填充存储库,例如组件/jquery,然后使用Composer 组件安装程序中的命令行脚本进行安装
一句话:Composer主要用于导入PHP包。它需要一些技巧——比如上面提到的Composer的组件安装程序——才能使它对非PHP包有用。