Добавить ПЕРЕХВАТ к результатам mysql (PHP)

#php #mysql #hook

#php #mysql #перехват

Вопрос:

У меня есть скрипт, который выводит имя пользователя примерно в 100 файлах. Теперь я хочу использовать класс для генерации имени пользователя из идентификатора пользователя.

Есть ли способ добавить перехват к этому, чтобы сделать это, или мне нужно вручную отредактировать все файлы?

Ответ №1:

Если ваш скрипт не предоставляет перехват, вероятно, нет способа изменить это без изменения файлов.

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

Чтобы избежать той же проблемы в будущем, вместо изменения каждого вхождения на другое значение, вы могли бы вставить вызов showName() функции или метода, которые вы определяете в центральном файле.

Комментарии:

1. Это моя идея. Я бы сказал Names.class.php, который будет принимать идентификатор пользователя и возвращать правильное имя пользователя

2. @Insanity да, это звучит разумно.

3. продвинутым (и я имею в виду продвинутую тактику) для рассмотрения было бы использование функций anon, новых в php 5.3. Существует также шаблон проектирования observer, в котором вы используете диспетчер событий, объекты событий и прослушиватели для интерпретации и изменения данных; этот метод предоставляет намного больше функциональности, чем простое перехват.

4. Не могли бы вы объяснить это немного подробнее?

5. для начала вот что: en.wikipedia.org/wiki/Observer_pattern — реализация этого шаблона в PHP находится здесь: components.symfony-project.org/event-dispatcher — я и несколько других взяли идею о том, как работает диспетчер событий symfony, а затем создали наш собственный, который доступен здесь: github.com/OpenFlame/OpenFlame-Framework/tree/develop-1.1/Event