|
|
|
| Добрый день, меня заинтересовал один удобный инструмент в некоторых CMS под названием Хуки или Action
В моем понимании это callback, то есть после выполнения пользовательской функции можно добавить еще одну функцию. Но как это сделать пока не понял.
К примеру у меня есть функция которая выводит строку
<?php
function my_text($str='') {
echo $str;
}
?>
|
теперь нужно к этой функции добавить выполнение другой функции к примеру которая после завершения my_text выполняется.
Возможно стоит написать функцию, которая может сливать друг за другом указанные в списке функции по очередности и выводит результат?
К примеру
<?php
$arr_name_function = array(
'my_text',
'my_text2',
'my_text3'
);
function my_combine_fn($name=array()) {
// каким образом можно выполнить функцию имея только ее название
}
?>
|
>> call_user_func_array ?
Как это все называется и реализовывается? | |
|
|
|
|
|
|
|
для: tima2010
(09.04.2013 в 22:34)
| | Может быть так?
<?php
function my_text($callback=array())
{
echo "Hello SoftTime";
foreach($callback as $name_fn){
$name_fn();
}
}
function my_fn_one() {
echo '<hr>This </hr>';
}
function my_fn_two() {
echo '<hr>Good</hr>';
}
call_user_func('my_text', array('my_fn_one', 'my_fn_two'));
?>
|
но ведь я не буду у каждой функции писать в конце
<?php
/*
foreach($callback as $name_fn){
$name_fn();
}
*/
?>
|
| |
|
|
|
|
|
|
|
для: tima2010
(09.04.2013 в 22:34)
| | Хук в РНР, это изменение функционала без изменения кода (функций, ядра). В сети есть описание этого с примерами (найдете), но сдается мне, что вы пытаетесь сделать нечто другое. Что за задачу вы пытаетесь решить? Только опишите конкретно для чего, а не пространно с примерами типа echo .... | |
|
|
|
|
|
|
|
для: confirm
(10.04.2013 в 06:33)
| | Рабочий пример:
Есть функция выводящая в заголовке сайта коды скриптов и стилей, назовем ее my_header()
Допустим, к сайту я подключаю плагин. И мне нужно добавить js и css плагина так же в заголовок сайта.
Что бы не лезть и не искать функцию my_header() хотелось бы найти решение, которое позволяет одной строкой объедение две функции.
Допустим это будет так:
<?php
function my_header() {
// выводит скрипты и стили
}
function my_plugin_header() {
// выводит скрипты и стили плагина
}
add_action('my_header', 'my_plugin_header');
?>
|
теперь в my_header выводится результат из функции my_plugin_header | |
|
|
|
|
|
|
|
для: tima2010
(10.04.2013 в 08:02)
| | Тогда надо спрашивать у Гугла, и читать как это работает. К примеру в phpBB это применяется, и описано. Вы же изначально задаете вопрос далекий от этого понятия. | |
|
|
|
|
|
|
|
для: confirm
(10.04.2013 в 08:05)
| | Проблема в том, что я не знаю как правильно это озвучить одним словом чтобы произвести поиск :) | |
|
|
|
|
|
|
|
для: tima2010
(10.04.2013 в 08:15)
| | С вас 50 баксов за поиск, ну уж пользоваться Гуглом....
http://bolzamo.org.ru/214/
http://www.phpbbguru.net/useful/codebook/hook-system-usage/
Неужели это так трудно найти? | |
|
|
|
|
|
|
|
для: tima2010
(10.04.2013 в 08:02)
| | Мб лучше посмотреть в сторону ООП и шаблонизаторов с возможность наследования? | |
|
|
|