hirokws / prepper
通过Composer工具注册安装包的服务提供者和类别名。
Requires
- php: >=5.3.7
- illuminate/container: 4.0.*@dev
Requires (Dev)
- mockery/mockery: 0.8.*
- phpunit/phpunit: 3.7.*@dev
This package is not auto-updated.
Last update: 2016-10-23 08:48:27 UTC
README
使用Composer工具自动更新Laravel包的app/config/app.php
文件。
概要
将Prepper添加到根目录下composer.json文件的require
或require-dev
部分。
"hirokws/prepper": "dev-master"
然后执行composer update
,或者
composer require "hirokws/prepper:dev-master"
为了激活Prepper,运行shell脚本
vendor/bin/prepper-start.sh
或者在Windows环境下
vendor/bin/prepper-start.bat
(抱歉,尚未在Windows环境下测试...)
如何使用?
无需特别操作即可正常工作。只需像平时一样通过composer安装包。
如果安装包中存在provides.json文件,则会自动更新app.php,使用json文件中定义的信息注册服务提供者和类别名。
当使用composer删除包时,也会从app.php中删除服务提供者和类别名的注册。
安装
使用composer安装"hirokws/prepper": "dev-master"
。
然后运行vendor/bin/prepper-start.sh
(在Linux/Unix上)或vendor/bin/prepper-start.bat
(在Windows上)。
或者手动将以下json添加到根目录下composer.json文件的script
部分。
"post-package-install": [
"Prepper\\Prepper::installPackage"
],
"pre-package-uninstall": [
"Prepper\\Prepper::uninstallPackage"
],
卸载
运行vendor/bin/prepper-stop.sh
或vendor/bin/prepper-stop.bat
。
或者从根目录下composer.json文件的script
部分移除"post-package-install"和"pre-package-uninstall"定义。
provides.json
provides.json
文件包含用于注册/注销app.php中服务提供者和类别名的信息。
定义与rtablada/package-installer兼容。
例如,对于"Juy/profile"包
{
"providers": [
"Juy\\Profiler\\Providers\\ProfilerServiceProvider"
],
"aliases": [
{
"alias": "Profiler",
"facade": "Juy\\Profiler\\Facades\\Profiler"
}
],
"PostInstallMessage": "Updated app.php config file automatically for juy/profiler.",
"PostUninstallMessage": "Automatically remove juy/profiler setting from app.php config file."
}
因此,定义
providers
:注册服务提供者名称。alias
和facade
:注册类别名。PreInstallMessage
:注册前的消息。PostInstallMessage
:注册后的消息。PreUninstallMessage
:注销前的消息。PostUninstallMessage
:注销后的消息。
本地支持的包
Prepper本地包含一些安装定义json文件。因此,以下包可以直接使用。
- barryvdh/laravel-ide-helper
- cartalyst/sentry
- frozennode/administrator
- jasonlewis/basset
- juy/profiler
- loic-sharma/profiler
- way/generators
- way/guard-laravel
- zizaco/confide
- zizaco/entrust
(按ABC顺序排列)
注意
Prepper仅修改app/config/app.php
文件,不会触及其他app.php文件。
如果app.php文件中'providers' / 'aliases'数组最后一个项目不以逗号结尾,则任何添加的内容都不会生效。因此,确保最后一个(所有)项目以逗号结尾。
这是永远的beta版本。因为我认为Taylor正在为Laravel 4.1开发类似的功能。因此,这个包的生命周期可能很短。
老实说,这种功能在所有Laravel包都包含安装信息时才变得非常有用。为了实现这一点,必须得到官方支持。