рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЗрд╕ рдорд╣реАрдиреЗ рд╣рдордиреЗ
рдмреИрдХрдПрдВрдб PHP рдбреЗрд╡рд▓рдкрд░ рдХреЛрд░реНрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ (рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ) рдФрд░ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рджреВрд╕рд░реЗ рд╢рд┐рдХреНрд╖рдХ -
рдПрд╡рдЧреЗрдиреА рд╡реЛрд▓реЛрд╕рд╛рддреЛрд╡ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЦреИрд░, рд╣рдо рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ "рдХреНрд░реЙрд╕" рдХрд░рддреЗ рд╣реИрдВред
рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрддрдиреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╡реНрдпрд╛рдкрдХ рд╣реЛрдЧреА, рдФрд░ рдПрдХ рдореМрдХрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд░реВрдкрд░реЗрдЦрд╛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдХреЗ рдпрд╛ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдХрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛-рдЙрдиреНрдореБрдЦ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдПрдХ рдРрд╕рд╛ рдХреНрд╖рдг рдЖрддрд╛ рд╣реИ рдЬрдм рд░реВрдкрд░реЗрдЦрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдХреЗ рддрд░реНрдХ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░реЗрдо рдпрд╛ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдЪ рд╣реИред рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдЖрдкрдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдЕрдВрдд-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рднреВрдорд┐рдХрд╛ рд╣реЛрдЧреАред

