[php] 共通関数などが増えてきて、共通関数ファイルをインクルード(require_once)すると表示がだいぶ遅く感じるようになりました。


共通関数をひとつのファイルに記述しているので、画面によってはほとんど共通関数を使用しないのに、大きな共通関数ファイルを読み込んでいたりする場合もあります。

使用するものだけをインクルードすればいいのですが、そうするには手間もかかりますし、仕様が変わった場合にメンテナンスも大変です。


なにか効率の良い処理の軽量化がありましたら教えて下さい。

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

回答2件)

id:kazu1107 No.1

回答回数199ベストアンサー獲得回数14

ポイント35pt

一般論として、ある程度規模が大きいプログラムの管理はファイルを関連別に分けた方が保守しやすいと言われています。

(それぞれのファイルがインタフェイスのみを提供することで、機能のブラックボックス化をはかる。。。オブジェクト指向の基本概念です)

それとはまた別の問題で、PHPはスクリプト言語なので、呼び出し毎に意味解析することになります。やはり使わない関数が多いヘッダファイルを呼び出すのはあまり良くないでしょう。

ということで、私が書くのはそのプログラミングスタイルの移行に関する案ということをご理解ください。


たとえば共通関数ファイルの名前を「common.php」とします。

それをある程度処理毎に「head_write.php」「head_string.php」「head_math.php」などと分け、「common.php」自体はそれぞれのヘッダをインクルードしてるだけの形にします。

こうすることで、今までのプログラムは「common.php」を呼び出せば全ての関数にアクセスできるはずです。

そして移行の部分ですが、スクリプトを新規作成するときは「common.php」を呼び出さないようにして、それぞれ必要なファイルのみインクルードします。


こんな調子で長期での移行を考えてみていかがでしょうか?

現時点であるファイルの「common.php」をそれぞれ必要なヘッダに分けていけば、本来軽い部分での重さは解消出来るのでは無いかとおもいます。

id:ishdig No.2

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

ポイント35pt

もしサーバー環境を変更できるようであれば、APCPHPAをインストールすると、一度読み込まれたファイルがキャッシュされるため、多少大きなファイルをインクルードしても速度がほとんど遅くなりません。

開発効率を考えると、良い手段と思います。

コメントはまだありません

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

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

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

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