PHP
CakePHP3.2
XAMPP for Windows 5.6.11
いつの間にか、CakePHPも3.2ですね!!
必要なPHPのバージョンも、PHP 5.5.9となり、ぐっと大人っぽくなったCakeちゃん、という感があります。
さて、今回テスト的にXAMPPで動作させたかったのですが、前もってググると、先人たちがかなり苦労されたご様子で(^^; なんか、敷居高いのかなー いやだなーと思っていたら、XAMPPのバージョンも新しかったおかげか、そこまで苦労しなかったので、とりあえず手順を書いておきます。
本家ドキュメントはこちら。
http://book.cakephp.org/3.0/en/installation.html#
上記をかいつまんで、Windowsでちゃちゃっと動かしたい人向けに書きます。
最終的には、CakePHPが配布している、サンプルアプリ、ブックマーク
①まずは、composerをダウンロードして、インストールします。
下記のサイトの中ほどにある、「Download and run Composer-Setup.exe」 とある、Composer-Setup.exeをクリックしてダウンロードです。
https://getcomposer.org/download/
普通にインストールすればOKです。
で、コマンドプロンプトを立ち上げて、composer と入力してみましょう。
COMPOSERというAA的なものが表示されれば、無事動いています!やった!!
ってか、昔Linuxサーバーにcomposer入れたときは、けっこう難しかったんですけどね~。こんなにあっさりできると、癒されますね!!(゜∀゜)
②次は、コマンドプロンプトでブックマークアプリを動かしたいディレクトリにcdで移動します。
XAMPPで動かす、というのが目標なので、XAMPPの中に作りましょう。
C:\xampp2\htdocs\ひみつ\caketest の中に作ることにします。
んで、
composer create-project --prefer-dist cakephp/app bookmarker
とやります。
すると、ややっ 途中でエラーで止まっちゃいます(つД`)
Problem 1 - cakephp/cakephp 3.2.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.1 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.0-RC1 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.0 requires ext-intl * -> the requested PHP extension intl is missing from your system. - Installation request for cakephp/cakephp ~3.2 -> satisfiable by cakephp/cakephp[3.2.0, 3.2.0-RC1, 3.2.1, 3.2.x-dev]. To enable extensions, verify that they are enabled in those .ini files: - C:\xampp2\php\php.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
げげっ
嫌な感じですね。
エラーメッセージ通り、php.iniにある、
extension=php_intl.dll
の先頭の#を外しても、動作しません。
調べたところ、下記に解決方法が。
http://stackoverflow.com/questions/26285280/cakephp-3-0-installation-intl-extension-missing-from-system
xamp\phpフォルダの中にある、icで始まるファイルを、全部コピーして、\xampp\apache\binにペーストする、そうです。
んで、Apacheをリスタートです。
ちなみに、私の環境では、コピペするときに置き換えますか?って出てきてたんで、単にエスケープを外した後に、Aparche再起動してなかったのが原因かも…。
Apacheをリスタートして、phpinfo.phpを見ると、intlの行が増えています!
パチパチ。
で、コマンドプロンプトで、もう一度、さっきの
composer create-project --prefer-dist cakephp/app bookmarker
をやります。
今度は、正常に終わったようです!
下記のようなフォルダの中に、いろいろと入っているはずです!
C:\xampp2\htdocs\ひみつ\caketest\bookmarker
③ついに、CakePHPを始動させます…
コマンドプロンプトで、
C:\xampp2\htdocs\ひみつ\caketest\bookmarker
に移動し、
bin\cake server
とやります。
ふぉっ ついに動いた!
下記にブラウザでアクセスします。
http://localhost:8765/
CakePHPの画面が出ますね!
④DBとの接続を作ってみます。
cake_bookmarksというDBを作って、下記のSQLで、テーブルを作っておきます。
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created DATETIME, modified DATETIME ); CREATE TABLE bookmarks ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(50), description TEXT, url TEXT, created DATETIME, modified DATETIME, FOREIGN KEY user_key (user_id) REFERENCES users(id) ); CREATE TABLE tags ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), created DATETIME, modified DATETIME, UNIQUE KEY (title) ); CREATE TABLE bookmarks_tags ( bookmark_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY (bookmark_id, tag_id), FOREIGN KEY tag_key(tag_id) REFERENCES tags(id), FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id) );
bookmarkerの中にある、下記のファイルを開いて、
config/app.php
の
return [ // More configuration above. 'Datasources' => [ 'default' => [ 'className' => 'Cake\Database\Connection', …
とあるあたりを自分のDBに合わせて変更します。
⑤次は、楽しい楽しいBakeの時間ですね!
私は、この機能が大好きです!
コマンドプロンプトで、次のを一個ずつ実行します。
bin\cake bake all users
bin\cake bake all bookmarks
bin\cake bake all tags
プログラムがじゃんじゃんできてきますね!⊂(^-^)⊃
⑥面倒ですが、またサーバーを再起動させます。
bin\cake server
とやります。
下記に、ブラウザから接続します。
http://localhost:8765/bookmarks/add
おーっ できてる!!
本当の開発はここからですね!
以上で終了です。