рдПрдХ рд╕рдордп рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдВрдХреАрд░реНрдг рджрд╛рдпрд░реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реЛрдмрд╛рд░ рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реЛрдЪрд╛ - рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЙрдкрд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдкреВрд░реЗ рдкрд░, рдЯреАрдо рдХрд░реАрдм-рдХрд░реАрдм рдереА рдФрд░ рдХреЛрдИ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рдерд╛ рдФрд░ рдХреЛрдИ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рдерд╛ред рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдХрд░реНрдордЪрд╛рд░реА рдмрдврд╝рдиреЗ рд▓рдЧреЗ рдФрд░ рдРрд╕рд╛ рд▓рдЧрдиреЗ рд▓рдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ - рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдзрд┐рдХ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдерд╛ред рд╣рдордиреЗ "рдмреЗрдХрд╛рд░" рдЪрд░реНрдЪрд╛рдУрдВ, рдЬрд╛рдВрдЪреЛрдВ, рдЕрддреНрдпрдзрд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдЖрджрд┐ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рд╕рдмрд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рдмрд╛рдд рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рд╣реИред рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ "рдмреБрджреНрдзрд┐рдорд╛рди рдФрд░ рдкреНрд░рд╛рдЪреАрди" рдиреЗ рд╢рд╛рдпрдж рд╕реИрдХрдбрд╝реЛрдВ, рд╣рдЬрд╛рд░реЛрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдХреНрдпрд╛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ? рдореИрдВрдиреЗ "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╢реИрд▓реА рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛"ред рдЖрдк рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдорд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрддрд┐рд░реЗрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд░рд╡рд┐рд╡рд╛рд░, 3:40 рдмрдЬреЗ
рдЗрд╕ рд╢реБрд░реБрдЖрддреА рд╕рдордп рдореЗрдВ, рдХрд╛рдо рдкрд░ рдмреИрдареЗ рдФрд░ рдЪрд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд░реЗрдХ рд▓реЗ рд░рд╣реЗ рдереЗ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдХрд▓ рдЖрдкрдХреЛ рдСрдлрд┐рд╕ рдЬрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рд╕реБрдмрд╣ 2 - 3 рдШрдВрдЯреЗ рдлрд┐рд░ рд╕реЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдлрд┐рд░ рдЕрдиреНрдп 5 рдШрдВрдЯреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрд▓ 5 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╢рд╛рдпрдж рдХрд╛рдо рдХрд░рдирд╛ 2 рдШрдВрдЯреЗ рдФрд░ рдШрд░ рдЪрд▓рд╛рдУред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬреЛ рдореИрдВрдиреЗ рд╢реЗрд╖ 2 - 3 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ, рдФрд░ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЖрджрд┐ред рдпрд╣ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ, рди рдХрд┐ "рд╕реЗрд░реНрдмрд╕" рдФрд░ рдореБрдЭреЗ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдкреВрд░реЗ рд╕рддреНрдпрд╛рдкрди рд╕рдордп рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдХрдо рдХрд░реЗрдВред
рдореИрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЦреЛрдЬ рдЗрдВрдЬрди рдХреА рдУрд░ рд░реБрдЦ рдХрд┐рдпрд╛ рдФрд░ рдкреВрдЫрд╛: "рдорд╛рдирдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ PHP", рд╢реАрд░реНрд╖ рджрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо "
PHP_Codesniffer " рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдФрд░ рдЙрд╕реА рдирд╛рдо рд╕реЗ рдкреВрдЫрд╛ - рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╢реИрд▓реА рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП PEAR рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдереАред , рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ - "рдбреЙрдХреНрдЯрд░ рдиреЗ рдХреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ!" рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рднрдХрд╛рд░реА рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛ред рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
pear install PHP_CodeSniffer-1.3.0RC1
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ PEAR рд╡рд┐рддрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдирдИ phpcs рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА:
phpcs --standard=Zend your.php
рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдорд╛рдирдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рд╕реНрдХреНрд╡рд┐рдЬрд╝, рдорд╛рдпрд╕реЛрд░реНрд╕, PHPCS, Zend, PEARред рдпрд╣ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдирд┐рдпрдд рд╕рдордп рдореЗрдВ рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо Zend рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
редрд░рд╡рд┐рд╡рд╛рд░ 4:00 рдмрдЬреЗ
рдЕрдкрдиреЗ рдЦреЛрдЬ рдФрд░ рдЗрд╕рдХреЗ рддреНрд╡рд░рд┐рдд "рдЙрджрдп" рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░, рд╕рдкрдирд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖред рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдм рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрдорд┐рдЯ рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдмрд╛рдХреА рд╣реИред PHP_CodeSniffer рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ
SVN рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдПрдХ рдЦрдВрдб рд╣реИ - рдпрд╣ рдЕрдЪреНрдЫрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо SVN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ GIT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЧрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╣реБрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ: "рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ PEAR рд╕рдорд╛рдзрд╛рди рдкрд░ рдПрдХреАрдХрд░рдг рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИ рдЬреАрдЖрдИрдЯреА рдХреЗ рд╕рд╛рдеред тАЭ рдФрд░ рдлрд┐рд░ рд╕реЗ, рдЦреЛрдЬ рдЗрдВрдЬрди рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реБрдП, рдореБрдЭреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди
phpcs- рдкреВрд░реНрд╡-рдХрдорд┐рдЯ рдорд┐рд▓реЗ :
git clone https://github.com/s0enke/git-hooks.git
рдЗрд╕ рд╣реБрдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реА-рдХрдорд┐рдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (.git / рд╣реБрдХ) рдХреЗ рд╣реБрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЧрд┐рдЯ рд╣реБрдХ рдореЗрдВ рдХреМрди рд░реБрдЪрд┐ рд░рдЦрддрд╛ рдерд╛, рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдПрдХ рд╣реИред
рдФрд░ рдкреНрд░рддрд┐рдмрджреНрдз рдХреА рдЖрдЦрд┐рд░реА рдЬрд╛рдВрдЪ, рдореБрдЭреЗ рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓реАред рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреВрдВрдЧрд╛ рдХрд┐ phpcs рддреНрд░реБрдЯрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдХреНрдпреЛрдВред .It / рд╣реБрдХ / рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
PHPCS_CODING_STANDARD=Zend
рдЪреЗрдХ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рднреА рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ:
PHPCS_FILE_PATTERN="\.(php|phtml)$"
рдпрджрд┐ рдЖрдкрдХреЛ рдХрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
error: cannot run .git/hooks/pre-commit: No such file or directory
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмреИрд╢ рдХрд░рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ .it / рд╣реБрдХ / рдкреНрд░реА-рдХрдорд┐рдЯ рдореЗрдВ рдмрджрд▓ рджреЗрдВ
рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдкреНрд▓рд╕ рдХреЛрдбрд╕рдирд┐рдлрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде "рдпреБрд╡рд╛" рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рджрд╛рдпрд┐рддреНрд╡ рд╣реИ рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ - рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдореБрдЦреНрдп рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реНрдЯрд╛рдЗрд▓ рддреНрд░реБрдЯрд┐ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдХреЛрдб рдХреЛ "рдпреБрд╡рд╛" рдмрдирд╛ рджреЗрдЧрд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдиреНрдпреВрдирддрдо рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░реЗрдЧрд╛ред
рдЕрдм рдЖрдк рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдХрд╛рдо рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд▓реЙрдмреА рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рд╕реЛрдорд╡рд╛рд░, 17:00 рдмрдЬреЗ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛, рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╡рд╣ рдмрд╣реБрдд рдкреНрд░рд╛рдЪреАрди рдерд╛ рдФрд░ рдпрд╣ рдХреБрдЫ рдорд╛рдирдХреЛрдВ рдХреЛ Zend рдорд╛рдирдХ рдкрд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рднрд╣реАрди рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ рдХреА рдКрдВрдЯ рд╢реИрд▓реАред рдФрд░ рдореБрдЭреЗ PHP_Codesniffer рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдорд╛рдирдХ рдмрдирд╛рдирд╛ рдерд╛ред рд╢реИрд▓реА рдХреА рдЬрд╛рдБрдЪ рд╡рд┐рд╡рд░рдг рд╕реНрд╡рдпрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ:
PEAR_PATH/PHP/CodeSniffer/Standards/
PEAR_PATH рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ PEAR рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИ, рд╡реЗ / usr / рд╕реНрдерд╛рдиреАрдп / рд╢реЗрдпрд░ / рдирд╛рд╢рдкрд╛рддреА / рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред
рдЕрдкрдиреА рдЦреБрдж рдХреА рд╢реИрд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, PEAR_PATH / PHP / CodeSniffer / Standard / рдореЗрдВ рдЕрдкрдиреЗ_рд╕рд╣рд╛рдп рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред
рдЕрдкрдиреЗ рд╕реНрдЯрд╛рдЗрд▓ рдкреИрдХ рдореЗрдВ, ruleset.xml рдмрдирд╛рдПрдВред рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдХреЗрд╡рд▓ рд╡рд╣реА рдмрддрд╛рдКрдВрдЧрд╛ рдЬреЛ рдореЗрд░реЗ рдХрд╛рдо рдЖрдпрд╛ред
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ Zend рд╢реИрд▓реА рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рд╣реИ, рдореИрдВрдиреЗ рдмрд╕ PEAR_PATH / PHP / CodeSniffer / Standard / Zend / ruleset.xml рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ:
<?xml version= "1.0" ?>
<ruleset name= "Zend" >
<description>A coding standard based on an early Zend Framework coding standard. Note that this standard is out of date.</description>
<!-- Include some sniffs from all around the place -->
<rule ref = "Generic.Functions.FunctionCallArgumentSpacing" />
<rule ref = "Generic.Functions.OpeningFunctionBraceBsdAllman" />
<rule ref = "Generic.PHP.DisallowShortOpenTag" />
<rule ref = "Generic.WhiteSpace.DisallowTabIndent" />
<rule ref = "PEAR.Classes.ClassDeclaration" />
<rule ref = "PEAR.ControlStructures.ControlSignature" />
<rule ref = "PEAR.Functions.FunctionCallSignature" />
<rule ref = "PEAR.Functions.ValidDefaultValue" />
<rule ref = "PEAR.WhiteSpace.ScopeClosingBrace" />
<rule ref = "Squiz.Functions.GlobalFunction" />
<!-- Lines can be 80 chars long , show errors at 120 chars -->
<rule ref = "Generic.Files.LineLength" >
<properties>
<property name= "lineLimit" value = "120" />
<property name= "absoluteLineLimit" value = "140" />
</properties>
</rule>
<!-- Use Unix newlines -->
<rule ref = "Generic.Files.LineEndings" >
<properties>
<property name= "eolChar" value = "\n" />
</properties>
</rule>
</ruleset>
рдирд┐рдпрдореЛрдВ рдХреЗ рдЯреИрдЧ рдореЗрдВ, рдЕрдкрдиреЗ рдирд╛рдо рдХреЛ рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ рдФрд░ Zend рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ:
<rule ref = "Zend.Debug.CodeAnalyzer" />
рдКрдВрдЯ-рд╢реИрд▓реА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реВрдВ:
PEAR_PATH / PHP / CodeSniffer / Standards / Zend / Sniffs / NamingConventions / ValidVariableNameSniff.php PEAR_PATH / PHP / CodeSniffer / рдорд╛рдирдХреЛрдВ / your_STYLE / Sniff / NamingConventions / ValidVariableName рдирд╛рдо рдореЗрдВред Zend_Sniffs_NamingConventions_ValidVariableNameSniff рд╕реЗ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Your_STYLE_Sniffs_NamingConventions_ValidVariableNameSniff рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
public $isCheckCamelCaps;
рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рд░ рдЬрдЧрд╣ рдЗрд╕ "рдзреНрд╡рдЬ" рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛ред рдЕрдм рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рддреЛ рдЗрд╕реЗ ruleset.xml рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<rule ref = "YOUR_STYLE.NamingConventions.ValidVariableName" >
<properties>
<property name= "isCheckCamelCaps" value = "1" />
</properties>
</rule>
рдордВрдЧрд▓рд╡рд╛рд░, 19:00 рдмрдЬреЗ
рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЖрдВрдЦреЗрдВ рдмрдВрдж рдереАрдВ, рд▓реЗрдХрд┐рди рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдо рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП! рдХреЛрдб рд╢реИрд▓реА рдХреА рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдВрдЪ рдХреЛрдб рдХреА рд░реЗрдЦрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реА рдереА, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХрдИ рдЕрдкрдардиреАрдп рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдирд╡реАрдиреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдЪ рд╣реИ, рдореБрдЭреЗ рд░реВрд╕реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдкреВрд░реЗ рдХреЛрдб рдХреЛ рдпреВрдЯреАрдПрдл -8 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреЛрдбрд╕реНрдирд┐рдлрд░ рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рджреЛрдЧреБрдиреА рдереАрдВред рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕ рдУрд╡рд░рд░рд╛рдЗрдбреНрд╕ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл PEAR_PATH / PHP / CodeSniffer / Standard / Generic / Sniffs / Files / LineLengthSniff.php рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
public $charset = 'UTF-8' ;
рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
mb_strlen($lineContent, $ this ->charset)
рд╢рдирд┐рд╡рд╛рд░
рдпрд╣ CodeSniffer рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╕рд╛рди рд╕рдкреНрддрд╛рд╣ рдирд╣реАрдВ рдерд╛, рдФрд░ рдпрд╣рд╛рдБ рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╣реИрдВ:
- рдХреЛрдб рд╢реИрд▓реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛рдУрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдЬрдм рд▓рд╛рдЗрди рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЛрдб рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдФрд░ рдореИрд▓рд╛ рддрд░реНрдХ рдХреА рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рдкрд░ рд▓рд╛рднрдХрд╛рд░реА рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рднреА рджреВрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдЕрдЧрд░ рдЕрдЪреНрдЫреА рд╣реИ рдФрд░ рдХрдм рдЦрд░рд╛рдм;
- рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдмрд╛рдзреНрдпрддрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
- рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдкрдХреНрд╖:
- рдХрд┐рд╕реА рдФрд░ рдХреЛ "рдРрддрд┐рд╣рд╛рд╕рд┐рдХ" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЖрдк рдЗрдХреЗрдмрд╛рдирд╛ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдХрдИ рджрд┐рди рдпрд╛ рд╕рдкреНрддрд╛рд╣ рднреА рдмрд┐рддрд╛ рд╕рдХрддреЗ рд╣реИрдВ;
- рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдЖрдк рдЬреАрдЖрдИрдЯреА рдпрд╛ рдПрд╕рд╡реАрдПрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЙрдарддреЗред рдЦрд╛рд╕рдХрд░ рдЬрдм рдХрдИ рджрд░реНрдЬрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдФрд░ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред