エス技研

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系で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」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介

CakePHP4、5系の認証処理でログイン認証が通らない場合の確認方法、確認箇所を解説。ログ出力し、ステータスを確認するが、ステータスの内容も紹介。それはそのままusernameを変更する際のポイントでもある。

CakePHP3で環境変数を設定して本番環境と開発環境を分けて処理をする場合
CakePHP3で環境変数を設定して本番環境と開発環境を分けて処理をする場合

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

CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法

CakePHP3に付属しているデバッグのためのツール、デバッグキットを強制的に有効化、無効化する方法を解説。初期設定では開発環境としてありそうなドメインの場合のみ有効になるように設定されている。

CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定

CakePHP3の Authコンポーネントや CakeDC/Usersプラグインなどを利用したユーザ管理・認証システムにおいて、ログインしていなくても見ることができるページの設定方法を解説。

CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因
CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因

Bakeして自動生成した入力フォーム処理を元に少し処理を追加したら、入力エラーがあってもエラーメッセージが表示されなくなった。原因はリダイレクトの処理にあった。

MySQL+CakePHPのdate型、datetime型項目は「2999-12-31」までしか扱えない
MySQL+CakePHPのdate型、datetime型項目は「2999-12-31」までしか扱えない

CakePHPの日付、日時の型であるdate型、datetime型の最大値は2999-12-31となっている。MySQLは9999年までなので違いがあるので注意が必要だ。

CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要

CakePHP4でキャッシュをクリアするコマンドcake cache clear_allでPermission deniedのエラーが出るのはcakeにパーミッションが足りないとき。その対処方法を解説。

CakePHP3でCookieを保存、呼び出し、削除の操作・CakePHP3.7対応
CakePHP3でCookieを保存、呼び出し、削除の操作・CakePHP3.7対応

CakePHP3.7でCookieを保存、取り出し、削除する方法を解説。CakePHP3でのCookieの取り扱いはバージョンごとに変更されるため、環境に合わせた方法を探す必要がある。

CakePHP4 でコマンドプログラム(シェルプログラム)を作成する方法解説
CakePHP4 でコマンドプログラム(シェルプログラム)を作成する方法解説

CakePHP4でバッチ処理を行うためのコマンド・シェルの実装方法について解説。bakeでテンプレートファイルを作成し、「execute()」に処理を記述する方法を解説。

CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法

CakePHP3でデフォルトのソート条件を設定しつつ画面上でユーザがソート条件を選択したときもソート処理を実行させる方法を解説。ソート条件はページネーションの処理として実装。