search
LoginSignup
37

More than 5 years have passed since last update.

posted at

updated at

CakePHP2 と CakePHP3 をセットアップするまでの差異について

こんにちは @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 を使用してアプリケーションを作成した時の差異を確認していきたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
37