Загрузка функций автоматически? - PullRequest
0 голосов
/ 01 августа 2011

У меня есть класс, который определяет новые мета-блоки в административной области веб-сайта. Каждый новый блок требует довольно много аргументов, поэтому определение каждого нового объекта хранится в отдельной функции.

function my_metabox(){
   $args = array(/*the args*/);
   $metabox = new MetaBox($args);
}

И затем у меня есть функция, расположенная там, где мне нужно загрузить ящики, для загрузки всех метабоксов одновременно.

function load_metaboxes(){
  my_metabox();
  my_other_boxes();
  etc_etc();
}

В основном проблема заключается в том, чтобы вручную оповещать функцию load_metaboxes() всякий раз, когда я создаю новый ящик, есть ли лучший способ структурировать это?

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Может быть, вы можете использовать что-то вроде этого:

//declaring my functions
function test_funct_1() { echo 'test'; return true; }
function test_funct_2() { return true; }
function test_funct_3() { return true; }
function test_funct_4() { return true; }

//get all function declared
$func = get_defined_functions();
//show only functions declared by user (you)
print_r($func['user']);

//call a individual function
$func['user'][0]();
0 голосов
/ 01 августа 2011

использовать php метод автоматической загрузки

вот документация http://php.net/manual/en/language.oop5.autoload.php

в вашем классе создайте имя метода __autoload и вызовите все функции в нем, чтобы при создании экземпляра класса функция, вызываемая в __autoload, автоматически загружалась

...