рдорд▓реНрдЯреАрд▓реЗрд╡рд▓ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбрд▓

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

рдЗрд╡реЗрдВрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╖реНрдкрд╛рджрди рдШрдЯрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдПрдВ (рдХреАрдмреЛрд░реНрдб, рдорд╛рдЙрд╕), рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдФрд░ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рд╕рдВрджреЗрд╢, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЗрд╡реЗрдВрдЯ рдЖрджрд┐ред
рдЗрд╡реЗрдВрдЯ рдореЙрдбрд▓ рдХреЗ рд▓рд╛рдн рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрддреНрдпрдВрдд рд╡рд┐рд╕реНрддреГрдд рд╣реИрдВ:

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

рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕реВрдЪреА рдкреВрд░реА рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрдВрдз рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдШрдЯрдирд╛ рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрди рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред
рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЪрд░рдгреЛрдВ рдХрд╛ рдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
  1. рдЖрд╡рд╢реНрдпрдХ рд╢реНрд░реЛрддрд╛ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред
  2. рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдореЗрдВ, рдПрдХ рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИред
  3. "рдкрд╣рд▓реЗ рджреМрд░" рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдордп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЛрддрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛, рдШрдЯрдирд╛ рдХреЗ рд╕рд░реНрдЬрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА "рджреВрд╕рд░реЗ рджреМрд░" рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП "рджреВрд╕рд░реЗ рджреМрд░" рдореЗрдВ рдЖрд╡реЗрджрди рдХрд░реЗрдВред
  4. рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдореЗрдВ, рд╢реНрд░реЛрддрд╛ рдЬреЛ рдЙрдЪреНрдЪрддрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣ "рджреВрд╕рд░реЗ рджреМрд░" рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╡рд╣ рд╕рд░реНрдЬрдХ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛, "рдкрд╣рд▓реЗ рджреМрд░" рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдЗрд╡реЗрдВрдЯ рд╕рд░реНрдЬрдХ рдХреЛ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд╛рднреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


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

рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
class SampleListener { public function Fire1(Event_fire1 $EF1) { $EF1->setFinal(Array($this,тАЭFire2тАЭ), $EF1->getListenerData()->sort); } public function Fire2(Event_fire2 $EF2) { return ($EF2->getListenerData()->sort() + $EF2->getFireData()->sort()); } } $listener = new SampleListener(); $data1 = new Events_Data(); $data1->sort = 10; Events::newListener("sampleModul", "sampleEvent", Array($listener, 'Fire1'))->setData($data1); $data2 = new Events_Data(); $data2->sort = 20; Events::newListener("sampleModul", "sampleEvent", Array($listener, 'Fire1'))->setData($data2); $data3 = new Events_Data(); $data3->sort = 30; Echo Events::newEvent("sampleModul", "sampleEvent")->setData($data3)->fire(); 

рдирдореВрдирд╛рдИрд╡реЗрдВрдЯ рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, $ рд╢реНрд░реЛрддрд╛ рдХреА Fire1 рд╡рд┐рдзрд┐ рдХреЛ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ (рд╕реЙрд░реНрдЯ = 10 рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЗрд╕ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдЕрдВрддрд┐рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛) , рдФрд░ рдлрд┐рд░ рдЙрд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдЕрдиреНрдп рдбреЗрдЯрд╛ (рд╕реЙрд░реНрдЯ = 20, 20> 10) рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╢реНрд░реЛрддрд╛ рдпрд╣ рдбреЗрдЯрд╛ рдШрдЯрдирд╛ рдХреЗ рдЕрдВрддрд┐рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛) ред рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдлрд╛рдпрд░ 2 рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣реИрдВрдбрд▓рд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ $ data2 рд╣реИ) ред рдШрдЯрдирд╛ рд╕реЗ рдбреЗрдЯрд╛ (рд╕реЙрд░реНрдЯ = 30) рд╢реНрд░реЛрддрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реЙрд░реНрдЯ = 20) ред рдирддреАрдЬрддрди, рдмрджрд▓реЗ рдореЗрдВ рдШрдЯрдирд╛ 50 рдирдВрдмрд░ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧреА, рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреАред

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╣реИрдВрдбрд▓рд░ рд╢реНрд░реЛрддрд╛ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА, рдлрд╛рдпрд░ 2 рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдХреЙрд▓ (рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐ рд╕рд╛рдЗрдЯ рдХрд╛ рдкреГрд╖реНрда рдбрд┐рдЬрд╛рдЗрди рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдШрдЯрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдмрд╛рд╣рд░реА рд╕рдВрджрд░реНрдн рд╣реИ) ред

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

рдЖрдк рдЗрд╕ рдореЙрдбрд▓ рдХреЛ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реАрдкреАрдкреА рдореЗрдВ, рдЖрдк рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд░реАрдЗрдВрдЯрд░рдкреНрд░рд┐рдЯ_рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЦреНрдп рдмрд┐рдВрджреБ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрддрд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдареАрдХ рд╣реИред

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


All Articles