投稿

8月, 2014の投稿を表示しています

CakePHP1.3系で開発していたものをCakePHP2.x系にアップグレードするときにハマった話。

何にハマったのかというと、ログイン関連とメール送信関連とテスト関連です。 ハマるまでは簡単で、まずは公式サイトのマニュアルを見てください。 するとあぁ、upgrade-shellってやつで何かうまくやってくれるんだなという雰囲気があるのでその通りに実行していきます。 upgrade-shellを実行した後は、「あれ、エラーがいっぱい出てる」という気分でした。 エラーの内容をメモするのを忘れましたが、CakePHP2.x系になってから新たに追加されていた設定がupgrade-shellだけでは対応されていなかったことが問題でした。 確か /index.php /app/webroot/index.php /app/webroot/test.php /app/Config/database.php /app/Config/bootstrap.php /app/Config/core.php を書き換えました。 これでほぼ表示はされていたと思います。 そこで、テストを走らせようとhttp://localhost/appname/test.phpにアクセスしてみると、CakePHP2.xからはSimpleTestではなく、PHPUnitに変わっていたことを思い出しました。 このあたりはQiitaでうまくインストールされていた方の記事を拝見して参考にさせていただきました。 http://qiita.com/ikuwow/items/b53cdaeb0132211ec272 テストを実行するとあーダメだとまた気づきます。 upgrade-shellでは/app/Test/*/〜.phpのファイル名がキャメル記法になっていませんでした。 そしてログイン関連とメール送信関連が動いていないことに気づきました。 まずログインですが、CakePHP2.4以降はログイン処理の書き方が変わっていました。 ハッシュも自動的にはされなくなっていて、最初は少し驚きました。 この辺りは公式のマニュアルのログイン処理の部分をご覧ください。 メールについては、もともとQdmail+QdsmtpのComponentを使っていたもので、 Componentのファイル群をCakePHP2.x用に修正しました。 ここも人柱がおられたの