マイファイル構造:私はHTMLの<head>
一部を生成するための一般的な機能を持っているfunctions.php
でファイル構成
/holiday/admin/list.php
/holiday/includes/functions.php # common functions
/holiday/index.php
#/is the document root
# /holiday/ is a "self-contained" sub-directory
# There are other "self-contained" sub-directories e.g. /promotion/, /international/
。また、文書ルートから絶対パスを返す関数。 /holiday/includes/
を計算しようとしました。
// From list.php
require_once('../includes/functions.php');
open_page(...);
// From index.php
require_once('./includes/functions.php');
open_page(...);
私はここに同じことを達成するために、より簡単な方法がなければならないように感じる:
<? function get_path() {
// Technically, this returns dirname(__FILE__) - $_SERVER['DOCUMENT_ROOT']
return str_replace($_SERVER['DOCUMENT_ROOT'], "", dirname(__FILE__));
} ?>
<? function open_page($head = "", $body_id = "") { ?>
<!DOCTYPE HTML>
<html>
<head>
<link type="text/css" rel="stylesheet" href="<? echo get_path() . "/../css/savvyextras.css"; ?>" />
<script type="text/javascript" src="<? echo get_path() . "/../scripts/modernizr.js"; ?>"></script>
...
<? } ?>
functions.php
は、この方法が含まれます。私のget_path()
用の組み込みPHP関数?たぶん私は自分の問題に別の方法で接近すべきでしょうか?
注: 一部の人々はフレームワークを使用することを推奨しています(これは良いことです)。しかし、私(そして他の人たち)がインクルードファイルの全体を理解するのを助けるために、他の非フレームワークの説明がありますか?
関連ディスカッション:あなたが現在持っているレイアウトのタイプでは
フレームワークを考えると、一般的に言えば、非常に簡単な環境の中でこのようなことを処理する強く成熟したフレームワークがたくさんあります。 – DeaconDesperado
補足として、ショートタグPHP表記を取り除くべきでしょう。つまり、 '<?'から '<?php'に変更してください。ショートタグは推奨されなくなりました。 –
@DeaconDesperado:これはおそらくdevとdevの違いですが、これを行う軽量フレームワークの推奨がありますか? – moey