Windows環境の XAMPPを利用して CakePHPの開発する際の注意点
2024/06/21
Windowsは大文字小文字を区別しないのでWebシステムの開発の際は注意が必要
Windowsは、昔からアルファベットの大文字と小文字を区別しません。
(実は、Windowsはすべて大文字として管理しています。)
そのため、Windows上に構築した XAMPPで Webシステムを開発する際は、大文字と小文字の違いをしっかり意識して構築しないと、いざ、Linuxベースの Webサーバに移動させたときにエラーが出て動かない、ということが発生します。
「Windows環境の XAMPPを利用して CakePHPの開発する際の注意点」と書きましたが、XAMPPが悪いのではなく、CakePHPが悪いわけでもなく、Windowsの大文字小文字問題と言えます。
XAMPP環境で CakePHP4を利用したシステム開発を行う際の注意点
Windowsベースに XAMPP環境を構築して、CakePHP4を利用したシステム開発をする際の、具体的に注意すべき点について事例を挙げて解説していきます。
CakePHP4「/templates/plugin」フォルダの「p」は小文字が正解
「CakePHP4のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説」の記事で書いていますが、プラグインで利用するテンプレートファイルを「templates」に設置する際、「plugin」フォルダの「p」は小文字が正解です。
ココが大文字の「Plugin」となっている場合は、Linuxベースの Webサーバに乗せると、エラーが発生したり、動いているように見えてもプラグインの処理が実行されない不具合が発生します。(Windowsベースの XAMPP環境ではエラーなく動作します。)
ここで紛らわしいのは、CakePHP3の時の「Plugin」の「P」は大文字だからです。
さらに、CakePHP3の時のテンプレートファイルの置き場所は「/src/Template/」で、「Template」の「T」も大文字が正解なのです。
「CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説」も確認してください。
ちなみに、CakePHP3の「Template」は単数形ですが、CakePHP4の「templates」は複数形、といった違いがあり、CakePHP3の記事を参照しながらプログラムを組むと、リリースの時に思わぬ不具合に遭遇することになるで注意が必要です。
Helperを「CommonHelper.php」として作った場合の「C」は大文字
例えば、テンプレートで使用する共通処理を「/src/View/Helper/CommonHelper.php」として作成したとします。
この場合、「CommonHelper.php」の中にある「sample」というアクションを呼び出す場合は下記のようなコードになります。
$this->Common->sample("名前",$name);
この際、「Common」の「C」は大文字にする必要があるのですが、「c」が小文字の場合は
Helper class commonHelper could not be found. in /home/...
というエラーメッセージが表示されます。
(Windowsベースの XAMPP環境ではエラーなく動作します。)
これは、「/src/Controller/Component/CommonComponent.php」にコンポーネントを作成した場合も同じで、
$this->Common->sample($name);
のようになり、「C」は大文字にする必要があります。
Helperやコンポーネントの呼び出しの Class名はそもそも大文字から始まりますので、これを間違えることは少ないとは思いますが、Windowsベースの XAMPP環境ではエラーなく動作するため、注意が必要です。
WindowsベースのXAMPP環境は大文字小文字の違いを注意して開発をするべし
Windowsベースの XAMPP環境は、ローカルでプログラムを構築する際はすごく気軽に利用できる環境です。
そのため、個人でシステムを開発する際は有効な環境になりえますが、ここで紹介したように、大文字小文字の区別は少し甘い処理のため、より厳密な Linuxベースの Webサーバに移動させたときに不具合が発生する可能性がある、ということを頭の片隅に入れて開発をする必要があると思いますね。
CakePHP4の関連記事
CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説CakePHP4、CakePHP5の「warning: DebugKit is disabling...」の対処方法
MySQL+CakePHPのdate型、datetime型項目は「2999-12-31」までしか扱えない
CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4から外部のデータベースにアクセスする方法解説
CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
その他の「CakePHP4」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3のForm Helperの使い方のまとめ
CakePHP3になりフォームヘルパーの使い方も大きく変わりましたので、使い方をまとめました。基本的な使い方からプラスアルファの便利な使い方まで紹介。
-
-
CakePHP3、CakePHP4のdatetime型カラムの日時の扱い。秒まで表示する方法
CakePHP3の日時カラムで秒まで扱う場合はdate()、strtotime()関数ではうまくいかない。CakePHP3であらかじめ用意された「i18nFormat()」を使用する。
-
-
Google Analytics APIを CakePHP3で動かしてレポートデータを取得する方法の解説
CakePHP3で Google Analytics APIからレポートデータを取得する処理の解説。PHPのサンプルソースをCakePHP3で動くように改造。加えて、ディメンションやメトリックスを条件に設定する方法なども。
-
-
CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法
CakePHPで「CakeDC/Users」などルーティングを行うプラグインを利用するときに、favicon.icoやapple-touch-icon-144-precomposed.pngがNotFoundエラーになることがある。その対処方法の解説。
-
-
CakePHP4で定数の設定と呼び出し方法の解説(defineとConfigure)
CakePHP4で定数を設定、使用する方法を解説。定数定義はdefineとConfigureを使用する方法を解説。また、bootstrap.phpに直接記述する方法と別のファイルにする方法を解説。
-
-
CakePHP3のルーティング(routes.php)の変更が反映されない時はキャッシュのクリアを
CakePHP3でルーティングの設定変更をしたけど反映されない!そんなときは慌てず騒がずキャッシュをクリアしよう!ルーティングの設定もキャッシュされることがあるらしい。
-
-
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。
-
-
CakePHP 2.3 ログイン、操作履歴、アクセスログ出力
CakePHPでログインや操作履歴などのアクセスログ出力処理を作成します。
-
-
CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法
CakePHP4系、5系ではAuthenticationを使用してログイン認証を行う。その認証でID、PASS以外の削除フラグなどの条件を加えたいときの対応方法について解説。
-
-
CakePHP3のアソシエーション機能を使い関連レコードをまとめて削除
CakePHP3でレコードを削除する際に関連するレコードをまとめて削除する機能の解説。フレームワークのメリットを存分に発揮し、コマンドを1行追加するだけで実装可能。