В примере этой статьи описывается реализация PHP-хука . Чтобы поделиться с вами для вашей справки, следующим образом:
Реализация крюка PHP-программирования, пример объяснения и объяснение их функций, написание шаблона реализации крюка
Крюк-это распространенное понятие в программировании, что очень важно. Это делает систему очень простой в расширении (без понимания ее внутреннего механизма реализации, что может сократить объем работы). Пока есть образец крючка, легко скопировать первый крючок, чтобы быстро написать второй крючок. Вот простое понимание крючка.
Вот простой пример кода:
Браузер запускает тестовый вывод:
Я тестирую на крючок привет Массив ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
В тестовом классе записывается пример метода. Исходный метод этого примера очень прост, то есть выводить Hello, но перед этим нам нужно сделать еще кое-что (здесь я предполагаю, что перед тем, как я введу Hello, нужно вывести строку, а затем вывести массив).
Теперь у нас есть два способа написания:
Во-первых: Непосредственно реализуйте функции, которые нам нужны в методе (как в приведенном выше коде)
Но в этом есть проблема. Каждый раз, когда мы меняем систему, нам нужно менять основную часть системы (мы предполагаем, что тест является основной частью системы). Таким образом, нам нужно перейти к тесту класса, чтобы меняться каждый раз, когда мы меняемся. Стоимость разработки очень велика, а код очень сложен в обслуживании.
Во-вторых: Мы инкапсулируем метод выполнения
function execute($params) { if(is_array($params)){ echo ''; print_r($params); echo ''; }else{ echo $params; } }
Таким образом, наша реализация намного удобнее. Тестовый класс может быть упрощен до:
class Test { public static function example() { Execute ('I am a hook test < br > '); echo 'hello
'; $arr = array(1,2,3,4,5,6); execute($arr); } }
Но сейчас все еще есть проблема. Когда мы вносим изменения, нам все равно нужно внести внутренние изменения в систему (если это простой массив и строка, ее можно настроить, но если это сложная логическая обработка, конфигурация не будет работать).
Мы хотим написать класс (через этот класс при отправке сообщений в систему система может напрямую вызывать наш класс, и наш класс совместим с исходной системой, если он следует определенным правилам проектирования).
Следующий формат крючка был улучшен и разработан:
string(); }elseif($type == 'arr'){ $m->arr(); } } } class Test { public static function example() { Hook::execute('string'); echo 'hello
'; Hook::execute('arr'); } } //We only need to change an external Hello class to control the internal system. class Hello { public function string() { $STR = 'I'm a hook test < br >'; echo $str; } public function arr() { $arr = array(1,2,3,4,5,6); echo ''; print_r($arr); echo ''; } } Test::example();
Результат операции:
Я-тест на крючок, привет
Массив ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Как видно из вышесказанного, может быть сформирован отдельный класс. После того, как внутренняя часть системы исправлена, различные виды могут быть написаны снаружи для реализации крючка. Теперь я написал класс “Привет”. Если вам нужно расширить мировой класс, вы также можете просто сменить крючок вместо изменения тестового интерьера. До тех пор, пока мы определяем абстрактный класс:
abstract class lan { abstract function string(); abstract function arr(); }
Затем позвольте всем классам расширений, таким как класс hello или мировой класс, наследовать этот абстрактный класс, и вы сможете напрямую написать расширение.
Для получения дополнительной информации о PHP, пожалуйста, ознакомьтесь со следующими разделами: Введение в объектно-ориентированное программирование PHP, навыки работы с массивами PHP, введение в базовый синтаксис PHP, краткое описание операций PHP и использования операторов, краткое описание использования строк PHP, введение в работу с базой данных PHP + MySQL и общие навыки работы с базой данных PHP
Я надеюсь, что эта статья будет полезна для программирования на PHP.