joseym / li3_installer
Lithium PHP (li3) 第三方库安装器。
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-14 12:42:52 UTC
README
震撼 Composer!
有关于将框架安装器集中化的趋势。主要项目名为 baton,但社区中也有一些兴趣希望 Composer 能够将其作为自己的。
如果这样做了,那么显然,这个项目将变得无关紧要。
我支持这个请求,你也应该这样做!看看 Baton,它很棒!
注意
这看起来可能像是一个锂库,但实际上它不是。
这是一个 composer 安装器包,它将类型为
li3-libraries
的 composer 包安装到锂的正确位置。这意味着你不需要在你的应用程序中安装它,你只需要在你的 li3 插件的 composer 文件中要求它。
设置你自己的 li3 composer 插件
我将假设,现在你了解如何向 Packagist 提交一个包
如果不了解,不用担心,我会在稍后简要说明如何做。
在你的插件根目录下创建 composer.json
安装器文件
LITHIUM_APP_PATH . "app/libraries/li3_myplugin/composer.json"
确保你要求这个包,并确保你的插件包类型设置为 li3-libraries
。
以下是一个 composer.json
文件示例(基于我的 smarty 插件)
{ "name": "joseym/li3_smarty", "type": "li3-libraries", "description": "Smarty PHP plugin for Lithium PHP ... if you're into that sort of thing", "keywords": ["template engine", "smarty", "lithium"], "homepage": "https://github.com/joseym/li3_smarty", "license": "GNU General Public License", "authors": [ { "name": "Josey Morton", "email": "me@joseymorton.com", "homepage": "https://github.com/joseym" }, { "name": "Alex Denvir", "email": "coldfff@gmail.com", "homepage": "https://github.com/alexdenvir" } ], "require": { "php": ">=5.3", "joseym/li3_installer": "master" } }
上面的内容应该很直观,主要要注意的是 type
键和 require
哈希。
smarty 插件需要这个安装器,因此当你告诉你的应用程序要求 smarty 插件时,Composer 将自动获取并安装 li3_installer
包(如果它不存在的话),否则它将直接使用它。
使用 composer 和安装器
以下是一个示例应用程序的 composer.json
文件,它将安装 li3_smarty
。
{ "name": "lithium-dev", "version": "0.1.0", "config": { "vendor-dir": "libraries/_source" }, "require": { "joseym/li3_smarty": "master" } }
首先,config.vendor-dir
告诉包安装到 libraries/_source
目录。
我喜欢把第三方的东西放在这里(我喜欢让我的库目录“li3”友好,仅此而已)。
所有非锂 composer 包现在都将安装到
libraries/_source
。所有 li3-libraries 包都将安装到
libraries/li3_packagename
,无论config.vendor-dir
中设置了什么。没有法律规定这必须是一个约定,但我觉得这很有意义
使用 composer 安装依赖项
在你的项目根目录(composer 安装的地方)运行以下命令
php composer.phar install
它应该花一点时间来获取依赖项,但之后你应该会看到类似这样的内容
Installing dependencies - Package joseym/li3_installer (dev-master) Cloning 4f048b2888adbfbe8b8c8b5fdbf7f46ae2f95654 - Package joseym/li3_smarty (dev-master) Cloning 9ab5b8e6b11e6d68f606e3882d4b4503821a1996
li3_smarty
现在将位于你的 libraries
目录中。
在 libraries
中,你还将看到一个名为我的供应商名称 joseym
的目录。在 joseym
中,你可以找到安装器 li3_installer
。
将你的插件添加到 Packagist
好了,所以你的插件已经为 composer 配置好了(在插件的根目录中有 composer.json),很好!
为了将包提交到packagist,您需要按照以下说明操作:
- 在packagist上注册一个账户
- 登录并 提交您的包 - 包的源代码仓库,例如在li3_smarty的情况下,我将使用我的只读git URL。
- 在
仓库URL
字段中输入URL:git://github.com/joseym/li3_smarty.git
然后,packagist将尝试抓取您的仓库,并确保composer.json
文件是有效的。
您就可以开始使用了!
附加说明
为了在您推送时自动更新packagist仓库,您需要设置一个GitHub钩子。
这很简单,您只需在packagist钩子表单中输入您的packagist用户名(如果与GitHub不同)和GitHub提供的API Token,并勾选“激活”复选框。
- 是Composer新手吗? 阅读一些文档
- 这项工作受到了Michael Nitschinger的文章的启发
- 我写了一篇文章解释了为什么,虽然Michael的工作很好,但仍然出现了一些其他问题
有疑问或遇到问题? 提交一个问题!
感谢!
我想感谢我的超级棒的雇主,Vitals,他们赞助了这个(以及其他)Lithium库的开发工作,以及nwp在我想要工作在一些插件上时没有抱怨,甚至鼓励我。
为那些理解回报社区价值的人工作真是太好了,这个社区为我们提供了很多。