Загрузка всех функций в PHP

Это немного безумная идея, но есть ли способ загрузить все функции, которые есть в php, без использования вспомогательной функции для вызова функций.

Я имею в виду на самом деле вызов некоторого кода или функции до и после каждого вызова базовой функции.

Пример:

<?php
echo "Hello";
?>

Но эти функции будут вызываться до echo и после echo:

<?php
function pre_echo()
{
  do_something();
}

function post_echo()
{
  do_something_else();
}
?>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
426
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Как и в случае с FYI, ваш пример выбрал что-то, что на самом деле не является функцией в самом строгом смысле слова, эхо - это языковая конструкция, которая по-разному обрабатывается внутренними функциями PHP.

Я думаю, что есть только два способа добиться того, что вам нужно:

  • Предварительно обработайте свой PHP-код для дополнения это с переопределенными вызовами функций
  • или измените внутреннее устройство PHP на поддержка перехвата всех вызовов функций

Вы совершенно правы, я не думал прямо о том, что использовал в качестве примера. Я думал об изменении внутреннего устройства, но не отставать от версий php было бы сложно. Спасибо

Botto 04.01.2009 16:22
Ответ принят как подходящий

«Самозагрузка» здесь не совсем правильный термин - то, что вы хотите сделать, называется Аспектно-ориентированное программирование и да, это можно сделать на PHP. Однако, похоже, это требует существенных изменений в том, как вы обычно используете PHP.

Спасибо, я не знал, какой термин использовать.

Botto 04.01.2009 16:17

почему ты хочешь сделать это? Если вы хотите профилировать свой код, используйте профилировщик, например Xdebug

У меня есть безумные идеи безопасности, но спасибо. Я не знал о xdebug

Botto 04.01.2009 16:18

Вот почему вы пишете свои собственные классы и инкапсулируете там функциональность, которую хотите иметь для этого конкретного случая. Зачем усложнять понимание вашего материала другому программисту?

ты можешь сделать это. вам нужно изменить файл php.ini

в директивах

auto_prepend_file
auto_append_file

Например

auto_prepend_file=/home/php/run_before.php
auto_prepend_file=/home/php/run_after.php

тогда

<?php echo('hi'); ?>

вывод будет:

# something before
hi
# something after

Другие вопросы по теме