エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


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のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4から外部のデータベースにアクセスする方法解説
CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法
Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
 
その他の「CakePHP4」に関する記事一覧
 
 

 - CakePHP 3.x 4.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールする
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールする

CakePHP4、CakePHP3でブラウザにキャッシュさせる設定の解説。CSS、JavaScript、画像をブラウザにキャッシュさせるのか、定期的にリロードする設定にするのかの設定が可能。

VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する。
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する

VirtualBoxにCentOS、Apache、MySQL、PHPをインストールするところから初めてCakePHP3の開発環境を構築する手順を詳細解説。この記事1つで全ての設定が完了する。

CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。

CakePHP3でajaxを利用する処理の実装方法を解説。プルダウンを変更するとデータベースの値を取得し検索結果の内容を変更するというような処理を想定。CakePHP3.6以降の CSRF対策対応済。

CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で複数項目を入力した場合の AND検索、OR検索についての解説です。

CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。

CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント
CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント

CakePHP3の開発で発生する「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」のエラーには特有の原因もあるため、その説明と対処方法の解説。

CakePHP3の検索プラグイン「friendsofcake/search」の様々な検索の仕方の実装方法
CakePHP3の検索プラグイン「friendsofcake/search」の様々な検索の仕方の実装方法

CakePHP3で検索をするプラグイン「friendsofcake/search」の検索条件のカスタマイズ方法の解説。検索項目を増やしたり、以上、以下での検索や、チェックボックスによる検索の方法などを解説。

CakePHP4の定数定義ファイルを環境変数によって本番と開発を振り分ける方法解説
CakePHP4の定数定義ファイルを環境変数によって本番と開発を振り分ける方法解説

CakePHP4で開発環境と本番環境とで違う設定ファイルを読み込ませて環境ごとに定数を切り替える方法を解説。Apacheのhttpd.confに環境変数を設定しそれを読み込み判別する。

CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法

CakePHP4でテンプレートやレイアウトファイルをデフォルトから変更する場合は「render()」を使用するが、記述場所はできるだけコントローラー内の最後の方に書く方がいい。

CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。