рдПрдХ рд╣рдм рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдХреНрд╖рдг рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд▓реЗрдЦ рдереЗред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрдЦреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рд╣рд░ рджрд┐рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдореИрдВ Symfony2 рд╕реНрдЯреИрдХ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдкрд░ рд╣реИ рдХрд┐ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдЪреНрдЫреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рдг рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЙрдХреНрдЯреНрд░рд┐рди рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдПрдХ рд╣реА рдмрд╛рдд рдХреНрдпреЛрдВ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ? рдмрд┐рд▓реНрдХреБрд▓ рд╣рд░ рдЗрдХрд╛рдИ рдореЗрдВ рдПрдХ рдЖрдИрдбреА, рд╣рд░ рджреВрд╕рд░рд╛ рдирд╛рдо рдФрд░ рдЕрдХреНрд╕рд░ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИред рддреЛ рдЗрд╕реЗ рд▓рдХреНрд╖рдг рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛?
namespace Column; trait Id { protected $id; public function getId() { return $this->id; } }
рдЕрдм, рдЕрдЧрд▓реЗ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП 15 рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
class Book { use \Column\Id; }
рдХреНрдпрд╛ рдпрд╣ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ?
рдЬрдм рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдпрд╛ - рдореИрдВрдиреЗ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ
KNPLabs рд╕реЗ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд╛рдпрд╛ред
рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП - README рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддрд░реНрдХ рдХреА рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдореЙрдбрд▓ рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рдХреНрд╖рдгреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ
рд╕рд┐рджреНрдзрд╛рдВрдд-рдХреЙрд▓рдо рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдм рдореЙрдбрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реЗрдЯ рд╣реИред
рдЖрдЗрдП
Book
рдЬреЛрдбрд╝реЗрдВред
use Nkt\Column; class Book { use Column\Id; use Column\Name; use Column\Price; use Column\Description; use Column\CreatedDate; public function __construct($name, $description) { $this->setName($name); $this->setDescription($description); $this->setCreatedDate(new \DateTime()); } }
рдЕрдм рдЖрдк рдХреБрдЫ рдЕрджреНрд╡рд┐рддреАрдп рдЧреБрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЙрдбрд▓ рдХреЛрдб рдлреВрд▓рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЙрд╕реА рддрд░рд╣, рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдореВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ
Commentable
рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕реАрд▓рд╛ рдирд╣реАрдВ рд╣реИ - рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛ рд╕реНрдХреАрдо рдХреЛ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдХреНрдЯ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯреНрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмрд┐рдирд╛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рддрд░реАрдХрд╛ рдпрд╛ рджреВрд╕рд░рд╛ - рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рдХреА рдзрд╛рд░рдгрд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдХреНрд╕рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рднреЗрдЬреЗрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реВрдВрдЧрд╛ред