dereuromark/cakephp-upgrade

此包已被弃用且不再维护。未建议替代包。

一个帮助从1.x或2.x升级到最新稳定版本的CakePHP插件的包

安装数 4,945

依赖者: 0

建议者: 0

安全性: 0

星标: 36

关注者: 6

分支: 14

开放问题: 0

类型:cakephp-plugin

dev-master 2016-01-10 02:57 UTC

This package is auto-updated.

Last update: 2023-12-17 06:44:48 UTC


README

Minimum PHP Version License Total Downloads

帮助自动化从CakePHP 1.1/1.2/1.3升级到CakePHP 2.x及更高版本的流程。

重要通知 - 2014-02

此插件现在处于“功能冻结”状态,以支持全新的独立 CakePHP 升级工具 - 使用CakePHP 3.x构建。请帮助将所有2.x和3.x相关升级命令迁移到这个新仓库。

改进版本(基于原有版本构建)

原始版本缺少许多可以自动执行的功能。已将更改报告为工单,但到目前为止,这些更改尚未纳入官方版本。

注意:以下某些“安装”步骤仅适用于从1.x升级(如文件夹重命名)。不要将它们视为一个完美调整的工作列表(也不要在意顺序)。每个应用程序,每个设置都是不同的。这更像是一个指南,用于确保基本步骤正确。

它还可以应用许多额外的功能,并强制执行编码标准等。这些命令并非必不可少,但很有用。

安装

Composer(推荐)

在您的composer.json文件所在的文件夹中执行以下操作:

composer require --dev dereuromark/cakephp-upgrade dev-master

自定义

a) 确保您已安装最新的稳定2.x版本的CakePHP核心。通常您只需将当前Cake master分支的/lib文件夹复制到您的/app目录旁边的/lib文件夹中。

b) 将此插件复制到您的/app/Plugin文件夹中,作为/app/Plugin/Upgrade

c) 手动将/app/config文件夹重命名为/app/Config(我们需要这里的bootstrap.php文件)。

d) 在您的app/Config bootstrap中放置CakePlugin::load('Upgrade')CakePlugin::loadAll();,以确保此插件被加载。

e) 或者将下载的2.x仓库中的cake shell放置在app/Console中,或者使用lib/Cake中的一个。

f) 准备就绪!运行任何可用的命令(见下文详细信息)。其中最重要的一项是locations,应首先运行。

在运行shell之前,不要忘记删除旧的(1.x)/cake文件夹,并手动清除(持久的)缓存。

我从未真正需要手动将我的core.php替换为新2.x core.php。但是由于引入了许多新功能,这样做可能是有意义的。只是不要忘记合并您的现有设置,如盐和缓存/会话/cookie设置。或者至少将您的配置文件与当前master版本进行比较。

记住:此时你已经在使用2.x shell。之前使用的"cake1.x"或任何其他内容现在正式不再使用。

此外:注意大小写!大写和小写非常重要。

使用方法

升级shell

由于这是一个插件,请使用以下方式使用它:

cake Upgrade.Upgrade [command]

不输入任何命令运行它将显示可以选择的命令列表。请首先检查此内容。你可能需要先设置你的cake shell的执行权限(在Unix上),以便运行任何shell。

注意:如果你使用Unix,完整的命令(从你的应用目录相对路径开始)将是:

../lib/Cake/Console/cake Upgrade.Upgrade [command]

在Windows上

..\lib\Cake\Console\cake Upgrade.Upgrade [command]

如果你使用app/Console shell代替(要使其生效,你还需要从核心库的/Templates/skel/中复制Console文件)

Console/cake Upgrade.Upgrade [command]

对于Windows

.\Console\cake Upgrade.Upgrade [command]

使用APP/Console的简短版本是首选,因为你迟早需要这些文件。这也是2.x中调用shell的文档化方法。特别是如果你计划为你的2.x应用使用composer。

此版本现在还支持原始命令/任务

  • webroot(重要)
  • database(重要)
  • routes(重要)
  • 遗留
  • 名称
  • 构造函数
  • 报告
  • 严格
  • 视图
  • 分页器(只运行一次!)

等等

新功能现在也支持

  • svn(Linux/Windows)
  • 分组命令
  • 除了命令(除了少数几个,例如except paginator跳过分页器方法)

正确的shell

此外,你可以使用CorrectShell来纠正以下内容:

  • 请求
  • vis
  • 参考
  • i18n
  • 表单
  • 约定
  • 约定2
  • html5
  • php53

使用cake Upgrade.Correct [command]

提示:你可以使用cake Upgrade.Correct all来快速应用所有相关的纠正命令。

提示2:对我来说最重要的特性是我的版本干净地分离了应用和插件。不使用-p PluginName时,它们将保持原样。如果你想升级插件,请使用

cake Upgrade.Upgrade [command] -p PluginName

我还添加了对-p * -的支持,以一次解决所有插件。这只有通过像这样使用group命令才能完全支持

cake Upgrade.Upgrade group [command1] [command2] ... -p *

你需要提供至少两个命令(如果你想只使用一个,请将其输入两次)

cake Upgrade.Upgrade group [command1] [command1] -p *

这是因为一个参数代表一个配置组

未充分测试的插件通配符使用方法

cake Upgrade.Upgrade [command] -p *

应该一次性抓取所有文件并处理它们

转换shell

目前转换shell处理以下内容:

  • 从长数组()语法到短[](PHP5.3到PHP5.4)

MyUpgrade shell

这主要是针对工具插件和特定应用的内容。你可以忽略这个shell。

更新 2012年1月:支持2.1

现在支持

  • Auth::allow()、布局内容等

更新 2012年9月:支持到2.3

现在支持

  • request->query()和Set/Hash替换

更新:2012年12月

现在创建自2.1以来所需的缺失应用类

  • AppHelper, AppModel 和 AppController(AppShell目前不是必需的)

更新:2013年夏季:2.4/2.5(以及一些3.0)支持

  • onlyAllow() 到 allowMethod() 等

更新:2014年夏季:2.6支持

  • 一些验证规则已更改

更新:2015年:2.7和2.8支持

免责声明

请在备份您的应用文件夹后使用此脚本。

此外:此强大插件不是为新手准备的。如果您不了解至少一些Cake基础知识,请不要使用它。

故障排除

  • 确保您已启用debug模式并/或已清除缓存。
  • 使用全新的2.x应用并使用此插件来了解新主版本的工作方式以及插件的操作方式,如果您是第一次使用2.x进行试验。然后,通过获得一些更深入的了解,将1.x应用迁移到2.x将更容易。

我的建议

请使用git、svn或其他版本控制系统来验证所做的更改。这样,您可以立即检测到错误的替换。因此,最好单独使用每个升级命令,并在每次成功运行后提交/推送。如果某个命令出现问题,您可以很容易地恢复到最后一步。请谨慎使用regexp命令,因为它们有时可能过于积极,并且尚未进行全面测试。

因此,理想的顺序可能是

  • 位置
  • webroot
  • 路由
  • 数据库
  • (其余部分 - 应用程序可能已经在这一点上可浏览了)

您真的必须亲自做的事情(想象一下^^)

  • 确保您已将缺失的App::uses()语句添加到类文件中
  • 修复一些ESTRICT错误
  • 应用新功能缺失的配置

以及迁移指南中详细记录的所有其他尚未涵盖的内容