LoadingтАж

рдЗрд╕ PHP рдлреЙрд░реНрдореЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдСрдирд▓рд╛рдЗрди PHP рдмреНрдпреВрдЯрд┐рдлрд╛рдпрд░

рд▓реЗрдЧреЗрд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕, рдХреНрд╡рд┐рдХ рд╣реИрдХреНрд╕ рдпрд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯреЗрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ PHP рдХреЛрдб рдорд┐рд▓рд╛? рдпрд╣ рдСрдирд▓рд╛рдЗрди PHP рдлреЙрд░реНрдореЗрдЯрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PHP рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде Prettier рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ PSR-12тАУрд╢реИрд▓реА рдЖрдЙрдЯрдкреБрдЯ рд╕реБрд╕рдВрдЧрдд рдЗрдВрдбреЗрдВрдЯреЗрд╢рди, рд╕реНрдкреЗрд╕рд┐рдВрдЧ рдФрд░ рдРрд░реЗ рдХреЗ рд╕рд╛рде рд╕реЗрдХрдВрдбреЛрдВ рдореЗрдВ рджреЗрддрд╛ рд╣реИред Laravel, Symfony, WordPress, APIs рдФрд░ CLIs рдХреЗ рд▓рд┐рдП рдкрд░рдлреЗрдХреНрдЯред

рдпрд╣ PHP рдлреЙрд░реНрдореЗрдЯрд░ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

  • рдЖрдзреБрдирд┐рдХ PHP рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП PSR-12тАУрд╕рдВрд░реЗрдЦрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ
  • Prettier + @prettier/plugin-php рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕реНрдерд┐рд░, рдирд┐рд╢реНрдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП
  • рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░, рд╕реНрдкреЗрд╕ рдмрдирд╛рдо рдЯреИрдм, рдФрд░ рд░реИрдк / рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рдХреЗ рд╡рд┐рдХрд▓реНрдк
  • рд╕реНрдкреЗрд╕рд┐рдВрдЧ, рдЗрдВрдбреЗрдВрдЯреЗрд╢рди, рдРрд░реЗ, рдХрдВрдЯреНрд░реЛрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдФрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ
  • .php, .phtml, .php5, .php4 рдФрд░ .inc рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рддреЗрдЬрд╝ рдЗрди-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрдбрд╝рдиреЗ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмреИрдХрдПрдВрдб рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде
  • Laravel, Symfony, WordPress, рдХрд╕реНрдЯрдо рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓реЗрдЧреЗрд╕реА рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░реАрди

ЁЯФз 4 рдЪрд░рдгреЛрдВ рдореЗрдВ PHP рдХреЛрдб рдХреЛ рд╕реБрдВрджрд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ for php-formatter

1

1. рдЕрдкрдирд╛ рдХреЛрдб рдкреЗрд╕реНрдЯ рдпрд╛ рдбреНрд░реЙрдк рдХрд░реЗрдВ

рдЕрдкрдирд╛ PHP рдХреЛрдб рдПрдбрд┐рдЯрд░ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдпрд╛ `.php` / `.phtml` / `.inc` рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдХрд░реЗрдВред рдЯреВрд▓ PHP рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред

2

2. рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдЕрдкрдирд╛ рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ рдЪреБрдиреЗрдВ, рд╕реНрдкреЗрд╕ рдпрд╛ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдкрд╕рдВрджреАрджрд╛ рд░реИрдк / рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рдЪреБрдиреЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ PSR-12тАУрд╢реИрд▓реА рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдЪрд┐рдд рд╣реИрдВред

3

3. "рдлрд╝реЙрд░реНрдореЗрдЯ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ Prettier рдХреЗ PHP рдЗрдВрдЬрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП **рдлрд╝реЙрд░реНрдореЗрдЯ** рджрдмрд╛рдПрдВред рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рд▓рдЧрднрдЧ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

4

4. рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдХреЙрдкреА рдХрд░реЗрдВ, рдФрд░ рдХрдорд┐рдЯ рдХрд░реЗрдВ

рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЕрдкрдиреЗ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдпрд╛ `.php` рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рдбрд┐рдлрд╝реНрд╕ рдХреЛ рд╕рд╛рдл рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдл рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрдорд┐рдЯ рдХрд░реЗрдВред

рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдПрдБ

рдорд╛рдирдХ рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдорд░реНрдерди

