Lesson 4

CakePHPのプロジェクト

Lesson 4 Chapter 1
プロジェクトの作成

Lesson4では、CakePHPのプロジェクトを作成し、データベースとの接続を済ませ、開発を始めるための準備を整えていきます。

最初に「composer」を使ってプロジェクトの作成を行います。Lesson1で「Composer」については触れましたが、改めて簡単に説明をすると、「パッケージ」と呼ばれる様々な機能を配布可能にまとめたファイルをダウンロードする際に、その依存性やバージョンの更新などを自動で解決してくれるのが「パッケージ管理システム」であり、PHPにおける「パッケージ管理システム」が「Composer」でした。

そして、CakePHPを使用するにはcomposerを使用することが推奨されており、依存性などを考える必要なく、コマンドを叩くだけで簡単にCakePHPをダウンロードし、プロジェクトを作成することができます。

早速、composerを使ってCakePHPプロジェクトを作成する手順を見ていきましょう。

Compopserによる作成

コマンドプロンプト、もしくはWindows Power Shellを開きCakephpのプロジェクトフォルダを設置したい場所に移動します。今回はわかりやすいようにデスクトップ上に「cake_app」というフォルダを作成し、cake_appに移動します。

コマンドライン上でのディレクトリ間の移動方法ですが、まずは以下の2つのコマンドを覚えておきましょう。

  • dir
  • cd

dirは現在のフォルダ内を見ることができます。cdは続けてパスを入力することでフォルダ間を移動します。次の画像では実際にdirコマンドでフォルダ内を確認し、その後に「cd Desctop\cake_app」と打ち、cake_appフォルダ内に移動しています。

4_1_1

dir

cd Desktop\cake_app

また、一つ上の層に移動したい場合には

cd ..
とcdコマンドでピリオド2つを打つことで移動できます。\で区切り「cd ..\..」としていくことで、2つ以上の上の層へ移動することもできます。

無事にcake_appフォルダに移動出来ましたら、プロジェクト作成のためのコマンドを打ちます。

composer self-update && composer create-project --prefer-dist cakephp/app:4.* todo4
最後の「todo4」はプロジェクトの名前で任意のものにします。今回はCakePHP4.xでtodoアプリを作る予定なのでtodo4にしています。

プロジェクト作成のコマンドを打ってみると、恐らくいくつかのエラーが出てくるかと思います。

4_1_2

上の画像では、intlというPHPの拡張モジュールが使えない状態なのでphp.iniファイルを編集して下さいとった内容のエラーが出てしまっています。環境構築の方法などによって出てくるエラーも異なってきます。

まずは指示に従って、php.iniファイルを開いてみましょう。インストールしたPHPのフォルダを開いてください。

注意してほしいこと

php.iniファイルを編集する際には、必ず事前にファイルのコピーを作成してわかりやすい場所に置いておくようにしましょう。設定ファイルを元にもどせなくなるとPHPが正常に動かなくなる可能性があります。

4_1_3

php.iniファイルをVScodeエディタで開いたら、「Ctrl+f」で検索窓を開き「intl」で検索をします。いくつか引っ掛かりますが、「extention=intl」を探します。

見つけたら、左についている「;」を消し有効の状態にします。また「extension=mbstring」についても同様に無効の状態であれば、有効にしておきましょう。

4_1_4

もう一つ、PHP8.x以降のインストールの場合にはzipについても有効化する必要がある場合があるので確認しておきましょう。「extension=zip」を検索し無効の状態であれば有効化しておきます。

4_1_5

編集を終えたあとは忘れずに保存をしておきましょう。再度プロジェクト作成のコマンドを打つのですが、その前にcake_appフォルダの中を見てみて下さい。

4_1_6

エラーが出て、プロジェクト作成に失敗したもののtodo4のフォルダは作成されています。このままだと正常にプロジェクトが作成されないので、事前に削除しておきましょう。

削除が出来たら、改めてコマンドライン上でプロジェクト作成のコマンドを打ちます。前半の「composer self-update」部分は自動的にコンポーザーのバージョンを確認しアップデートするものなので今回は省いてしまってもかまいません。

composer self-update && composer create-project --prefer-dist cakephp/app:4.* todo4

少し時間がかかると思いますが、最後に「Set Folder Permissions ? (Default to Y) [Y,n]?」と聞かれるのでyを入力してエンターを押します。

4_1_7

コマンドライン上かエクスプローラー、どちらでも良いのでtodo4フォルダが正常に作られていることを確認しましょう。以上でコンポーザーでのプロジェクト作成完了となります。

フォルダ構成

早速、作成したtodo4フォルダを開いて、中を見てみましょう。複数のフォルダとファイルが確認できるかと思います。基本的には.htaccess以外のファイル群について触ることはあまりないので、ここでは主要なフォルダを中心に見ていきます。

4_1_8

bin

実行可能なcakeコマンドのプログラムが置かれています。よく使うコマンドとしては、bakeコマンドや、キャッシュを消すコマンドなどがあります。

config

configフォルダにはアプリケーション全体にまたがる設定をするものが多く置かれています。例としていくつかあげると

  • データベースの設定
  • 定数の定義
  • ルーティング(パスに対応するページを決める)

などがあります。次のチャプターで、configフォルダ内にある「app_local.php」を編集してデータベースの設定を行います。

src

srcフォルダは開発中にもっともよく使うフォルダとなります。

4_1_9

srcフォルダの中はこのようにMVCとconsole、デフォルトのApplication.phpが入っています。

特によく使うことになるのがContorollerとModelフォルダで、ここにコントローラクラスやモデルクラスを定義したファイルなどを作成していくことになります。

templates

HTMLで画面を表示するためのビューテンプレートが配置されます。作成したコントローラとそのアクションの数だけフォルダとファイルを作成していくことになります。

plugins

追加機能としてのプラグインを格納します。

logs

生成されたlogファイルが入ります。

tests

各種テストを行うためのプログラムを入れます

tmp

CakePHPが処理を行う際に生じるデータを一時的にいれておきます。

vendor

依存ライブラリなどを管理します。コンポーザーが自動で更新などするため触ることはまずありません。

webroot

htmlやcss、index.phpなどユーザー側に公開するファイルと、WEBサーバー用の.htaccessなどを置きます。

以上、フォルダ構成を見てきましたが、事前にしっかりと覚えるというより、使いながらそれぞれの役割を理解していくのが良いでしょう。

内臓サーバの起動

次にCakephpに供えられている内臓サーバを立ち上げて、実際にCakePHPの画面を表示させてみましょう。

コマンドライン上でtodo4フォルダにcdコマンドで移動します。移動できたら、下記のコマンドで内臓サーバーを起動させましょう。

bin\cake server

4_1_10

コマンドによってサーバが立ち上がり、todo4のwebrootを参照していることがわかります。
また、サーバへのアクセスは「http://localhost:8765/」を指定すれば良いこともわかります。

記載の通り、ブラウザを立ち上げてhttp://localhost:8765/にアクセスしてみましょう。CakePHPのデフォルトページが表示されます。

4_1_11

ここでは、左下のDatabaseのみ赤いマークがついていることを確認してください。Databaseは次のチャプターで設定するので、現時点では赤マークでOKです。逆にそれ以外の箇所で赤マークがついている場合は問題ありとなるので、内容を確認しエラーを解消しておきましょう。

コマンドライン上では、CakePHPのサーバが立ち上がったままだと思います。終了させたい場合には「Ctrl+c」を押すとバッジを終了するか聞かれるので、Yで終了します。

Lesson 4 Chapter 2
データベースの作成

MySQLにログインする

CakePHPのプロジェクトを進めるため、次に必要なのがデータベースとなります。

このChapterではコマンドライン上でMySQLを操作していきます。MySQLインストール時の確認で使ったものと同様のコマンドで早速ログインしてみましょう。

ただ、CakePHPの内臓サーバーを立ち上げた画面のままの場合、別画面を開かなければ操作が出来ないので注意してください。コマンドプロンプトではなく、Windows Power Shellであればタブで画面を管理できるため、使ったことがなければ試してみてください。

mysql -u root -p

インストール時に設定したパスワードを入力してMySQLへのログインは完了です。

データベースの作成

コマンドライン上で「mysql>」の表示が出ていればMySQLにログイン出来ているので、まずはプロジェクトで使用するデータベースを作成しましょう。名前は「todo」とします。

CREATE DATABASE todo;

完了出来たら、作成したデータベースを確認してみましょう。

SHOW DATABASES;

4_2_1

Databaseの一覧に「todo」が作られていれば成功です。

テーブルの作成

作成した todo データベース内にテーブルを作成します。

まず最初に、使用するデータベースを宣言する必要があります。

use todo;

「Database changed」と表示されればOKです。次にテーブルを作成するSQL文を入力します。以下をコピー&ペーストで大丈夫です。(クリエイト文とインサート文の2つに分かれているため、エンターは2回押すことになります。)

CREATE TABLE tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
content text NOT NULL,
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
modified DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) CHARSET=utf8mb4;
INSERT INTO tasks (content, created, modified)VALUES 
('CakePHPの環境構築を行う', NOW(), NOW()),
('データベース接続を完了する', NOW(), NOW());

4_2_2

作成したテーブルとその中身を確認してみましょう。

show tables;
select * from tasks;

4_2_3

上記のように確認できれば完了です。

Lesson 4 Chapter 3
データベースへの接続

接続設定

データベース側の準備が出来たので、CakePHPとDBの接続を行いましょう。

todo4フォルダの中にあるconfigフォルダを開きます。「app_local.php」を見つけてエディタで開きましょう。

4_3_1

注意してほしいこと

CakePHP4.xよりapp.php の内容を app_local.php が上書きして参照するようになりました。

ファイルを開いたら、 Datasources で検索をかけてください。Datasources=>[Default=>[]の内容のうち、3箇所を書き換えます。

  • username→root
  • password→設定したパスワード
  • database→todo

4_3_2

半角スペースが入っていないかなどに気を付けてください。保存をして完了です。

接続確認

内臓サーバを起動させている状態で http://localhost:8765/にアクセスしましょう。内臓サーバを切ってしまっている場合は、再度立ち上げておきます。

bin\cake server

前回には赤マークだったDatabaseの部分が緑のマークに変わっていれば接続成功です。

4_3_3

緑にならない場合は、再度app_local.phpでの入力にミスがないか確認のうえ、内臓サーバを立ち上げなおしてみて下さい。

以上でプロジェクト作成の Lesson 終了です。