スタイル ( css + html ) を phpから分離するにはどうすればよいですか? php ファイルに、スタイルまたはテーマ全体を含むいくつかの行を入れるようにします 。
元:
echo
eval_template("header") .
eval_template("body") .
eval_template("footer")
将来的には、phpファイルに触れずにスタイル全体を変更できます か?
これを行う方法はたくさんあります...
これは、プレーンな PHP でのテンプレート作成に関するチュートリアルです http://www.phpro.org/tutorials/Introduction-to-PHP-templating.html
そこにある多くのテンプレートエンジンを見ることもできます. 小枝はそれらの1つです:http://twig.sensiolabs.org/
そのために使用できるテンプレート エンジンはたくさんありますが、私は symfony2 フレームワークに統合されている twig を使用することを好みます。
Twig は非常に使いやすく、非常に柔軟であるため、継承を使用して共通のレイアウトを作成し、特別なタグを使用して拡張したり、一部を上書きしたりすることができます。これは Symfony の Web サイトで見つけたガイドですが、twig の背後にあるロジックを理解するのに非常に役立ちます: http://symfony.com/doc/current/book/templating.html
個人的には、手動で行うのが好きです。
PHP は css と html コードの両方を返すべきではありません。さらに良いことに、クライアント側のコードを返すべきではなく、特定の部分への依存関係を返すべきではありません。多くの異なる内容を含むファイルを変更したくはありません。
css+html を php コードから分離するために、私が通常行っているのは、include("..."); を使用した階層化です。および include_once("...")。例: include_once("header.php") > include("menu.php") > 現在のコンテキストに従って正しく初期化された css クラスを持つ html セマンティック。
次に、css / js 外部スクリプトを header.php にインポートして、すべてが変更されない限り、または Web サイトに追加する完全な機能がある場合を除いて、全体を変更する必要がないようにします。Web サイトのすべてのセクションで同じことが可能です。
これが役に立てば幸いです。私にとっては、重要なことはすべて一度だけ実行する必要があるため、デバッグ時間を大幅に短縮できます。その後、必要に応じて分離できます。