рдкрд╣рд▓реВ рдУрд░рд┐рдПрдВрдЯреЗрдб PHP рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдкрд╣рд▓реВ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдПрдУрдкреА) рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рд╣реИ рдЬреЛ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЖрд╡реЗрджрди рдХреЗ рдорд╛рдорд▓реЗ - рдПрд╕реАрдПрд▓, рд▓реЙрдЧрд┐рдВрдЧ, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ, рдХреИрд╢рд┐рдВрдЧред
PHP рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд (рдЖрдВрддрд░рд┐рдХ) рдорд╛рдиреНрдпрддрд╛рдУрдВ (рдЬрдм рдЖрдк рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди / рдирд┐рд░рдВрддрд░ / рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░рд╣рддрд╛ рд╣реИ) AOP рдкреНрд░рддрд┐рдорд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред
Li3 рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдерд╛ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЗ рд▓реЙрдЬрд┐рдХ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Li3 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЗ рдореИрдиреБрдЕрд▓ рдЬреЛрдбрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕реА рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдПрдУрдкреА рддрдХрдиреАрдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред
PHP рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз AOP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
PECL AOP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ PECL рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЖрдо рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЧреЛ-рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬреЛ рдПрдХ рдПрдУрдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдлреНрд▓рд╛рдИ рдкрд░ PHP рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдУрдкреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВ (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рдФрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдИ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред
рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирдпрд╛ рд▓рдбрд╝рдХрд╛
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рдкреАрдврд╝реА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ PHP рдореЗрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
ProxyManagerред рдФрд░ рд╕рдВрдЧреАрддрдХрд╛рд░, рдЧреЛрдж рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
! рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдордХреНрдЦреА рдкрд░ рд╕рдВрдкрд╛рджрди рдХреЛрдб рд╕рдВрднрд╡ рд╣реИред
рдпрджрд┐ рдХреЛрдб рдкреАрдврд╝реА рдХреЛ рдЕрднреА рднреА рд╕рд░рд▓ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд░рдирд╛ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, PHP рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЛрдб рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдмрд╣реБрдд рдХрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ PHP рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз
PHP-Parser рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред PHP- рдкрд╛рд░реНрд╕рд░ рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЙрддреНрдкрдиреНрди рд╕рд╛рд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрдбрд╝реЛрдВ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рддрд╛ рд╣реИред рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд┐рд╕ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмреИрдХрдЯреНрд░реИрдХрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рд╕рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд╣рд▓рд╛рди JIT рдХреЛрдб рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрд╣рд▓рд╛рди рдирдИ рдпреВрдирд┐рдЯ рдФрд░ рдмреАрдбреАрдбреА рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪрд╛ рд╣реИ, рдЬреЛ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдкрд╛рджрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣реИ рдЬреЛ рд░реВрдмреА рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реАрдзреЗ рд╕реНрдЯрдм рдФрд░ рдмрдВрджрд░ рдкреИрдЪ рдХреЛрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╣реБрдб рдХреЗ рддрд╣рдд, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрд▓реНрдкрд╡рд┐рдХрд╕рд┐рдд PHP рдкрд╛рд░реНрд╕рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдпрд╣ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддреЗрдЬ рдФрд░ рд╕реНрдерд┐рд░ рд╣реИред
рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
github.com/crysalead/filter рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬреЗрдЖрдИрдЯреА рдХреЛрдб рдкреИрдЪ рдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдЯреЛрд▓рд░реЗрдб рдорд╢реАрди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж):
include __DIR__ . '/../vendor/autoload.php'; use Lead\Filter\Filters; Filters::patch(true);
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдХреЗрд╡рд▓ рд╕рдВрдЧреАрддрдХрд╛рд░ рдСрдЯреЛрд▓реИрдбтАЩрд░ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реА рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рднрд╛рд╡реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░реНрд╕ :: рдкреИрдЪ (рдЯреНрд░реВ) рдХрд╣рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рд╕реБрдзрд╛рд░реЗ рдЧрдП рдХреЛрдб рдХреЛ / tmp / jit рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
Filters::patch(true, ['cachePath' => 'my/cache/path/jit']);
рдХреИрд╢реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ PHP рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд╣рд╛рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЪреЗрддрд╛рд╡рдиреА!
Filters::patch(true)
рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╕рднреА рдХреЛрдб рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрджрд┐ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИ, рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛ рдХреЗрд╡рд▓ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
Filters::patch([ 'A\ClassName', 'An\Example\ClassName::foo', 'A\Second\Example\ClassName' => ['foo', 'bar'], ], [ 'cachePath' => 'my/cache/path/jit', ]);
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИред
рдПрдкреАрдЖрдИ рдлрд╝рд┐рд▓реНрдЯрд░
рдЕрдм рдЬрдм JIT рдкреИрдЪ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдПрдХ рд▓реЙрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдПрдВ:
use Chaos\Filter\Filters; use Chaos\Database\Database; use Monolog\Logger; use Monolog\Handler\StreamHandler; $logger = new Logger('database'); $logger->pushHandler(new StreamHandler('my/log/path/db.log', Logger::WARNING)); Filters::apply(Database::class, 'query', function($next, $sql, $data, $options) use ($logger) { $logger->info('Ran SQL query: ' . $sql); return $next($sql, $data, $options); });
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреИрдУрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рд▓реЙрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдлрд┐рд▓реНрдЯрд░ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
github.com/crysalead/filter рдкрд░ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
AOP, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрддрд░ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдЕрдореВрд░реНрдд рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмреЗрдорд╛рдиреА рд╣реИрдВ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдврд╛рдВрдЪреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рджрд┐рди PHP рдкрд╣рд▓реВ-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЗрдЖрдИрдЯреА рдХреЛрдб рдкреИрдЪрд┐рдВрдЧ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд╣рд╛рдВ рд╕реАрдкреАрдпреВ рдУрд╡рд░рд╣реЗрдб рдХреЗ рдлрд╛рдпрджреЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЬреЗрдЖрдИрдЯреА рдХреЛрдб рдкреИрдЪрд┐рдВрдЧ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкреЗрдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрдд
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдХреБрдЫ рднреА, рд╕рд╡рд╛рд▓, рдПрдХ рдЗрдЪреНрдЫрд╛ рдФрд░
рдПрдХ рдЦреБрд▓реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡реНрдпрд╛рдЦреНрдпрд╛рди рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирдП
рд╢рд┐рдХреНрд╖рдХ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред