SOA рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рд╕реЗрд╡рд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП 2 рд▓рд┐рдВрдХ рд╕реЗ рд╕рдВрдХреНрд░рдордг

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



рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


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



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



рдереЛрдбрд╝рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ






рдкреНрд░рддрд┐рдмрдВрдз


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

рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдПрдХ рд╕рдордп рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ 2Gis рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдерд╛ред рдЖрдк рдЖрд╡реЗрджрди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд┐рдирд┐рдпрд╛рдиреНрдЯрд┐рдЬрд╝рд┐рд▓рд░ ред 2amigos рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕реЗ рд╕рдм рдХреБрдЫ рд▓реЗрдиреЗ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдХреЛ рдореМрдЬреВрджрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ Yii рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдирд╛ рдерд╛



SOA рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛





рдЖрд░реЗрдЦ рдкрд░ 2 рдЖрдВрддрд░рд┐рдХ рдкрд░рддреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреЛрд░ рдФрд░ рдкреЛрд░реНрдЯрд▓

рдХреЛрд░ - рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рдкрд░рдд, рдкреНрд▓рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП yii, рдмреЗрд╣рдЯ, рд░реИрдЪрд░, рд╕рд╛рде рд╣реА рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред

рдкреЛрд░реНрдЯрд▓ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд░реЗрдЦ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдкрд░рдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЕрдзрд┐рдХ


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



рд╡рд┐рдиреНрдпрд╛рд╕ рднрдВрдбрд╛рд░рдг yiinitializr рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдорд╛рд░реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдирд┐рдореНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ:



рд╕рд╛рдорд╛рдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ ApplicationDispatcher рдШрдЯрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рддреИрдпрд╛рд░реА, рдЖрдВрддрд░рд┐рдХ рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛, рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рд▓реЙрдЧ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдПред



рдШрдЯрдХ index.php рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ



рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ index.php
//    if(!file_exists('/usr/share/ntk-rm-common/protected/components/ApplicationDispatcher.php')) {    throw new Exception('   ntk-rm-common'); } require_once('/usr/share/ntk-rm-common/protected/components/ApplicationDispatcher.php');   //      $dispatcher = ApplicationDispatcher::getInstance(); //   :    $dispatcher->setEnvironment(ApplicationDispatcher::ENV_PRODUCTION); //    $dispatcher->setApplicationType(ApplicationDispatcher::APP_TYPE_WEB); //     $dispatcher->create('crm')->run();
      
      







