dhorchler / sympatch-bundle
Symfony2代码补丁工具
Requires
- php: >=5.3.3
- symfony/framework-bundle: >=2.1.0,<3.0
This package is not auto-updated.
Last update: 2022-02-01 12:24:09 UTC
README
Symfony2代码补丁工具
此捆绑包已被停止开发
#信息
DHorchlerSympatchBundle 包含一个工具,允许您在 Symfony 项目中的任何位置(包括供应商)修复代码部分。它甚至允许您扩展外部(供应商)实体!
允许您仅通过一个 XML 文件向客户发送微小的代码更改!
#特性
- 当第一次输入补丁时,保存原始源文件 (*.org)
- 可以停用补丁而不丢失它们(例如在 composer.phar 更新之前)
- 通过行号或代码片段之前/之后定位代码位置(推荐)
- 可以修复任何类型的代码,而不仅仅是PHP
##获取捆绑包
首先将其添加到 composer.json 中,然后通过 Composer 下载并安装捆绑包
{
"require": {
"dhorchler/sympatch-bundle": "dev-master"
}
}
并运行
php composer.phar update dhorchler/sympatch-bundle
##在 app/AppKernel.php 中启用捆绑包
public function registerBundles() {
$bundles = array(
// ...
new DHorchler\SympatchBundle\DHorchlerSympatchBundle(),
);
// ...
}
##创建补丁文件
使用 Ressources/patch/patches_examples.xml 的示例文件创建您的补丁文件,保持该文件的 XML 结构。Sympatch 将查找 Ressources/patch/patches_*.xml 文件以加载补丁。
##使用方法
php app/console patch --func=list php app/console patch --func=listall php app/console patch --func=update php app/console patch --func=deactivateall
##提示
-
在指定 <beforecode> 或 <aftercode> 标签中的代码位置时,将目标源文件中的完整行复制到 xml 文件中
-
通过运行测试,将 /Resources/patch 中的任何补丁文件(如 patches_.xml)临时重命名为 patches_.xml.unittest
-
鼓励使用 <beforecode>、<aftercode> 而不是 <beforeline>、<afterline> 的两个原因:同一文件中的多个补丁不会因每个补丁引起的行移位而导致行号跟踪问题。通常,在代码库升级后,补丁工作的可能性更高,无需修改。
-
已添加 deactivateall 命令,允许在没有版本冲突的情况下升级代码库。它将停用所有补丁,不考虑每个补丁在补丁文件中的状态。顺序如下
- php app/console patch --func=deactivateall
- 进行升级(例如 php composer.phar update)
- php app/console patch --func=update
-
当您向其他人发送代码补丁时,将补丁文件标记为未处理(<processed>no</processed>)。接收者必须将 xml 文件复制到 Resources/patch,然后重新启动其应用程序。在重新启动期间,Sympatch 将查找未处理的补丁文件,处理它们(在 onKernelRequest 触发器上)并将它们标记为已处理。