Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

手元の cakephp コードを最新ベースにアップデート

ようやく手元のコードを最新の cakephp 3.2.6 ベースに追従させてみました.

cakaphp3 系統で過去互換は割と保たれていますが,微妙に異なっていたりするので思ったよりも手間がかかりますね.で,追従させる作業をする際の注意点みたいな物を思いつくままにだらだらと書いてみたいと思います.

当然ですけど,cakephpChangeLog はきちんと目を通しましょう.

過去バージョンの互換はある程度は保たれていますが,cakephp のアップデートに伴って廃止されているオプションなどがあることもあるので,当てはまる場合には書き直しが必要になります.最近だと Form の url 指定の一部オプションが廃止になりましたね.これまでは

$this->Form->create($hoge, ['url' => ['controller' => 'foo', 'action' => 'bar']])

でも

$this->Form->create($hoge, ['controller' => 'foo', 'action' => 'bar'])

でも良かったですが,後者の書き方は廃止されました.新しい書き方が採用になって,古い書き方が廃止になるまではある程度併用期間はありますが,どうしても昔の書き方で問題ない場合はすぐには書き換えない場合が多いですよね.まぁ,気がついたら徐々に移行する癖を付けて置いた方が良いですね.一気にやろうとすると割と面倒です.

あと,composer で cakephp 自体のバージョンアップは簡単になりましたが,当然ですがバージョン管理はきちんとしておきましょう.

cakephp のマニュアルでは composer.json

"require": {
        "cakephp/cakephp": "~3.2"
}

なんて書いておけばって書かれていますけど,きちんと

        "cakephp/cakephp": "3.2.6"

とバージョン指定をして置いた方が無難です.不用意に composer update して気がつかないうちにバージョンが変わっていたってこともありますからね.それで何を直しているのか分からない状態になってちょっと焦ったりしたことも....はい....

あとは私個人的なことで,過去に同様の内容を少し書いたことはありますが,最近はできるだけ plugin には頼らないようにしています.きちんとした開発体制で開発が行われている plugin だと大丈夫かなとは思いますが,個人で作って公開している plugin を使っていた場合に,その plugin 自体の開発が放置されてしまい,最新の環境だと動作しなくなってしまうことがぼちぼちと.仕方ないので,その plugin の中を書き換えようとするけど,どんどん書き換えているうちにゼロから書き直した方が早いんじゃないかなぁってことになることも.ということで,最近はほぼ全部自分で書き直してそれをメンテナンスしながら使い続ける形に徐々に移行しています.最初の手間はかかりますけど,中身が分かっている分,メンテナンスもすぐに出来ますね.公開されている plugin を使うと,設置は簡単だけど,凝ったことをしようとするとドキュメントをきちんと読んで,オプション指定を試行錯誤して,必要なら内部コードを追っ掛けてってしてると割と手間がかかるし,バージョン上げるときにも...ってことでそんな形に落ち着いています.

まぁ,cakephp に限らず他のアプリとかでも同じかなぁと思うことですけど,なかなか学習できずに,同じ事を繰り返してしまうんですよね.精進しないと.

以上,参考程度に.