Friction River Software

  • お問い合わせ

CakePHP5入門【CakePHP5基礎編①】プロジェクト作成

B美

さて、今回からWebフレームワークの話をしていくよー

A子

Webは分かるけど、フレームワークって何なのよ

C菜

「枠組み」とか「骨組み」って意味だと思うです~

B美

C菜正解!

家を建てるためのある程度の骨組み(フレームワーク)を用意するから、細かいところはそれぞれ自分で決めてね
…ってイメージかな?

A子

Webアプリケーションを簡単に作れる…ってこと?

B美

その考え方で間違いないわ

何もないところに自分で一から作り上げていっても良いんだけど(いわゆる「フルスクラッチ」)、そんな労力をかけたとしても出来上がりはフレームワークを使ったもののほうが優れてたりするのよ

だったら、最初から素直にWebフレームワークを利用すべきよね?

C菜

簡単に作れるなら大歓迎です~

で、どういうものがあるんですか~?

B美

プログラム言語ごとに存在するんだけど、有名どころとしてはこんな感じかな

プログラム言語フレームワーク名
PHPピーエイチピーLaravelララベル
CakePHPケイクピーエイチピー
Symfonyシンフォニー
FuelPHPフューエルピーエイチピー
PythonパイソンDjangoジャンゴ
Flaskフラスク
RubyルビーRuby on Railsレイルズ
Sinatraシナトラ
JavaジャバSpringスプリング Framework
Playプレイ Framework
JSFジェイエスエフ
Strutsストラッツ

あ、これで全てじゃないわよ(ほかにもたくさん有ります)

A子

多すぎて選べないよ(苦笑)

B美

それぞれに特徴があるんだけど、人気なのは「Laravelララベル」「Djangoジャンゴ」「Railsレイルズ」「Springスプリング」かな

んで、今までPHP言語を学んできたわけだから、当然PHPのフレームワークを使います

C菜

ということは「Laravelララベル」でしょうか~?

B美

いいえ
私の個人的な好き嫌いを言わせてもらえば、「Laravelララベル」って嫌いなのよ

なので「CakePHPケイクピーエイチピー」をやります!

A子

好き嫌いかよ(苦笑)

B美

多分だけど、Cakeケイクが一番修得しやすいと思うわよ
(人によって異論もあるかもしれないけど…)

それじゃ、「MATE端末」を開いて、こう入力してね

cd html[Enter]
composer create-project --prefer-dist cakephp/app testapp[Enter]

testapp」の部分がプロジェクト名になってて、この名前を使ってブラウザからアクセスすることになるの
(ここではサンプルということで、適当な名前にしています)

A子

結構時間がかかってるね…

あ、止まったよ

B美

ここでは半角大文字の「Y」を入力してから、[Enter]キーを押してね
(単に[Enter]キーだけでも良いけど…)

B美

これでインストールが完了したわ

さて、それじゃブラウザで確認してみましょうか
URLには「localhost/testapp」と打ち込んでね


A子

あれ?左端が赤いところがあるけど、これってエラー?

B美

エラーってわけじゃなくて、単なる警告かな

最初のは、「php.ini」の中の「zend.assertions」を「1」に変えてね…ってことだし
その下はデータベースの設定が間違ってる…って意味ね
(そもそもまだ設定していないんだけど…)

C菜

php.ini」って、開発環境設定編のときに「PHPの設定は省略」…って言ってたやつですね~?

B美

そう、それよ
まずは「MATE端末」を開いてからrootになってね

su -[Enter]
nano /etc/php/8.2/apache2/php.ini[Enter]

で、「php.ini」を編集しましょう

[Ctrl]+[w]のあとに「assertions」と入力して[Enter]キーを押してね
(目で探すのは大変なので、キーワードで検索するってこと)



B美

デフォルト値が「-1」になってるから、それを「1」に変更してね

あと、ついでだから「memory_limit」と「post_max_size」と「upload_max_filesize」についても変更しておきましょう
さっきと同じく[Ctrl]+[w]で検索するか、スクロールして自力で見つけ出してね



A子

それぞれの名称から何となくは分かるんだけど…

upload_max_filesize」はアップロードできるファイルの最大サイズってことだよね?

C菜

post_max_size」との違いが分からないです~

B美

A子は正解

正確には、ファイル一つの最大サイズ

C菜

あ、分かりました~

「post_max_size」はPOST送信できる最大サイズなので、複数のファイルやその他のPOSTパラメータの合計ってことですね~?

B美

大正解!
つまり、現状では一つ2MBまでのファイルを一度に8MBを上限としてアップできるってわけ

あと、それを処理するメモリの最大値は、128MBですよ…ってのが「memory_limit」の設定ね

A子

ということは…

upload_max_filesize」よりも「post_max_size」を大きくして、さらにそれよりも「memory_limit」を大きくすれば良いんだ

B美

その通り

そうねぇ
upload_max_filesize」を10MB、「post_max_size」を128MB、「memory_limit」は512MBにしましょう
(あ、設定値としては「B」の記述は不要だからね)

[Ctrl]+[o] → [Enter] → [Ctrl]+[x]
で、上書き保存してから終了よ

最後に、設定変更を反映させます
systemctl restart apache2[Enter]

A子

ブラウザを起動して「localhost/info.php」を見てみたよ

きちんと設定した値になってるね


C菜

ついでに、さっきの「localhost/testapp」も見てみるです~

A子

お、赤いのが一つ消えたね

あとはデータベース設定か…

B美

そうねぇ、先にそれをやっちゃいましょうか

ホームディレクトリの中の「html」から「testapp」→「config」とたどってね





B美

そうしたら「app_local.php」というファイルの上で右クリックして、「Plumaで開く」を選んでね
(いつもの「L3afpadリーフパッド」じゃない理由は、行番号表示が欲しいから)



B美

このファイルの47行目、48行目、50行目を修正してね
(ただし、CakePHPのバージョンが変わると、行番号も変わるかもしれません…あくまでも目安です)

開発環境構築編の4回目でデータベース設定をしたよね?
あれを入力しましょう

B美

保存したら、もう一度ブラウザで「localhost/testapp」を見てみてね
(ちなみに、パスワードは黒で塗りつぶして隠してます)

C菜

赤いのが全部消えました~

A子

おぉ、これで完成?

B美

いいえ、まだよ(苦笑)
あ、でも面倒くさいのは最初だけだから…

んじゃ、次は「app.php」というファイルを開いてね

52行目の「en_US」を「ja_JP」に変更して、53行目の「UTC」を「Asia/Tokyo」に変更するの
さらに285行目の「UTC」も同様に「Asia/Tokyo」に変更してね


B美

これでシステムの標準言語が日本語になって、時計も日本(東京)に設定されたってわけ

あとは「bootstrap.php」も変更したいところだけど、それはおいおい…

A子

今度こそ完成?

B美

完成も何も、やっとスタートラインに立ったってだけよ(苦笑)

長くなっちゃったから今回はここまでね
次回は「オブジェクト指向」について説明していきます