今回はWEBアプリケーション開発も見据えてcakephpを導入する手順を紹介していきます。
備忘録にまとめたので参考にしてみてください。
こんな方におすすめ
- MAMP環境下でcomposerを使ってcakephpを導入したい方
- 各用語が詳しく知りたい方
【環境】
PC:Mac
PHP: 7.3.9
(PHPはMAMP導入の際に内包されているものを使う)
MYSQL:5.7.26
(MySQLもはMAMP導入の際に内包されているものを使う)
cakephp 4.0.4
(プロジェクト名/vendor/cakephp/cakephp/VERSION.txtで確認可能)
MAMPをインストール
公式サイトでインストール
FreeDownloadでOK
composer導入
#インストール curl -sS https://getcomposer.org/installer | php #/usr/local/bin/composerに移動させる sudo mv composer.phar /usr/local/bin/
#バージョン確認
composer -V
バージョン確認で
Could not open input file: composer-setup.php
のエラーが出てきて
うまくいかないなら
alias composer='/usr/local/bin/composer'
を実行してみてください。
cakephpをインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
を実行してください。
ちなみに
Installer corrupt
と出る時はバージョンが古い可能性があります。
以下のサイトで常に最新情報が公開されているのでうまくいかない時は参考にしてください。
https://getcomposer.org/download/
新規プロジェクトを作る
新規PHPプロジェクトを作りたいフォルダに移動。
以下のコマンドを実行
composer create-project --prefer-dist cakephp/app プロジェクト名
ここでおそらく
the requested PHP extension intl is missing from your system.
というエラーが出てきます。これはMAMPでインストールされたPHPを見てくれていないからですね。
MAMPのPreferencesからPHPのバージョンを確認しましょう。
7.3.9ということでしたのでMAMPのPHPにこちらのバージョンでパスを通していきます。
bash_profileを作成
touch .bash_profile
vimで編集
vim ~/.bash_profile
以下を貼り付けてZZで保存
export PATH=/Applications/MAMP/bin/php/php7.3.9/bin:$PATH
反映
source ~/.bash_profile
次のコマンドをうってみてください
which php
こんな感じで表示されればOK
/Applications/MAMP/bin/php/php7.3.9/bin/php
もう一回
composer create-project --prefer-dist cakephp/app プロジェクト名
これでうまくいくはず。
WebServerを変更して動作確認
今作ったcakephpのプロジェクトとMAMPをつなげます。
Selectからwebルート選択。
angelにしようと思ったのに名前間違えてた
あとはhttp://localhost:8888/にアクセス。
以下のようになっていればOK。
わ~いできた!てか4.0.4って眩しいな。。最新。。
MySQLのパスを通す
vimで編集。iでインサートモード
vim ~/.bash_profile
以下を貼り付けて保存。esc→:w→:qでOK
export PATH=$PATH:/Applications/MAMP/Library/bin
反映
source ~/.bash_profile
workbenchでconnectionを編集
これで入れたらOKです。ついでにスキーマ作成からcakephpの接続までしちゃいましょう。
以下クエリ実行。
CREATE SCHEMA `cake_cms` ;
USE cake_cms; 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 articles ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(255) NOT NULL, slug VARCHAR(191) NOT NULL, body TEXT, published BOOLEAN DEFAULT FALSE, created DATETIME, modified DATETIME, UNIQUE KEY (slug), FOREIGN KEY user_key (user_id) REFERENCES users(id) ) CHARSET=utf8mb4; CREATE TABLE tags ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(191), created DATETIME, modified DATETIME, UNIQUE KEY (title) ) CHARSET=utf8mb4; CREATE TABLE articles_tags ( article_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY (article_id, tag_id), FOREIGN KEY tag_key(tag_id) REFERENCES tags(id), FOREIGN KEY article_key(article_id) REFERENCES articles(id) ); INSERT INTO users (email, password, created, modified) VALUES ('cakephp@example.com', 'secret', NOW(), NOW()); INSERT INTO articles (user_id, title, slug, body, published, created, modified) VALUES (1, 'First Post', 'first-post', 'This is the first post.', 1, now(), now());
cakephp側ではapp_local.phpに以下の変更を加える。
いえーい!接続もできたぜ。
the requested PHP extension intl is missing from your system.
が出てきたときはお?ってなりましたがMAMPのPHP見に行けば解決する話でしたね。
それよりvimの操作がまだまだだなと感じました。
今回はとりあえず環境構築&動かす準備をすることを第一にしたので(数時間でぱぱっとした)今後ベストな改善策があれば随時追加します。
cakephp4のドキュメントもしっかり読み込まないとな。
僕も通ったプログラミングスクールはコチラ