私のサーバー環境がcentos 6.3を実行している仮想マシンによってエミュレートされ、開発がホストOSから行われる開発環境をセットアップしようとしました。アプリケーション コード (codeigniter アプリ) は、/home/foo/Desktop/code/app にマウントされた共有フォルダーにあり、このアプリケーションを提供するために apache で仮想ホストを作成しました。
開発側では、git を VCS として使用します。
問題は、ヘルパーをロードするときに 2 つのファイルが含まれることです。たとえば、アプリケーション/ヘルパーに my_date_helper という名前のヘルパーがあります。2 つの機能があります。このヘルパーをオートロードします。
このアプリケーションの php を実行すると、このエラーがスローされます
Fatal error: Cannot redeclare time12to24() (previously declared in /home/mlakhara/code/cosys/application/helpers/my_date_helper.php:9) in /home/mlakhara/code/cosys/application/helpers/MY_date_helper.php on line 11
関数にコメントすると、関数が未定義であると表示されます。
また、時間関連の関数は、date.timezone オプションを使用して php.ini ファイルに既にあるタイムゾーンを設定するようにという警告をスローします。
これらの 2 つのファイルは、異なる名前で 2 回同じように含めることができると想定しましたが、行番号は別のものを示唆しています (関数は別の行で宣言されています)。
通常のフォルダー (非共有) から提供される場合、アプリケーションは正しく機能します。vn から git を削除して試しましたが、違いはありませんでした。
何が問題になる可能性がありますか?
---------------編集 ----------------------- マグナス・エリクソンの答えからヒントを得て、私は実際のパスと日付ヘルパーをロードする代わりに、これらの「拡張」ヘルパーを自動ロードしていました。これにより、同じ関数のコピーが 2 つ取得されます。ただし、タイムゾーン設定の問題は引き続き発生します。
是正措置として、時間の値も .htaccess ファイルに追加しました。ただし、それを行うより良い方法はありますか。