Я уже пытался Google, как это сделать, но я все еще не могу понять это. Как создать простой хост внутри PHP? Вот то, что я пытался до сих пор:PHP Как создать простой крючок?
wrapper.php (приложение начинается здесь)
<?php require 'core.php'; ?>
<?php require 'view.php'; ?>
core.php
<?php
$hooks['hook_head'] = array();
//supposed to insert action in $hooks
function addHook($hookName, $funct){
global $hooks;
array_push($hooks[$hookName], $funct);
}
//supposed to execute specific hook
function executeHook($hookname){
global $hooks;
foreach($hooks[$hookname] as $funct){
call_user_func($funct);
}
}
//supposed to execute action in $hooks when array key = hook_head
function hook_head(){
global $hooks;
if (array_key_exists('hook_head', $hooks)) {
executeHook('hook_head');
}
}
//supposed to execute action in $hooks when array key == hook_footer
function hook_footer(){
global $hooks;
if (array_key_exists('hook_footer', $hooks)) {
executeHook('hook_footer');
}
}
?>
view.php
<!DOCTYPE HTML>
<html>
<head>
<?php hook_head(); ?>
</head>
<body>
<hr />
<?php
//add action to hook start here
$test = function(){ echo "test succeds"; };
addHook('hook_head', $test);
?>
<?php hook_footer(); ?>
</body>
</html>
Код работает нормально, если я вставляю действие внутри $hooks['hook_head']
, прежде чем позвонить hook_head()
. То, что я на самом деле пытаюсь сделать, это вставить действие после того, как я вызвал hook_head()
. Как мне это сделать?
Не уверен, что вы знаете, что крючок. – FaddishWorm
Вы хотите иметь несколько функций для каждого права «hookname»? – robbmj
@FaddishWorm Хорошо, я начинаю сомневаться, что знаю о крючке. Я просто хочу что-то повторить в заголовке тега из тега body. – ilike