рдХрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореИрдЬрд┐рдХ рдФрд░ рдЬрдЯрд┐рд▓ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реБрдП рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдХреНрдпрд╛ рд╣реИ, рдХрд┐ рджреВрд╕рд░рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд▓рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмреБрд░рд╛рдИ рд╣реИ рдЬреЛ рдЖрдИрдбреАрдИ рдФрд░ рдбреЙрдХ рдХреЛ рд╣рдореЗрд╢рд╛ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ / рдмреЙрдбреА рдореЗрдВ рдкреНрд░рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗ рдХрд░ рдФрд░ OOP рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдХрд░ рдПрдХ рдирдореВрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдкрд░рд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред"рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░" рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рд╡рд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИред рдпрд╣ YAML рдпрд╛ XML рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рд╣реИред
рдХреНрдпреЛрдВ?
"рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░" рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЯрд╛рд░
рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдФрд░ рдЕрднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдХреБрдВрдЬреА рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЧрд▓рддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рддреБрд░рдВрдд рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реА рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ / рднреВрд▓ рдЧрдП рд╣реИрдВ, рд╣рдореЗрдВ рдбреЙрдХ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдирдВрдЧреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдЖрд░рдПрд╕ рдпрд╛ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдо рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЗ 90% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдВрдЧреЗ рд╕рд░рдгрд┐рдпрд╛рдВ рдЕрдзрд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░-рдЙрдиреНрдореБрдЦ рд╣реИрдВред
рд╡реЗ рдмрджрдорд╛рд╢ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдП?
рдПрдХ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ - рдХреНрдпрд╛ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ? рдУрд╣, рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ! рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдПрдХ, рджреВрд╕рд░реЗ, рддреАрд╕рд░реЗ рдЖрджрд┐ рдореЗрдВ рдмрдврд╝рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд░рд╛рдХреНрд╖рд╕ рдирд┐рдХрд▓рд╛, рдЬрд┐рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдорджрдж рдореЗрдВ рдпрд╣рд╛рдВ рдХреВрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдЬрдм рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдПрдХ рд▓рдЪреАрд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХрд╛рд░реА рд╡рд┐рд╖рдп рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реИрдВ
рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВред
рд╕реНрдЯреАрд╡ рдореИрдХрдХреЛрдиреЗрд▓
рдЬреЛ рдЕрдВрддрддрдГ рдкреНрд░рдпреЛрдЬреНрдп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред рдЬрдм рд╣рдо рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддрдм рднреА рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рддреБрдореНрд╣рд╛рд░рд╛ рдЗрди рд╕рднреА рдУрдУрдкреА рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдмреЗрд╢рдХ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ - рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрд░рд┐? рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдирдВрдЧреЗ рд╕рд░рдгреА рдХреБрдЫ рдмрд┐рд▓реНрдбрд░ рд╕реЗ рддреЗрдЬ рд╣реИред рдЖрдк рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рдХреИрд╢рд┐рдВрдЧ, рдЯреИрдореНрдкрдл, рдмрд┐рд▓реНрдб рдФрд░ рдЕрдзрд┐рдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ - рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рджрд╛рд╣рд┐рдиреЗ рджрд┐рдорд╛рдЧ рдХреЗ рдХреБрдЫ рд▓реЛрдЧ рдЬреЛрд╕ / рд╕реАрдПрд╕рдПрд╕ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рд▓реЛрдбреЗрдб рд╕рдВрд╕рд╛рдзрди рдкрд░ рдУрдкрдХреЛрдб рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рддреИрдирд╛рддреА рд╣реБрдХ рднреА рд╕рдВрднрд╡ рд╣реИрдВ рдЬреЛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдХреИрд╢ рдХреЛ рд╢реИрд▓реА рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:
$result = $someConfig->getFromCache(__FILE__ . __LINE__) or $result = $someConfig->...->get();
рдФрд░ рдЕрднреА рддрдХ
рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдбреЙрдХ рдкрдврд╝рдиреЗ рдкрд░ред рдЗрд╕реА рддрд░рд╣, рдЕрдЧрд░ рд╣рдо рдПрдХ рдирдП рдврд╛рдВрдЪреЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╣рдо рдХреЛрдб рдФрд░ рдЙрд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рдордЭреЗрдВ, рдмрдЬрд╛рдп рдбреЙрдХ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЧреЛрджреА рдкрдврд╝реЗрдВрдЧреЗ - рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╣реА рд╣реЛрдВрдЧреЗ рдЬрд╣рд╛рдБ рдЙрдирдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЬрдм рдЙрдирдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдкрд░ рдордБрдбрд░рд╛рддреЗ рд╣реИрдВред
рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?
рдЕрдВрдЬреАрд░ред 1. рдСрдЯреЛ-рдПрдбрд┐рд╢рди рдореЗрдВ, рд╣рдо рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдБ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рд╣реИред Yaml, xml рдФрд░ рдХрдЪреНрдЪреА рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИредрдЗрд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
Github рд╕реНрд░реЛрдд:
CakePHP рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдФрд░
рдореЙрдбреНрдпреВрд▓ ред CakePHP рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЛрдИ рдХреНрд╡реЗрд░реА-рдмрд┐рд▓реНрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╕рд░рдгреА-рдкрд░рдо-рдмрд┐рд▓реНрдбрд░ рд╣реИред рдХреБрдЫ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдЖрд╡рд░рдг рдХреА рддрд░рд╣ рдХреБрдЫред
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрдбрд╝ рд╕реЗ phpunit рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдХрд┐рд╕реА рднреА рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрднрд╡ рд╣реИ - рдПрдХ рдирдореВрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрдХрдкреАрдПрдЪрдкреА-рдореЙрдбреНрдпреВрд▓ рджреЗрдЦреЗрдВред рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг
рдЙрддреНрдкрд╛рджрди-рдЧреБрдгрд╡рддреНрддрд╛ рд╕реЗ рджреВрд░ рд╣реИрдВ рдФрд░ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдВрджреБ рдореМрдЬреВрдж рд╣реИрдВред
рдмрджрд▓рд╛рд╡ рдХрд╛
рд╢реАрд░реНрд╖рдХ:
рдПрдХ рдорд╛рдирд╡ рдЪреЗрд╣рд░реЗ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ? рдмрд┐рд▓реНрдбрд░! OOP "рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░" рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛
рд╕рд╛рдордЧреНрд░реА: "рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░" рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛, "рдХреЙрдиреНрдлрд┐рдЧрд░" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