CakePHP4での開発環境をローカルに作った時の自分の作業メモです。
作成環境
OS:Windows 10
Xampp:Windows版7.4.8
CakePHP:4.1.1
Composer 1.10.9
Eclipse 2020-06 (4.16.0)
Xamppインストール
特に必要がなければデフォルトのc:\xamppでいいのではないかと。
という訳でそのあとは上記のパスにインストールした前提で記載します。
php.ini編集
後で「You must enable the intl extension to use CakePHP.」って怒られるので、
先にphpの設定を編集しておきます。
C:\xampp\php\php.ini
extension=intl
を下記に変更
extension=php_intl.dll
ドキュメントルート変更
xamppを使う場合のデフォルトルートは
C:\xampp\htdocs
変更する場合はApacheのhttpd.confを変更する。
画像のL252付近の下記二行をお好みに変更。
DocumentRoot "C:/workspace"
<Directory "C:/workspace">

Composerインストール
Composer先生ってJenkins先生と画風が似てますね…
ひとまず普通にインストールすればOKと思われます。
https://getcomposer.org/
CakePHPプロジェクト作成
コマンドプロンプトでプロジェクトを作成したい場所に移動します。
基本ドキュメントルートで作成するかなと思います。
cd c:\workspace
composer create-project --prefer-dist cakephp/app <アプリケーション名>
作成完了後、
http://localhost/<アプリケーション名>
にアクセスすると下記のページが出ればOKです。
データベース設定
この状態だと、まだMySQLの設定をしていないので
「CakePHP is NOT able to connect to the database.
Connection to Mysql could not be established: SQLSTATE[HY000] [1045] Access denied for user 'my_app'@'localhost' (using password: YES)」
というメッセージが出ているので、これを解消する。
XAMPPコンソールからMySQLのAdminを選択して管理コンソールを開く。
データベースとユーザーを作成する。
コンソールのGUIからも作成できるけどコマンドで作ったほうが早いかも。
(といいつつコンソールで作った…)
作成したらC:\workspace\belongings-app\config\app-local.phpを編集
Datasourcesの下階層のusername、password、databaseの内容を編集します。
これでエラーは解消されます。
Eclipseでのデバッグ設定
Eclipseのインストール及びPHP Development Toolsの導入を行います。
https://www.eclipse.org/downloads/
file>import>Existing Composer Project
で上記で作成したプロジェクトをインポートする。
コンテキストメニューのDebug Asか上のバグアイコンから「Debug Configration」を開く
Name:任意
File:<アプリケーション名>/webroot/index.php
Debuggerタブに切り替えて「Configure」ボタンを押下する。
Debugger:Xdebug
Port:お好み
「Finish」押下後、Debuugerタブの設定確認
Break at First Line:チェック外しておく(どちらでもよいが…)
ここで「Debug」を押下すると、Eclipseの内部ブラウザで表示される
外部ブラウザで表示したい場合
Window > Preferences
General>Web Browser
図のようにUser External web browserを選択して、下で好みのブラウザを選択する。
※追記
この状態だとデバッグ実行がうまくできないため下記追加
適当なページでphpinfo()を出力し、内容を下記にコピー
https://xdebug.org/wizard
おすすめされたxdebugを入れておすすめされた設定をphp.iniに追加
私の場合下記を追加
zend_extension = C:\xampp\php\ext\php_xdebug-2.9.6-7.4-vc15-x86_64.dll
xdebug.remote_enable = 1
xdebug.remote_host = "localhost"
xdebug.remote_port="8888"
デバッグ実行時のポートを上記に合わせる。
これでデバッグ実行が可能になる。