Автоматически включать недостающие функции?

Возможный дубликат:
функции автозагрузки в php

Я работаю над фреймворком PHP. Интересно, есть ли способ переписать обработчик ошибок, если функция не существует, чтобы автоматически попытаться включить файл, указав функцию в первую очередь.

Пример:

echo general_foo(); // <-- general_foo() is not yet stated. // A handler tries to include_once('functions/general.php') based on the first word of the function name. // If the function still doesn't exist - throw an error. 

Победа в этом будет заключаться в том, чтобы пропустить компиляцию ненужных файлов или пропустить отслеживание, а состояние включено здесь и там.

Просто __autoload для функций, а не классов.

Он не существует и, вероятно, никогда не будет. Да, мне тоже хотелось бы … Однако это не мешает вам использовать классы со статическими функциями и позволить автозагрузке PHP.

http://php.net/spl-autoload-register

Я решил это так

Классы классов классов / functions.php:

  class functions { public function __call($function, $arguments) { if (!function_exists($function)) { $function_file = 'path/to/functions/' . substr($function, 0, strpos($function, '_')).'.php'; include_once($function_file); } return call_user_func_array($function, $arguments); } } 

Функции функционального файла / test.php

  function test_foo() { return 'bar'; } 

Сценарий myscript.php:

  require_once('classes/functions.php'); $functions = new functions(); echo $functions->test_foo(); // Checks if function test_foo() exists, // includes the function file if not included, // and returns bar 

В конечном итоге вы можете автоматически загрузить классы / functions.php с помощью __autoload ().

В конце концов, синтаксис для my_function () становится вместо $ functions-> my_function (). И вы можете написать свои собственные обработчики ошибок, если функции не существуют. 😉