cakephp2から3へアップグレードするために、ツールが提供されている。
https://book.cakephp.org/3/ja/upgrade-tool.html
このレポジトリ内に使い方について記載されているreadme.MDがあるが、それを和訳してみた。
ーーー以下ファイルの内容ーーー
ページコンテンツ
CakePHP Upgrade tool
CakePHP のアップグレード ツールは、CakePHP 2.x から 3.0.0 への移行を容易にすることを目的としています。
警告 このツールはまだ開発中であり、移行のすべての側面を処理できるわけではありません。
インストール
最初に、このレポジトリの3.xをcloneしてください。
git clone https://github.com/cakephp/upgrade.git -b 3.x
アップグレードツールをダウンロード(clone)したら、「composer」を使用して依存関係をインストールする必要があります。
php composer.phar install
依存関係がインストールされたら、「upgrade」シェルの使用を開始できます。
使い方
アップグレード ツールは、他のアプリケーションやcakephpのプラグインをアップグレードするのに使用できるスタンドアロンアプリケーションです。
パラメータとしては、サブコマンドとアップグレード対象のcakeアプリケーションへのパスを指定します。
cd /path/to/upgrade
bin/cake upgrade all /home/mark/Sites/my-app
bin/cake upgrade skeleton /home/mark/Sites/my-app
最初のコマンド(上の2行目)は、/home/mark/Sites/my-app
ですべてのタスクを一度に実行します。
おそらくこれが、ほとんどの人が使いたいと思う方法です。
さらに、2 番目のコマンドは、/home/mark/Sites/my-app
で skeleton
タスクを実行します。
このコマンドはアプリにのみ必要なため、「all」には含まれていません。プラグインにはそれが必要ありません。
アプリケーションをバージョン管理下に置き、アップグレード ツールを使用する前にバックアップを作成してください。
注意事項
いくつかのコマンドは相互に依存関係があるため、特定の順序で実行する必要があります。それ
他のコマンドを使用する前に、まず次のコマンドを実行することをお勧めします。
bin/cake upgrade locations [path]
bin/cake upgrade namespaces [path]
bin/cake upgrade app_uses [path]
これら 3 つのコマンドを実行したら、他のコマンドを任意の順序で使用できます。
「all」コマンドはデフォルトですでに正しい順序を使用しています。
利用可能なタスク
locations
ファイルやディレクトリを移動します。 namespaces コマンドを使用して名前空間を追加する「前」にこれを実行します。
namespaces
ファイル パスに基づいてファイルに名前空間を追加します。これは、ファイルを移動した後のみ実行してください。
app_uses
App::uses()をuse文に置換します。
rename_classes
移動/名前変更されたクラスの名前を変更します。 App::uses() を置き換えた後に実行します。
rename_collections
HelperCollection, ComponentCollection, TaskCollectionをリネームします。
また、すべてのコントローラコンストラクトの変数とコレクションプロパティも変更します。
method_names
多数のメソッドのメソッド名を更新します
method_signatures
多数のメソッドのメソッドシグネーチャーを更新します
fixtures
新しいインデックス/制約機能を使用するようにフィクスチャを更新します。これはテストを実行する前に必要です。
tests
フィクスチャに関するテスト ケースを更新します。
i18n
プレースホルダーに関する翻訳機能を更新します。
skeleton
appレポジトリ用の空ファイルとディレクトリを追加します。
prefixed_templates
プレフィックス付きアクションのビュー テンプレートをプレフィックス サブフォルダーに移動します。例えば。 Users/admin_index.ctp は Admin/Users/index.ctp になります。
デフォルトでは「admin」プレフィックスが処理されますが、「–prefix=other」を使用して他のルーティング プレフィックスに対してこのタスクを実行することもできます。
More Available Tasks
まだこのメインタスクにマージされていない、利用可能なさらにいくつかの上部タスクについては、dereuromark/upgrade リポジトリを参照してください。