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
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法
CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。
-
-
CakePHP3のHtmlHelperのLink設定のまとめ。mailto、URL、Root/Homeのリンクなども
CakePHP3でHtmlHelperを使ってリンクの設定をする方法のまとめ。基本形からURLを指定、class、id、targetを指定、mailtoのリンク、画像をアンカーに、JavaScriptのダイアログなどの解説。
-
-
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。
-
-
CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法
コントローラーからビューに送ったテーブルのオブジェクトを連想配列に変換し、ビューの中で自由に使えるようにするメソッド「toArray()」の解説。連想配列に変換できれば利用度アップ!
-
-
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。CakePHP4で使う場合のUsersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する
VirtualBoxにCentOS、Apache、MySQL、PHPをインストールするところから初めてCakePHP3の開発環境を構築する手順を詳細解説。この記事1つで全ての設定が完了する。
-
-
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3でパンくずの指定方法の解説。2つのヘルパーがあるが簡単なHTMLヘルパーを使った方法を、実際の状況に合わせて3つのパターン(エレメント化、ブロック化)にして解説。
-
-
cakephp3 カスタムバリデーションを簡易的に実装する方法
CakePHP3の独自のバリデーションをテーブルクラス内に簡単に記述する方法を解説。他のテーブルクラスでは使えないが、記述する量は少なく実装できるため、他で使わない処理を書くのには便利。
-
-
CakePHP3で静的ページの作成は webrootか pagesを使う。トップページを参考に解説
CakePHP3で静的なページを設置する場合の方法(webrootとpagesとを活用する方法)を解説。pagesの解説はデフォルトのトップページがどう表示されているかを参考に解説。ルーティングの機能も。
-
-
CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数
CakePHP3で特定フォルダのパスの定数を解説。root、DocumentRoot、app、config、webroot、tests、tmp、cache、vendor、コア、コアの srcが設定済み。realpath()関数を使うと柔軟なパス指定が可能。