こんにちは @ken880guchi です。
Qiita への初投稿が CakePHP Advent Calendar 2014 で行うことになるとは思ってもいませんでした。
投稿が遅くなってごめんなさい。
CakePHP Advent Calendar 2014 - 7日目は、CakePHP2 と CakePHP3 をセットアップするまでの差異について確認を兼ねての紹介を行いたいと思います。
必要になる PHP と Extension
CakePHP3 系からは下記の Extension が必須のようです。
CakePHP | PHP | Extension |
---|---|---|
2.x | 5.2.8 以上 | 特に必要なし |
3.x | 5.4.16 以上 | mbstring, mcrypt, intl が必要 |
サポートする Database
サポートする Database についても若干変更が合ったようです。
自分は、普段 CakePHP を使用するときは MySQL 以外と組み合わせて使用したことがないので、特に記述のない部分についてのサポート範囲については解りませんでした・・・
CakePHP | MySQL | PostgreSQL | Microsoft SQL Server | SQLite |
---|---|---|---|---|
2.x | 4 以上 | 特に記述無し | 特に記述無し | 特に記述無し |
3.x | 5.1.10 以上 | 特に記述無し | 2008 以上 | 3 以上 |
インストール
CakePHP3 系からは compser を使用したインストールが主流になり、一気に今風になった感じがします。
CakePHP2
CakePHP 本家から Zip をダウンロードして展開する形になると思います。
composer でのインストールも応用インストールという項で用意されているので、CakePHP2 系でもcomposer が使用できないことはないようですが、アプリケーションを別の環境で動かす設定やautoloader の設定をする必要があるようです。
CakePHP3
必要なライブラリがインストールされていることを確認して、下記のコマンドを実行しましょう。
composer create-project --prefer-dist -s dev cakephp/app sandbox_app
Extensionが不足している場合は下記のような感じでエラーが出力されるので、インストールしてもう一回実行しましょう。
Problem 1
- Installation request for cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
- cakephp/cakephp 3.0.x-dev requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
パーミッションの設定
Webサーバとコマンドラインユーザーからの書き込み権限を与えて上げるのは 2系 も 3系 も同じようです。差異としてはCakePHP3 系からはディレクトリの構成が変わったことにより、tmp ディレクトリと logs ディレクトリの場所が変更されていました。
CakePHP 2
APP_ROOT/app/tmp ディレクトリとその配下のディレクトリに対して書き込み権限を与える必要があります。
CakePHP 3
- APP_ROOT/tmp ディレクトリとその配下のディレクトリに対して書き込み権限を与える必要があります。
- APP_ROOT/logs ディレクトリとその配下のディレクトリに対して書き込み権限を与える必要があります。
動作確認
PHP5.4 から Built-in Server が使用できるため、PHP5.4.16 以上を要求する CakePHP3系 からは動作確認も楽になっていました。
CakePHP 2
環境構築の際にインストールした Apache 等の Web Server を起動させて、http://localhost/ にアクセスして確認する必要があります。
2014/12/11 追記
shin1x1 さんから、CakePHP 2 でも下記のように確認出来る事をコメントにて教えていただきました。
shin1x1 さん。有難う御座います!
こんにちは。CakePHP 2 でも server コマンドがあるので、PHP 5.4 以降であれば、下記でビルトインサーバを使うことができます。
$ ./app/Console/cake server -p 8000
CakePHP 3
下記のコマンドで正しく設定されているか直ぐに確認できます。
bin/cake server
//ポートを変更したい場合は下記のコマンド
bin/cake server -p 5673
チュートリアル (おまけ)
CakePHP3系 からは、いつものブログチュートリアルにブックマークチュートリアルが追加されています。
ブックマークチュートリアルというのも追加されており、ブログチュートリアルと合わせて体験することで、より CakePHP3系 について詳しくなれそうです。
最後に
今回は、本当に触りの部分について今回は確認を兼ねての紹介を行いました。
次は、実際に CakePHP2 と CakePHP3 を使用してアプリケーションを作成した時の差異を確認していきたいと思います。