PHP рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЛ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдЖрдзреБрдирд┐рдХ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реБрд╡рд┐рдзрд╛рд╕рдорд░реНрдерд┐рддрдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
PSR-12 рд╕рдВрд░реЗрдЦрдгтЬЕ рд╣рд╛рдБPSR-12 рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд┐рд╢реНрдЪрд┐рдд рд╢реИрд▓реАред
PHP 7+ рд╕рд┐рдВрдЯреИрдХреНрд╕тЬЕ рд╣рд╛рдБрдиреЗрдорд╕реНрдкреЗрд╕, рд╕реНрдХреЗрд▓рд░ рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯреНрд╕, рд░рд┐рдЯрд░реНрди рдЯрд╛рдЗрдкреНрд╕, рдирд▓рдПрдмрд▓ рдЯрд╛рдЗрдкреНрд╕, рдЖрджрд┐ред
PHP 8+ рд╕реБрд╡рд┐рдзрд╛рдПрдБтЬЕ рд╣рд╛рдБрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕, рдпреВрдирд┐рдпрди рдЯрд╛рдЗрдкреНрд╕, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреНрд░рдореЛрд╢рди, рдореИрдЪ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕, рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдиреНрд╕ред
рд╢реЙрд░реНрдЯ рдРрд░реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕тЬЕ рд╣рд╛рдБрдЬрд╣рд╛рдБ рдЙрдЪрд┐рдд рд╣реЛ, рдРрд░реЗ рдХреЛ рдЖрдзреБрдирд┐рдХ `[ ... ]` рд╢реИрд▓реА рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред
рд╣реЗрд░реЗрдбреЙрдХ / рдирд╛рдЙрдбреЙрдХтЬЕ рд╣рд╛рдБрдЖрд╕рдкрд╛рд╕ рдХреА рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЛ рд╕рд╛рдл рдХрд░рддреЗ рд╣реБрдП рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИред
рдорд┐рд╢реНрд░рд┐рдд PHP + HTMLтЬЕ рд╣рд╛рдБрдПрдореНрдмреЗрдбреЗрдб HTML рд╡рд╛рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп `.php` рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдлрд╛рдИ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдирд┐рдпрдо

Prettier рдХрд╛ PHP рдЗрдВрдЬрди рдХреЗрд╡рд▓ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИтАФрдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИред

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

рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди рдореЙрдбрд▓ рдФрд░ рд╕реАрдорд╛рдПрдБ

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреЗрдЬрд╝ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкрд╣рд▓реВрдореВрд▓реНрдп / рд╡реНрдпрд╡рд╣рд╛рд░рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди рдЗрдВрдЬрдиPrettier + @prettier/plugin-phpрдЬрдм рднреА рдкреНрд▓рдЧрдЗрди рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
рдлреЙрд▓рдмреИрдХрд╕реБрд░рдХреНрд╖рд┐рдд `/api/php-formatter` рдмреИрдХрдПрдВрдбрдХреЗрд╡рд▓ рддрднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм PHP рдкреНрд▓рдЧрдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред
рдЯрд╛рдЗрдордЖрдЙрдЯ~25 рд╕реЗрдХрдВрдбрдпрджрд┐ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рддреЛ рдЕрдиреБрд░реЛрдз рд░рджреНрдж рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХрддрдо рдЗрдирдкреБрдЯ рдЖрдХрд╛рд░ (рдЯреЗрдХреНрд╕реНрдЯ)~2 MBрдлреЙрд░реНрдореЗрдЯрд░ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рд╣рд╛рд░реНрдб рдЧрд╛рд░реНрдбрд░реЗрд▓ред
рдЕрдзрд┐рдХрддрдо рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ (рдЕрдкрд▓реЛрдб)~5 MBрдЯреВрд▓ рдХреЗ `maxFileSizeBytes` рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рддред
рдмрдбрд╝реЗ рдореЛрдиреЛрд░реЗрдкреЛ рдпрд╛ рдмрд▓реНрдХ рд░рд┐рдлреИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ Prettier рдпрд╛ PHP-CS-Fixer рдЪрд▓рд╛рдПрдВред

рдЧреЛрдкрдиреАрдпрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛

рдпрд╣ рдЯреВрд▓ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред

рдкрд╣рд▓реВрд╡реНрдпрд╡рд╣рд╛рд░
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧрдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ Prettier рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛редрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднреЗрдЬрдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рдмреИрдХрдПрдВрдб рдлреЙрд▓рдмреИрдХрдпрджрд┐ PHP рдкреНрд▓рдЧрдЗрди рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдб HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИредрдХреЗрд╡рд▓ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рддред
рд╕рдВрдЧреНрд░рд╣рдгрдХрдЪреНрдЪреЗ рдЗрдирдкреБрдЯ рдХреЗ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИредрдХреЗрд╡рд▓ рдПрдХрддреНрд░рд┐рдд рддреНрд░реБрдЯрд┐/рдкреНрд░рджрд░реНрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕рдХрд┐рд╕реА рднреА рдСрдирд▓рд╛рдЗрди рдлреЙрд░реНрдореЗрдЯрд░ рдореЗрдВ рд╕реАрдХреНрд░реЗрдЯреНрд╕, рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдкреЗрд╕реНрдЯ рди рдХрд░реЗрдВредрд╕реБрд░рдХреНрд╖рд╛-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЯреВрд▓реНрд╕ рдФрд░ CI рдкрд░ рд░рдЦреЗрдВред

рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди PHP рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ (Prettier рдФрд░ PHP-CS-Fixer)

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

Node / npm

PHP рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде Prettier рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

npm install --save-dev prettier @prettier/plugin-php

рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Prettier рдФрд░ рдЙрд╕рдХрд╛ PHP рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдПрдХрд▓ PHP рдлрд╝рд╛рдЗрд▓ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ

npx prettier --write src/Example.php --parser php

рдЗрд╕ рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдорд╛рди рд╢реИрд▓реА рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА PHP рдлрд╝рд╛рдЗрд▓реЗрдВ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ

npx prettier "src/**/*.php" --parser php --write

рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдлреЙрд░реНрдореЗрдЯреЗрдб рд░рдЦрддрд╛ рд╣реИред

PHP-CS-Fixer

Composer рдХреЗ рд╕рд╛рде PHP-CS-Fixer рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

composer global require friendsofphp/php-cs-fixer

рдЖрдкрдХреЗ CLI рдЯреВрд▓рдХрд┐рдЯ рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА PHP-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдлрд┐рдХреНрд╕рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

PSR-12 рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ

php-cs-fixer fix src --rules=@PSR12

`src` рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕рднреА PHP рдлрд╛рдЗрд▓реЛрдВ рдкрд░ PSR-12 рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рддреНрд╡рд░рд┐рдд рдПрдХ-рдмрд╛рд░ рдХреА рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдкрдиреА рдкреВрд░реА рдЯреАрдо рдХреЛ рдПрдХ рд╣реА рд╕реНрдЯрд╛рдЗрд▓ рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП CI рдФрд░ рдкреНрд░реА-рдХрдорд┐рдЯ рд╣реБрдХ рдореЗрдВ Prettier рдпрд╛ PHP-CS-Fixer рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВред

PHP рдмреНрдпреВрдЯрд┐рдлрд╛рдпрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ

Laravel / Symfony / API рдмреИрдХрдПрдВрдб

рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдпрд╛ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХрдВрдЯреНрд░реЛрд▓рд░, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ DTOs рдХреЛ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдХрд░реЗрдВред

  • HTTP рдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдлреЙрд░реНрдо рд╣реИрдВрдбрд▓рд░ рдХреЗ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВред
  • рдЯреАрдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред
  • рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдФрд░ APIs рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╕реНрдЯрд╛рдЗрд▓ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
// Before
class OrderController extends Controller{public function store(Request $request){$order=$this->service->create($request->all());return response()->json($order,201);}}
// After
class OrderController extends Controller
{
  public function store(Request $request)
  {
    $order = $this->service->create($request->all());

    return response()->json($order, 201);
  }
}

WordPress рдФрд░ рд▓реАрдЧреЗрд╕реА рдХреЛрдбрдмреЗрд╕

рд╕рдм рдХреБрдЫ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдкреБрд░рд╛рдиреЗ PHP 5 / 7 рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЖрдзреБрдирд┐рдХ рдорд╛рдирдХреЛрдВ рдХреЗ рдХрд░реАрдм рд▓рд╛рдПрдВред

  • рдбреАрдмрдЧрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдереАрдо рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдХреЛ рд╕реБрдВрджрд░ рдмрдирд╛рдПрдВред
  • рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдореИрд╕реА, рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред
  • рд▓реАрдЧреЗрд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ PSR-12 рдкрд░рдВрдкрд░рд╛рдУрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдВред

рд╢рд┐рдХреНрд╖рдг рдФрд░ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛рдПрдВ

рдмреНрд░реИрд╕ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рдмрдЬрд╛рдп рддрд░реНрдХ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

  • рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдХрд┐ рд╕реБрд╕рдВрдЧрдд рд╕реНрдЯрд╛рдЗрд▓ рдкрдардиреАрдпрддрд╛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рддреА рд╣реИред
  • рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ/рдмрд╛рдж рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред
  • рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЛрдб рдирдореВрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рд╕реИрдирд┐рдЯреА рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
// Example exercise: ask students to predict the formatted result
if($user&&$user->isAdmin()){logAction($user,"login");}

тЭУ Frequently Asked Questions

тЭУрдХреНрдпрд╛ рдпрд╣ рдЯреВрд▓ рдЖрдзреБрдирд┐рдХ PHP 8 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

рд╣рд╛рдБред рдлреЙрд░реНрдореЗрдЯрд░ рдЖрдзреБрдирд┐рдХ PHP рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯреНрд╕, рдпреВрдирд┐рдпрди рдЯрд╛рдЗрдкреНрд╕, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреНрд░рдореЛрд╢рди, рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕, рдореИрдЪ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕ рдФрд░ рдПрд░реЛ рдлрдВрдХреНрд╢рдиреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

ЁЯФзрдХреНрдпрд╛ рдореИрдВ рдЯреИрдм рдЪреМрдбрд╝рд╛рдИ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рд╕реНрдкреЗрд╕ рдХреЗ рдмрдЬрд╛рдп рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдмрд┐рд▓реНрдХреБрд▓ред рдЖрдк рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ (1тАУ8) рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрдкреЗрд╕ рдпрд╛ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдлреЙрд░реНрдореЗрдЯрд░ рдЖрдкрдХреА рдлрд╛рдЗрд▓ рдореЗрдВ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

ЁЯУПрд▓рд╛рдЗрди рд░реИрдкрд┐рдВрдЧ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реА рдЬрд╛рддреА рд╣реИ?

рд▓рд╛рдЗрдиреЗрдВ рдХрд┐рддрдиреА рдЪреМрдбрд╝реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдк / рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред 0 рд╕реЗрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдмрдбрд╝реА рдЖрдВрддрд░рд┐рдХ рд╕реАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реИрдкрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реИред

ЁЯФРрдХреНрдпрд╛ рдореЗрд░рд╛ рдХреЛрдб рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

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

ЁЯзордХреНрдпрд╛ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдореЗрд░реЗ PHP рдХреЛрдб рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓ рджреЗрдЧреА?

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

тЪЩя╕ПрдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╣реА рд╕реНрдЯрд╛рдЗрд▓ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реВрдВ?

рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ Prettier рдХреЗ PHP рдкреНрд▓рдЧрдЗрди рдпрд╛ PHP-CS-Fixer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╣реИ; рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реНрдЯрд╛рдЗрд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдЯреВрд▓рд┐рдВрдЧ рдмреЗрд╣рддрд░ рд╣реИред

Pro Tips

Best Practice

рдЕрдкрдиреА CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рд╕реНрдЯреЗрдк (Prettier рдпрд╛ PHP-CS-Fixer) рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдЕрдирдлреЙрд░реНрдореЗрдЯреЗрдб PHP `main` рддрдХ рди рдкрд╣реБрдВрдЪреЗред

Best Practice

рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлреЙрд░реНрдореЗрдЯрд░ рдЪрд▓рд╛рдПрдВ рддрд╛рдХрд┐ рдбрд┐рдлреНрдлрд╝ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд░рд╣реЗрдВ, рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдкрд░ рдирд╣реАрдВред

Best Practice

рдмрдбрд╝реЗ рд░рд┐рдлреИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдмреНрд░рд╛рдВрдЪ рдкрд░ рдПрдХ рдмрд╛рд░ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ, рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ PRs рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВред

Best Practice

рдСрдирд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдЯрд░реНрдорд┐рдирд▓реНрд╕ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВ: рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдХреАрдЬрд╝ рдХреЛ рдХрд┐рд╕реА рднреА рд╡реЗрдм рдлреЙрд░реНрдо рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред

Additional Resources

Other Tools