Php рдореЗрдВ рд▓рд┐рдЦрдирд╛ ... рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ

PHP рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбрд╛рдпрдирд╛рдорд┐рдХ рдирд┐рд╣рд┐рдд рдХрдордЬреЛрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИред рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдореВрд▓реНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВред

рдХрдИ php рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдПрдХ "рдЬрдЯрд┐рд▓рддрд╛" рд╣реИред рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ: рд▓реЛрдЧ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ? рдФрд░ рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдХрдИ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реНрдЯреИрдЯрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рд╕рдЦреНрдд рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХреНрдпреЛрдВ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдмрд╣рд╕

рдореИрдВ рдЙрди рдЖрдзреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рдЬреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрдм рддрдХ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ (рд╕реА #) рдХреЛ рдмрд╛рд░реАрдХреА рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рддрдм рд╕реЗ, php рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рдЖрд▓реЗрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ "рдЯрд╛рдЗрдЯрдиреНрд╕" рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдФрд░ рдирдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛, рдФрд░ рдЖрдк рдмрд╛рдХреА рд▓реЛрдЧреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдХреЛрдб рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред



рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ:

рд╕реНрдЯреЗрдЯрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рдЕрдВрддрд┐рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╛рдиреА рдкрд╣рд▓реЗ рд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ 100% рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдкреНрд░рдХрд╛рд░ рдХрд╣рд╛рдБ рд╣реИред

Php рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ, рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред

PHP рдореЗрдВ рдпрд╣ рд╕рдм рдХреНрдпрд╛ рд╣реИ?


рдЧ # рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрд╕ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдмрд┐рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрднрд╡ рдФрд░ рдкреНрд░рд▓реЗрдЦрди (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╡рд╣рд╛рдБ рдХреЛрдИ рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рдерд╛), рдЗрд╕рдиреЗ рдореЗрд░реА рдорджрдж рдХреА, рд╕рдЦреНрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд▓рд╛рдн рдЖрдИрдбреАрдИ рд╕рдВрдХреЗрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдПред рдкреНрд░рдХрд╛рд░ рджрд┐рдП рдЧрдПред рдореБрдЭреЗ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдерд╛!

рдЗрд╕рдиреЗ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рддреБрд░рдВрдд рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдРрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, рдФрд░ рдЬрдм рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рд▓рд┐рдВрдХ рдЧрд╛рдпрдм рд╣реИрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ред

"рдареАрдХ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ," рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, "рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рд╣рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ, PHP рдореЗрдВ PHPDoc рд╣реИ, рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ IDE рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдордХреНрдЦреА рдкрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ!"

рд╕рдм рдХреБрдЫ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рди рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдФрд░ рд╡рд░реНрдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреВрд░реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИред рдРрд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдЧреЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рд╣рд╛рдБ, рдмрд┐рд▓реНрдХреБрд▓ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рддреНрдп рдирдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ: рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдУрдУрдкреА рдХрд╛ рдорд╛рд░реНрдЧред

рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рджреВрд╕рд░реА рддрд░рдл рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдкреНрд░рднрд╛рд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрдИ рдШрдЯрдирд╛ рдШрдЯрддреА рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

$eventData = array( 'sender' => $controller, //   'name' => 'onDelete', 'group' => 'global', 'arguments' => array( 'id' => 15 ), ); $eventDispatcher->triggerEvent($eventData); ... /** *    * @param array $eventData */ protected function onDelete($eventData) { //    $eventData   , //       var_dump() //        $model = $eventData['sender']->model->deleteChilds(); } 

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓рд╛, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рднреЗрдЬреЗрдВред

рдЕрдм рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЪреБрдиреМрддреА рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдо (рдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛, рд▓реЗрдХрд┐рди рдХрд▓ рдирд╣реАрдВ) рдХреЗ рдХрдЯреЛрд░реЗ рдореЗрдВ рдХрд╣реАрдВ рдЧрд╣рд░реА рд╣реИред

рдкреНрд░рд╕реНрддреБрдд? рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдЗрд╕ рд╕рд░рдгреА рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд░рдгреА рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЭрд╛рдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рдХреЙрд▓рд┐рдВрдЧ рдЕрдиреБрднрд╛рдЧ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЖрдк var_dump () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡рд╣рд╛рдВ рдЬреЛ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░реЗрдВрдЧреЗред

рдЖрдЗрдП рдЕрдм рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐, рдПрдХ рд╕рд░рдгреА рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреА рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВред рдХреЛрдб рдмрджрд▓реЗрдВ:

 class EventData { /** *  ,   * @var BaseController */ public $sender; /** *   * @var string */ public $name; /** *      () * @var string */ public $group; /** *     * @var array */ public $arguments; } $eventData = new EventData(); $eventData->sender = $controller; $eventData->name = 'onDelete'; $eventData->group = 'global'; $eventData->arguments = array('id' => 15); $eventDispatcher->triggerEvent($eventData); ... /** *    * @param EventData $eventData */ protected function onDelete($eventData) { $eventData->sender->model->deleteChilds(); } 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛? рдЕрдм рд╣рдорд╛рд░реА рдкрд╕рдВрджреАрджрд╛ рдЖрдИрдбреАрдИ рд╣рдореЗрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд╡рд╕реНрддреБ рдХреНрдпрд╛ рд╣реИред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░реЗрд╖рд┐рдд рд╡рд╕реНрддреБ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╕реНрддреГрдд рд╣реИ, рд╣рдо рддреБрд░рдВрдд рдЙрди рдкрд░ рд╕реБрдЭрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА $ EventData-> рдХрдВрдЯреНрд░реЛрд▓рд░-> рдЯрд╛рдЗрдк рдХрд░рдХреЗ - рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреНрд░реЛрд▓рд░ рдирд╛рдордХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ wilds рдореЗрдВ рдХрд╣реАрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд╕реНрддреБ рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрдЪрд░рд┐рдд рд╣реИ рдФрд░ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЖрднрд╛рд░реА рд╣реЛрдВрдЧреЗ!

рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ ActiveRecord рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдкреАрдЫрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рддрдХ, рдлрд┐рд░ рдЖрдкрдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ред

рдпрд╣ рдПрдХ рд╕рд░рд▓ рдФрд░ рдХрд╛рдлреА рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рд╢рд╛рдпрдж рдПрдХ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рд░рдгреА рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦреЗрдВ, рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреАрди-рдХрд╣рд╛рдиреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдЕрд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рджрд░реНрдЬрди рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХреВрдВрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░, рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ - рддрд░реНрдХ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред

рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдбрд░реЛ рдорддред рдпрджрд┐ рдЖрдк рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ EventArguments.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдКрдВрдЧрд╛, рдФрд░ рдЗрд╕рдореЗрдВ рдЗрд╡реЗрдВрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдБрдЧрд╛ред

UPD: рдореИрдВ рд╕рднреА рдХреЙрд▓ рдХреЛ рд╡рд╕реНрддреБрддрдГ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЙрд▓ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдирд╣реАрдВ рдХрд░рддрд╛, рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред

рд╡рд┐рдХрд┐ рд╕реЗ рдЙрджреНрдзрд░рдг:
рдПрдХ рд╕рд░рдгреА рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЗрд╕ рдирд╕ рдореЗрдВ рд╣реИ рдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдЬрд╛рддреАрдп рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рд╕реЗ рдЕрдЪреНрдЫреЗ рд╕реЗ рдЕрдзрд┐рдХ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП (рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП) рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмреАрдЪ рдХреА рд░реЗрдЦрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░ред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд:

  /** *   * @return array */ public function getChildren(){ if(!$this->isLeaf) { return $this->find('where id = :id', array(':id', $this->id)); } } ... foreach($model->getChildren() as $child) { //     } 

рдХреНрдпрд╛ рд╡рд╣ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? рдкреВрд░реА рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдпрджрд┐ рд╕реНрдерд┐рддрд┐! $ This-> isLeaf рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рд░рдгреА рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдореЗрдВ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдЧрд▓рдд рддрд░реНрдХ рдХреЗ рдХрд╛рд░рдг рдлреЙрд░реЗрдХреНрд╕ рдЧрд┐рд░ рди рдЬрд╛рдПред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  /** *   * @return array */ public function getChildren(){ //     ,     -   . //         ,     ,   . $children = array(); if(!$this->isLeaf) { $children = $this->find('where id = :id', array(':id', $this->id)); } return $children; } 

рдЕрдм, рдЕрдЧрд░ рд╣рд╛рд▓рдд! $ This-> isLeaf рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд┐рд╕ рдореВрд▓реНрдп рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рд╣реЛрдЧреА рд╡рд╣ рдЧрд┐рд░ рдЬрд╛рдПрдЧреА рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рд╣рд┐рдорд╢реИрд▓ рдХрд╛ рд╕рд┐рд░рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рд╡рд╛рдВрдЫрд┐рдд, рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЪрд░ рдХреЛ рддреБрд░рдВрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЖрдк рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдХреЛрдб рднреА рд▓рд┐рдЦреЗрдВ рдЬреЛ рдХреЛрдб рдХреА рдзрд╛рд░рдгрд╛ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддрд╛ рд╣реИред

рд╡реИрд╕реЗ, рдпрд╣ рди рдХреЗрд╡рд▓ php рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, V8 рдЗрдВрдЬрди рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЪрд░рдг рдореЗрдВ рдПрдХ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдВрдЬрди рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ)

рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЯреВрд▓ред


PHP рдореЗрдВ рдХрдордЬреЛрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╛рдиреА рдЖрдк рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╕реНрдХреЗрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рд╕рдорд╛рдирддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛ред рд╣рдо PHP рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, PHP рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ (рд╣рдореЗрд╢рд╛ рддрд╛рд░реНрдХрд┐рдХ рдирд╣реАрдВ) рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:

  public function triggerEvent(EventData $event) { //          EventData    } ... $dispatcher->triggerEvent(new EventData); //  $dispatcher->triggerEvent(new EventDataChild); //EventDataChild -  EventData,   $dispatcher->triggerEvent(new AnotherClass()); //Catchable fatal error: Argument 1 passed to EventDispatcher::triggerEvent() must be an instance of EventData, instance of new AnotherClass given 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛, рд╣рдордиреЗ рдЧрд▓рддреА рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЦреБрдж рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред PHP рд╕реНрд╡рдпрдВ рд╣реА рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред

Php.net/oop5.typehinting рдкреНрд░рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдореИрдиреБрдЕрд▓ рдХреЗ рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдЙрджреНрдзрд░рдг:

рдлрд┐рд▓рд╣рд╛рд▓, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдпрд╛ рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рд╡рд░реНрдЧ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ), рдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕, рдпрд╛ рд╕рд░рдгрд┐рдпрд╛рдБ (PHP 5.1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ), рдпрд╛ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ (PHP 5.4 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ) рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ NULL рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдмрд╛рдж рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдорд╛рдиреНрдп рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдХреЛрдИ рд╡рд░реНрдЧ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬ рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдорд╛рдиреНрдп рд╣реИрдВред
рдЯрд╛рдЗрдк рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░ рдЬреИрд╕реЗ рдЗрдВрдЯ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓рдХреНрд╖рдг рднреА рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред

рдКрдкрд░ рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛, рд╣рдо рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди PHP рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рднреА рд╕рдорд╛рдзрд╛рди рд╣реИред рдорд╛рдирдХ SPL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдХрдИ рдордиреЛрд░рдВрдЬрдХ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ:

рдЪреВрдВрдХрд┐ рдпреЗ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рд╣реИрдВ (рддреЗрд▓ рдордХреНрдЦрди рд╣реИ, рд▓реЗрдХрд┐рди php рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬрд╣рд╛рдВ int рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд░реНрдЧ рдирд╣реАрдВ - рдпрд╣ рдЕрдиреБрдореЗрдп рд╣реИ) рдЙрдиреНрд╣реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдмреВрд▓рд┐рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЖрдкрдХреЛ рдорд╛рдирдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реЗ рдХреЛрдб рдореЗрдВ рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдорд╛рдирдХ PHP рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ PECL рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдЬрд╣рд╛рдБ рднреА рд╕рдВрднрд╡ рд╣реЛ PHPDoc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


PHPDoc рдФрд░ IDE рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди PHP рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдмрдЪрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЙрдкрдХрд░рдг рд╣реИред

рдЪреВрдВрдХрд┐ рднрд╛рд╖рд╛ рдФрд░ рдЙрд╕рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдкрдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ IDE рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╡рд╣ рдХреМрди рд╕рд╛ рдЪрд░ рд╣реИред рддреЛ рдЙрд╕рдХреА рдорджрдж рдХрд░реЗрдВ - рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЖрдкрдХрд╛ рдЖрдИрдбреАрдИ рдЖрдкрдХреЛ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдзрдиреНрдпрд╡рд╛рдж рджреЗрдЧрд╛ред

рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреВрд░реНрдг рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдФрд░ рдХрджрдо рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рддрд░реАрдХрд╛ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ:
рдХрд┐рд╕реА рд╡рд░реНрдЧ рдХреА рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП;
рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдореЗрдВ рдпрд╣ рднреА рд╡рд░реНрдгрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд▓реМрдЯрддреЗ рд╣реИрдВред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рд╕реБрдЭрд╛рд╡ рдЬреЛ PHPDoc рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ (рдпрд╣ рд╕рдм рдиреЗрдЯрдмреАрдиреНрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ)

  //     , //         @return //  IDE             /** *      EventData * @return EventData */ public function getEventData(){ return new EventData(); } //   ,    ,     : //@return EventHandler[] //  -      . //   ,    ,      // //: /**    EventHandler * @return EventHandler[] */ public function getEventHandlers(){ return $this->handlers; } public function triggerEvent(){ foreach ($this->getEventHandlers() as $handler) { $handler; //   IDE  ,  $handler    EventHandler,     } } public function getModel(){ //      //(    .  ,      ) //   ,         .    : $model = NodeFactory::byId($id); /* @var $model Folder */ $model; //  IDE         Folder } 


рдирд┐рд╖реНрдХрд░реНрд╖


рдЬреЛ рднреА рдХреЛрдИ рднреА рдХрд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди PHP рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдмрди рдЧрдпрд╛ рд╣реИред рдбрд╛рдпрдиреЗрдорд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдореБрд╢реНрдХрд┐рд▓реЗрдВ рдЖрддреА рд╣реИрдВред



рд╕реНрдЯреЗрдЯрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреА рд╣реИред

рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рд▓рд╛рдЗрдХрдмреЗ рдХреЗ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд▓реЗрдХрд░ :
рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЬрд┐рдирдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЙрдиреНрд╣реЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрддрд╣рд╛рд╢рд╛ рдЙрддреНрд╕рд╛рд╣ рджреЗрддреА рд╣реИ, рдордЬрдмреВрдд рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЖрдЙрдЯрдкрд░рдлреЙрд░реНрдо рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдПрдВред рд╕рд╛рдЗрдЯ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╣рд▓ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЖ рд░рд╣реА рд╣реИред

рд╣рдо PHP рдХреЗ рд╕рдВрдмрдВрдз рдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╣рдо рд░рд╛рддреЛрдВрд░рд╛рдд рднреА рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рди рддреЛ рд╕рдордп рд╣реИ рдФрд░ рди рд╣реА рдЕрд╡рд╕рд░ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рд╛рде рд╣реА рд╕рд╛рде PHPDoc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рдо рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рджрд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рд▓рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЛ рдЬреЛрдбрд╝ рдкрд╛рдПрдВрдЧреЗ, рдФрд░ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓рд╛ рдЙрдкрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВрдЧреЗред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:


рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдкрд░ рд▓рд╛рдЗрдХрдмреЗрдЬрд╝
PHP рдореЗрдВ рдЯрд╛рдЗрдк рдХрдВрдЯреНрд░реЛрд▓
PHP рдПрд╕рдкреАрдПрд▓ рдкреНрд░рдХрд╛рд░
рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛)

Source: https://habr.com/ru/post/In162535/


All Articles