xamppのメンテナンスが2023.11にPHP8.2.12対応版のリリース以降止まっている模様。
PHP8.2.12にはセキュリティホールがあったり、xamppのmysqlがクラッシュしやすいのでMAMPに乗換えを検討。
ブラウザのSandBox内で動くLAMP環境。環境が保存できるなら授業で活用できるか試すのもよさそう。
MAMPにWindows版がある。PROは有償だがMAMP自体は無償利用可能。
MAMPのMySQLはMariaDBではなく、MySQL5.7.24 MySQL Community Server (GPL)だった。これは2018頃のものなので古すぎる。
PHPは8.3.1と8.2.24が切り替えできるようになっている。これも2023頃のもの。少し古い。
phpMyAdminは 5.1.2 で2022のもの。少し古い。
テーブルの新規作成で大量に警告が出て煩わしい。Useingがuseに変わって非推奨と。このphpMyAdminはPHP7のコードなのかな?
xamppは2023で更新が止まっている
PHP 8.2.12, 8.1.25 or 8.0.30
Apache 2.4.58
MariaDB 10.4.32
phpMyAdmin 5.2.1
https://qiita.com/katzueno/items/e735950c7440f232ef27
MariaDB MySQL
5.1 5.1
5.2 5.1
5.3 5.1
5.5 5.5
10.0-10.1 5.6
10.2~3 5.7 (*)
10.4~11 8.0 (*)
MAMP + CakePHPの導入メモ
MAMPをインストールしてもPHPのパスが通っていないので環境変数に登録する。
c:\mamp\bin\php\php8.3.1
の様に複数バージョンに分かれている。MAMPのコンパネからPreferencesでPHPのバージョンを切り替え可能。
php.iniはphp.exeと同じ場所には用意されていない。
c:\mamp\conf\php8.3.1
にphp.iniが用意されている。これを書き換えてもコマンドプロンプトから起動するphpには設定が反映されない。MAMPのWebServerが使用するPHPの設定なのかも。
コマンドプロンプトのほうのphpの設定にはconfからコピーしたphp.iniをphp.exeと同じ場所に置くと機能した。
MAMPにはComposerが入っていない。ネットからDLしてインストールする。Composerのサイト
Composerのインストールには何パターンかあるので注意。
Windows Installer おそらくcomposerが直接実行可能なコマンドとしてインストールされる
Command-line installation phpのスクリプトとしてcomposerがダウンロードされる。
ダウンロード後にLinuxではcomposer.pharをcomposerとして名前を付け替えてbinに移動してcomposerでスクリプトを起動する導入手順があるが、
Windowsで実行するには
php composer.phar 引数
とする必要がある。
cakephp の bake でカスタムテーマ(カスタムテンプレート)を用意する準備
bin\cake bake plugin プラグイン名
でComposerのイニシャライザがpluginをPHP環境に組み込む準備をする。
ところが、エラーでうまくいかない。
回避手順
https://github.com/cakephp/bake/blob/3.x/src/Command/PluginCommand.php
エラーを起こしているスクリプトを改造する。
// $command = 'php ' . escapeshellarg($composer) . ' dump-autoload';
$command = 'php ..\composer.phar dump-autoload';
環境にインストールされたcomposerを見つけられなくてコメントアウトした行でエラーになる。
直接composer.pharスクリプトを参照するコードに書き換えた。
2025.7.24 上記手順でスクリプトの改造なしでC107情報実習室の教卓PCではPluginのBakeができた。composer.pharは用意していないPCなのに。
Bake テーマの作成 2025.7.24 日本語版のテキストが古い仕様で作成できない。新仕様に修正したものをgithubでpull request中。
英語版の資料を元に作業すれば Bakeで生成されるCRUDのScaffoldのテーマを設定できる。
先にテーマを作成する必要があるのかも?
テーマ これはtemplateにテーマ切り替えの機能用かな。 Pluginにテーマを設定できる
Bakeテーマの利用例
SQLの集計や条件指定ビューをBakeするとCRUDのテンプレートが一そろい生成される。
ところが、ビューにはレコードの追加や、削除、修正、詳細表示などの通常のテーブルの機能は不要で一覧表示(index)だけがあればよい。
不要なActionなどが生成された例
不要なActionや新規レコードボタンを削除した例
bakeテンプレートのテーマを作成して必要に応じてテーマを切り替えられるようにする。
ViewThemeというテーマ名(自分で決めてよい)でプラグインをbakeで作成する。
bin\cake bake plugin ViewTheme
CakePHPのアプリケーションフォルダの以下の階層に必要なtwigファイルを置く。
元となるindex.twigなどはvender/cakephp/bake/templates/bakeからコピーすればよい。
不要なコードの削除や不足コードをindex.twigに追加する。生成AIに指示して修正させてもよい。
bakeでMVCに応じて(以下はtemplateの場合)テーマをオプションで指定してデフォルトから切り替えられるようになる。
bin\cake bake template recent_rentals_view --theme ViewTheme
2026年度に向けたメモ
上述のBakeテーマをView用に作成しておいて配布用cmsのcakephpアプリに入れておく。
実習では第14回のViewの作成の際に、表示専用テーマとしてBakeでテーマをオプション指定する。
その他
intl の有効化 や app_localの設定などだれがやっても同じになる部分は最初から設定した環境を用意してもよいかもしれない。
intl は php.ini の設定。mamp xampp dockerなどで予め設定しておく。