人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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


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

●質問者: k2017
●カテゴリ:ウェブ制作
✍キーワード:[php] ひとつ ほと インクルード ファイル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kazu1107
●35ポイント

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

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

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

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


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

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

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

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


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

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


2 ● ishdig
●35ポイント

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