рд╡рд┐рдзрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдмрдирд╛рдПрдБ
  /** *    * @param $service -    * @return mixed * @throws Exception */ public function create($service) { $this->service = $service; if(empty($this->app_type)) { throw new Exception('  : web  console'); } //    require_once $this->getBasePath('common') . '/helpers/global.php'; $config = $this->prepareConfig(); //        $config['runtimePath'] = $this->getRuntimePath($service); //       - protected $config['basePath'] = $this->getBasePath($service); $this->setAliases(); if ($this->app_type == self::APP_TYPE_WEB) { $this->app = Yii::createWebApplication($config); //    $this->setRoutes(); //     assets     $basePath = $this->getHtdocsPath($this->service) . '/assets/'; $this->app->getAssetManager()->setBasePath($basePath); } else { defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); $this->app = Yii::createConsoleApplication($config); } return $this->app; }
      
      







рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реНрдХ Yii-Boilerplate рдпрд╛ Yiinitializr рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЗ рдмрд╣реБрдд рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ
  /** *    . * @return array|mixed * @throws Exception -         */ private function prepareConfig() { if (!$this->isExistsServiceConfig()) { throw new Exception('   ┬л' . $this->getServiceConfigName() . '┬╗  .   .'); } //    $service_configs = array( '/' . $this->service . '.' . $this->app_type . '.php', '/env/local.php' ); $config = $this->mergeConfigs(array(), $service_configs , $this->getConfigPath(($this->service))); //    $common_configs = array( '/env/local.php', '/common.base.php', $this->app_type == self::APP_TYPE_WEB ? '/common.web.php' : '/common.console.php', ); $config = $this->mergeConfigs($config, $common_configs, $this->getConfigPath('common')); //   backend  $backend_configs = array( '/php-backend.base.php', '/env/local.php', ); $config = $this->mergeConfigs($config, $backend_configs, $this->getConfigPath('php-backend')); return $config; }
      
      







рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛


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



Phing рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ


рдлрд╝рд┐рдВрдЧ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ:



рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рдирдореВрдирд╛ рдХреЛрдб
  <!-- ============================================ --> <!-- Target: prepare --> <!-- ============================================ --> <target name="prepare" depends="clean"> <echo msg="    " /> <mkdir dir="${project.packageDir}" /> <copy todir="${project.packageDir}"> <fileset dir="${project.basedir}/debian"> <include name="**/*" /> <exclude name=".svn" /> <exclude name="cron.d/" /> <exclude name="cron.d/*" /> </fileset> </copy> <exec command="svn info | grep 'URL: '" outputProperty="project.tmp.svnInfo" /> <php expression="end(explode(': ', '${project.tmp.svnInfo}'));" returnProperty="project.tmp.svnUrl" /> <echo msg="    SVN" /> <exec command="rm -Rf ${project.packageDir}/var/www/ntk-rm-crm/*" /> <exec command="svn export --force ${project.tmp.svnUrl} ${project.packageDir}/export/"/> <echo msg="     - /var/www/ntk-rm-crm/htdocs/" /> <mkdir dir="${project.packageDir}/var/www/ntk-rm-crm/" /> <copy todir="${project.packageDir}/var/www/ntk-rm-crm/htdocs/" > <fileset defaultexcludes="false" expandsymboliclinks="true" dir="${project.packageDir}/export/htdocs/"> <include name="**/*" /> </fileset> </copy> <mkdir dir="${project.packageDir}/var/www/ntk-rm-crm/htdocs/assets/" /> <copy file="${project.packageDir}/var/www/ntk-rm-crm/htdocs/index-prod.php" tofile="${project.packageDir}/var/www/ntk-rm-crm/htdocs/index.php" overwrite="true" /> <delete file="${project.packageDir}/var/www/ntk-rm-crm/htdocs/index-prod.php" /> <echo msg="     /usr/share/ntk-rm-crm/protected/" /> <mkdir dir="${project.packageDir}/usr/share/ntk-rm-crm/protected/" /> <copy todir="${project.packageDir}/usr/share/ntk-rm-crm/protected/" > <fileset defaultexcludes="false" expandsymboliclinks="true" dir="${project.packageDir}/export/protected/"> <include name="**/*" /> <exclude name="configs/*" /> <exclude name="**/yiic*" /> </fileset> </copy> <delete dir="${project.packageDir}/usr/share/ntk-rm-crm/protected/configs/" includeemptydirs="true" /> <echo msg="  yiic.php   " /> <copy file="${project.packageDir}/export/protected/yiic-prod.php" tofile="${project.packageDir}/usr/share/ntk-rm-crm/protected/yiic.php" overwrite="true" /> <copy file="${project.packageDir}/export/protected/yiic-prod" tofile="${project.packageDir}/usr/bin/ntk-rm-crm" overwrite="true" /> <echo msg="     /etc/ntk-rm-crm/" /> <mkdir dir="${project.packageDir}/etc/ntk-rm-crm/" /> <copy todir="${project.packageDir}/etc/ntk-rm-crm/" > <fileset defaultexcludes="false" expandsymboliclinks="true" dir="${project.packageDir}/export/protected/configs/"> <include name="**/*" /> <exclude name="**/crm.test.php" /> <exclude name="**/local.default.php" /> </fileset> </copy> <echo msg="     /usr/share/doc/ntk-rm-crm/" /> <mkdir dir="${project.packageDir}/usr/share/doc/ntk-rm-crm/" /> <copy file="${project.packageDir}/export/protected/configs/env/local.default.php" tofile="${project.packageDir}/usr/share/doc/ntk-rm-crm/local.default.php" overwrite="true" /> <echo msg=" cron- /etc/cron.d/ntk-rm-crm" /> <copy file="${project.basedir}/debian/cron.d/ntk-rm-crm" tofile="${project.packageDir}/etc/cron.d/ntk-rm-crm" overwrite="true" /> <echo msg="    /var/log/ntk-rm-crm/" /> <mkdir dir="${project.packageDir}/var/log/ntk-rm-crm/" /> <echo msg="     /var/tmp/ntk-rm-crm/" /> <mkdir dir="${project.packageDir}/var/tmp/ntk-rm-crm/" /> <echo msg="  export" /> <delete dir="${project.packageDir}/export/" includeemptydirs="true" /> </target>
      
      









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


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



рд▓реЗрдЦ рдХреЗрд╡рд▓ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИред рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ рддреЛ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдБ SOA рдкреНрд░рддрд┐рдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:




All Articles