PHPでrequire(include)する場合についての質問です。


私は共有ファイルcommon.phpを、WEBシステムを構築するすべてのPHPファイルに読み込ませています。

// common.php内のソース
define('COMMON_DIR', dirname(__FILE__));
reuqire_once COMMON_DIR.'db_class.php';//DB処理用クラス
reuqire_once COMMON_DIR.'member_func.php';//会員用関数ファイル

みたいな感じで。requireするファイルを分けているのは、
各用途によってファイル内容を推測出来、わかりやすいからです。

そこでふと疑問に思ったのですが、このように必ずどのページでも
いくつかのファイルを読み込むことで、WEBシステムを運用していく上で、
支障が起きたりしないでしょうか?(例えば、処理速度が遅くなるなど)

common.phpには基本的に関数ファイルしか読み込まないので、
処理が遅いという実感を感じたことはありません。
ですが、上記のやり方を見て「こうした方がいい」「こういう問題がある」
というアドバイス・ご指摘がありましたら、お願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/09/23 21:46:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント27pt

reuqire_once より require の方が早いとか些細な違いはあるが、現在行われている方法が効率的かつ一般的です。


ファイルが分かれていることによるデメリットはほとんどなく、わずかに require/require_once の関数呼び出しコストがかかるだけです。アプリケーション全体としては誤差にしかなりません。

それよりはメンテナンス性を高めるために分割するのはよいことです。


もちろんファイル分割とその中のクラス・関数に関連性がなかったりすると台無しですが。

id:kt26

なるほど。実は最近になって分けるようにしてたのですが、これまでは


「読み込むファイルが多いと、ページに負荷がかかって、ブラウザのアクセスが遅くなる」


っと誤認していました。その様なことはないみたいですね。あと、require/require_onceについても早速参考にさせていただきます。ありがとうございました。

2007/09/21 22:57:07
id:KUROX No.2

回答回数3542ベストアンサー獲得回数140

ポイント27pt

>メンテナンス性を高めるために分割するのはよいことです。

性能が少々下がっても、分割は良いと思います。

「■性能」のなかで書いてますが

絶対パスで書いた方が処理速度が速くなるようです。

が、実際問題、そんな書き方をする必然性がないと思います。

------------------------------------------------

■性能

http://blog.goo.ne.jp/mihuu1/e/1816a8644f58ec50eea0f9f522e5ddc4

■PHPをキャッシュする

http://www.doyouphp.jp/tips/tips_mmcache.shtml

オープンソースのキャッシュは、怪しいとどうかな?と思うけど。

■PHPをキャッシュしWebアプリを高速に、ゼンド

http://www.atmarkit.co.jp/news/200312/13/zend.html

Zend

id:kt26

URL参考にさせていただきます、

2007/09/22 06:55:13
id:toyoshi No.3

回答回数67ベストアンサー獲得回数1

ポイント26pt

>「読み込むファイルが多いと、ページに負荷がかかって、ブラウザのアクセスが遅くなる」

というよりは、ファイルが増えればHDDへのアクセスが多くなるのでHDDへの負荷が問題になると思います。

1日数万程度のアクセスまでは問題ないと思われます。

id:kt26

確かにファイルが増えればHDDの負荷は増えますね。

ただそれもファイル数が10未満増えるだけですので、気にする程度ではないかも知れませんね。

2007/09/22 06:56:17
  • id:b-wind
    >というよりは、ファイルが増えればHDDへのアクセスが多くなるのでHDDへの負荷が問題になると思います。
    ケースによると思う。
    単純にファイルが増えただけならアクセスは増えるが、関数の共通化などの目的で作成したファイルなら、全体のファイルサイズは小さくなる。
    むしろキャッシュに乗ることで HDD のアクセスは少なくなるもとの思われる。

    また、データファイルなどの大容量のものならともかくスクリプトは基本的にそう大きなデータ量にならないので、ここが問題になる可能性はあまり大きくないはず。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません