エス技研

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で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法
CakePHP4で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法

CakePHP4で.env、app_local.phpに定数を定義してそれを呼び出す方法の解説。Gitでは管理せず本番環境と開発環境とで異なる定数を定義するためそれを利用する方法。

CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法
CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法

コントローラーからビューに送ったテーブルのオブジェクトを連想配列に変換し、ビューの中で自由に使えるようにするメソッド「toArray()」の解説。連想配列に変換できれば利用度アップ!

CakePHP3のCakeDC/Usersでログインユーザの所有レコードのみ更新、削除する権限管理の設定方法
CakePHP3のCakeDC/Usersでログインユーザの所有レコードのみ更新、削除する権限管理の設定方法

CakePHP3のユーザ管理、ログイン認証プラグイン「CakeDC/Users」の権限管理を行う方法やアクセスできるコントローラー、アクションを設定、所有権を持つレコードのみ更新できる設定方法を解説。

CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力

CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。

CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法

CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。

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

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

CakePHP 2.3 Search Pluginで検索処理 その6ORDER、sortソートの機能

CakePHPの検索プラグイン Search Pluginの検索処理の中で order、ソートについての解説です。

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。

CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座

CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。

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

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