эквивалент Python-декоратора в переполнении стека

Я хотел бы повторить аспектно-ориентированное программирование в php

Предполагая, что у меня есть что-то вроде этого:

def wrapper(func):
print ("start")
func()
print ("end")

@wrapper
def hello():
print ("hello")

Что эквивалентно в php?

1

Решение

Я автор Go! AOP Framework и может сказать вам, что нет прямого эквивалента декораторов Python в PHP, потому что в PHP все классы закрыты. Это означает, что нет никаких изменений времени выполнения для методов и классов без специальных расширений, таких как Runkit или PHP-AOP.
Без этого вы можете использовать декораторы или прокси с дополнительной логикой или установить Go! рамки, которые могут автоматически создавать декораторы для ваших оригинальных классов. Это будет отличным вариантом, если у вас большой проект, например, корпоративные приложения

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]