まず、少し背景。私が働いている会社は、大量の関数/クラスライブラリを使用しています。これはすべての単一ページに含まれています。何千もの関数行があり、その90%はおそらくページ上で呼び出されることさえありません。必要に応じて自動ロード機能/クラスライブラリ
サーバーの負荷を軽くしようとして、よりスマートなライブラリ設定を試しています。この目的のために、ファイル全体を分類されたライブラリファイル(つまり、sql.functions.php、date.functions.phpなど)に分割しました。
残念ながら、すべてのページのすべてのファイルを含めても役立たないファイルを選択的に含めることはほとんど不可能であり、エラーを起こしやすい。
私が探しているのは、PHPの___autoload()
機能に似た設定です。この機能は、未知のクラスが開始された場合に特定の名前のファイルを自動的に検索して見つけようとします。
<?php
function ___autoload($class_name) {
require_once($class_name.'.class.php');
}
?>
ただし、この関数は関数呼び出しでは機能しません。クラスでは機能しません。
未定義の関数(つまりhtml_insert_button();
)を呼び出して、名前付き関数ライブラリを自動的に検索してインクルードするよう指示する方法はありますか?
(それは関数の接頭辞を共有するため、上記の場合、html_functions.php
は、ロードする必要があります)
APCを使用すると、これらのファイルを劇的に含むオーバーヘッドを減らすことができます。それを超えて、これらの関数をクラスに移動することが最善の策です(静的にすることができるので、それらをほぼ同じように呼び出すことができます)ので、オートロードを利用できます。 –