[CakePHP]MacにCakePHPの開発環境を構築

CakePHPの開発環境を構築しよう

PHPが好きです

最近まではFuelPHPが大好きでした

でもなんか、Fuelの人気が落ちてきているみたい、、、

じゃあ他のフレームワークも使ってみよう

ってことで、CakePHPを使って見るべく、Mac上にCakePHPの開発環境を構築します

そもそもCakePHPってなんですか!?

そもそもCakeってなんだよ、ケーキかよ、って方のために説明

CakePHP(ケイクピーエイチピー)とは、PHPで書かれたオープンソースWebアプリケーションフレームワークである。先行するRuby on Railsの概念の多くを取り入れており、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークと言われている。MITライセンスの元でフリーで配布されている。

引用元:wikipedia

もうこの説明の通り、PHPで書かれているOSSのWebアプリ開発用のフレームワークです

フルスタックな感じで、これでなんでも作れちゃいます

早速インストール

なにはともあれ、インストールします

インストールはとっても簡単

そう、Composerがあればね!!

ということで、Composerが使用できる環境が構築できていることが前提です

できていない方は先にComposerが使えるようにしてから出直してきてください

 

Composerをつかってセットアップします

プロジェクトを作成したいディレクトリに移動して、下記コマンドを実行してください
(your-app-nameは、作成するプロジェクトの名称です)

ちょっと時間がかかるので、トイレにでも行って休憩しましょう

$ composer create-project --prefer-dist cakephp/app your-app-name

あれ?エラーがでちゃった

Installing cakephp/app (3.4.2)
 - Installing cakephp/app (3.4.2)
 Loading from cache

Created project in cake-test
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

 Problem 1
 - cakephp/cakephp 3.4.7 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 - cakephp/cakephp 3.4.6 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 - cakephp/cakephp 3.4.5 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 - cakephp/cakephp 3.4.4 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 - cakephp/cakephp 3.4.3 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 - cakephp/cakephp 3.4.2 requires lib-icu >=4.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
 - cakephp/cakephp 3.4.1 requires lib-icu >=4.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
 - cakephp/cakephp 3.4.0 requires lib-icu >=4.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
 - Installation request for cakephp/cakephp 3.4.* -> satisfiable by cakephp/cakephp[3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7].

 To enable extensions, verify that they are enabled in those .ini files:
 - /usr/local/etc/php/5.6/php.ini
 - /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini
 You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

intlっていうextensionがないからダメよって言われてそう

Homebrewを使ってインストールしてみます

$ brew search intl
$ brew install php56-intl

php56にしてますが、これはMac上のPHPバージョンが「PHP 5.6」だからです
自分の環境に合わせて変えてみる必要がありますので注意です

intlがインストールできたら、再度CakePHPのプロジェクトを作成してみます

$ composer create-project --prefer-dist cakephp/app your-app-name

Installing cakephp/app (3.4.2)
 - Installing cakephp/app (3.4.2)
 Loading from cache

Created project in your-app-name
Loading composer repositories with package information
Updating dependencies (including require-dev)
 ・・・・・・・・・・・
Writing lock file
Generating autoload files
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
> App\Console\Installer::postInstall
Created `config/app.php` file 

いけたっぽいです

途中でパーミッションなんちゃらって聞かれるけど「Y」にしておけば間違いないです

動作確認

さて、動作確認してみましょう

PHPのビルトインサーバで確認してみます

$ cd your-app-name/webroot
$ php -S localhost:3000

Document root is /Users/user/Projects/your-app-name
Press Ctrl-C to quit. 

ブラウザで「http://localhost:3000」にアクセスしてみましょう

オー!!ちゃんと動いてる!!!

今日はここまで!!!