しばらく私はウェブサイトを持っていましたが、それは何百もの個々のPHPファイルに成長しました。約2年前、私は同じウェブサイトのモバイル版を作った。私はメインファイルだけをコピーし、ヘッダーとフッターをモバイルフレンドリーに調整することにしました。残りは期待通りに働いた。私はこの時点で50%の互換性があると言います。 サブディレクトリのいくつかは、コピーする代わりに、ln -s
を使ってリンクを行うことができると私は決めました。これにより残りの45%が解決されました。PHP - 別のファイルが存在する場合は読み込み
最近、私は厄介な状況に遭遇しました。このシンボリックリンクされたサブディレクトリ内のファイルの1つは、モバイル版と完全なWebサイトでは大幅に異なる必要があります。通常のファイルでは、ハードコピーを作成して内容を変更するだけですが、sym-linkedディレクトリ内のファイルに対しては不可能です。
誰もこれに遭遇しましたか?これをどうすれば解決できますか?ここで
は、ファイルレイアウトは&例です。
/var/www/domain.com/
/var/www/mobile.domain.com/
/var/www/mobile.domain.com/images -> /var/www/domain.com/images
/var/www/mobile.domain.com/tools -> /var/www/domain.com/tools
私は、ファイル/tools/help/wizard/configure.phpを変更する必要がある場合、私はちょうどそのファイルの一意のファイルを持つことはできません
これは、UGLのように思えるif (file_exists("/var/www/mobile.domain.com/_overwrite_/" . $requested_file)) {
// ... include it instead of running the actual file
}
:私はと思ったが、のようなものをチェックするために、モバイルheader
ファイルを変更されて好きではない
一つのアプローチyアプローチ。 Apacheディレクティブでも同様のことができます(私はそれらを知らないが、私はそれをModRewriteと推測している)
もっと良いアプローチはないと思います。 Mod-rewriteは、HTTPリクエストをリダイレクト/変更するために使用され、PHPによってではなく、ユーザー(ブラウザ)によって送信されます。 ApacheはユーザーとPHPの「架け橋」です – Kristian
ここで切り替えるのはあなたのページのプレゼンテーションロジックですか、あるいはモバイルプラットフォーム用の別のプレゼンテーションをサポートするビジネスロジックの変更ですか? – Scuzzy
オートローダーまたは簡単なincludeステートメントを使用していますか? –