|
|
|
|
|
для: sl1p
(31.05.2010 в 22:54)
| | а вот, нашёл:
call_user_func_array(array($obj, "method"), $params)
|
| |
|
|
|
|
|
|
|
для: Tonik992
(31.05.2010 в 20:49)
| | хм, а можно както через call_user_func вызвать метод?
или как передать в метод параметры? | |
|
|
|
|
|
|
|
для: Саня
(31.05.2010 в 22:09)
| | оу... не знал О_о огромнейшое спасибо :) | |
|
|
|
|
|
|
|
для: sl1p
(31.05.2010 в 20:43)
| | > хотелось сделать именно визуально вызов плагина как метод класса
Существует магическая функция __call() | |
|
|
|
|
|
|
|
для: Tonik992
(31.05.2010 в 20:49)
| | завтыкал :)
ну х3... надо подумать хорошенько:)
спасибо большое за идею! | |
|
|
|
|
|
|
|
для: sl1p
(31.05.2010 в 20:43)
| | хм.. а функция call_user_func выглядит так - call_user_funct($funct_name,$param,.....);
или так: call_user_func($funct_name,$array_param); | |
|
|
|
|
|
|
|
для: Tonik992
(31.05.2010 в 20:36)
| | абсолютно все плагины складываются из одной функции...
хотелось сделать именно визуально вызов плагина как метод класса(для удобства)
т.е. $class -> plugin();
а Ваш способ через call_user_func имхо не подходит, т.к. у функции-плагина произвольное количество аргументов..
а мой последний способ уже портит всю картину.. т.к. если у плагина 1 функция тогда всё равно придётся вызывать цепочкой..
$class -> plugin() -> выполнить_действие_одной_функции()
вобщем х3 даже что тут можно придумать :ъ | |
|
|
|
|
|
|
|
для: Tonik992
(31.05.2010 в 20:30)
| | А твой ведь способ тоже работает... Подключаемый плагин сделать как отдельный класс, в котором может быть не одна единственная функция, не один единственный метод... | |
|
|
|
|
|
|
|
для: sl1p
(31.05.2010 в 20:26)
| | Хм, а если создать в классе поле, которое будет хранить в себе массивы плагинов.. И соответственно функцию, которая будет добавлять в этот массив названия функций(плагинов)... Вызывать потом эти функции естественно через call_user_func() | |
|
|
|
|
|
|
|
для: Tonik992
(31.05.2010 в 20:16)
| | ну мне тоже кажется что я чтото мудрю..)
пытаюсь сделать свою систему плагинов..
по нужде подключаются различные плагины, я думал сделать это как методы класса, чтобы не потеряться в именах функций..
короче получилось такая вот хрень))
наверное надо почистить мозг и думать заново)
<?
class Plugins {
function load($name) {
$pl = "plugin_".$name;
$this -> $name = new $pl;
}
}
class plugin_ContentEditor {
function get() {
echo 'content_editor usex()';
}
}
$s = new Plugins;
$s -> load('ContentEditor');
$s -> ContentEditor -> get();
|
| |
|
|
|
|