CleverStyle CMS рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреНрд▓реЙрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рдзреНрдпрд╛рди рджреЗрдВ: рд▓реЗрдЦ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЪреАрдЬреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред

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

рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕


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

рдкрд░реНрдпрд╛рд╡рд░рдг


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

рднрд╡рд┐рд╖реНрдп рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛


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

рдбреАрдмреА


рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖рдХ, рд╕рд╛рдордЧреНрд░реА, рд▓реЗрдЦрдХ рдФрд░ рд▓реЗрдЦрди рдХреА рддрд╛рд░реАрдЦ рд╣реЛрдЧреАред рдЪрд┐рддреНрд░рдордп рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкрд╛рд▓рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ PhpMyAdmin рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ:

CREATE TABLE IF NOT EXISTS `[prefix]myblog_posts` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user` int(10) unsigned NOT NULL, `title` varchar(1024) NOT NULL, `text` text NOT NULL, `date` bigint(20) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

рддрд╛рд▓рд┐рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХреЗ рд▓рд┐рдП [prefix] рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реАрдПрдордПрд╕ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред
рд╣рдо рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рдореЗрдЯрд╛ / install_db / рдкреЛрд╕реНрдЯ / MySQLi.sql рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд SQL рдХреЛ рд╡рд╣рд╛рдВ рдЪрд┐рдкрдХрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рдЗрд╕реА рддрд░рд╣, рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рдореЗрдЯрд╛ / uninstall_db / рдкреЛрд╕реНрдЯ / MySQLi.sql рдмрдирд╛рдПрдБ :

 DROP TABLE `[prefix]myblog_posts`; 

MySQLi рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЬрди рдХрд╛ рдирд╛рдо рд╣реИ, рдпрд╣ рдЕрднреА рддрдХ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реИ,
рдкреЛрд╕реНрдЯ рдПрдХ рдордирдорд╛рдирд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ (рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдХрд┐ рдЯреЗрдмрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ MySQL / MariaDB рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрдЧрд╛ рдФрд░ рджреВрд╕рд░рд╛ PostgreSQL рдореЗрдВ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрдЧрд╛)ред
рд╣рдореЗрдВ рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рдореЗрдЯрд╛ / db.json рдореЗрдВ рдирд╛рдо рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрдиреЗ рджреЗрдВ:

 [ "posts" ] 

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдм рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред

рдбрд╛рдХ рд╡рд░реНрдЧ


рд╣рдо рдХрдХреНрд╖рд╛ рдХреЛ рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / Posts.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ cs \ рдореЙрдбреНрдпреВрд▓ \ MyBlog рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ - рдЗрд╕рд╕реЗ рд╕реАрдПрдордПрд╕ рдХреЛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреАред
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 <?php /** * @package MyBlog * @category modules * @author Nazar Mokrynskyi <nazar@mokrynskyi.com> * @copyright Copyright (c) 2013, Nazar Mokrynskyi * @license MIT License, see license.txt */ namespace cs\modules\MyBlog; use cs\Config, cs\Cache\Prefix, cs\DB\Accessor, cs\Language, cs\User, cs\CRUD, cs\Singleton; /** * Class Posts for posts manipulation * * @method static \cs\modules\MyBlog\Posts instance($check = false) */ class Posts { use CRUD, Singleton; /** * Cache object instance * * @var Prefix */ protected $cache; protected $table = '[prefix]myblog_posts'; protected $data_model = [ 'id' => 'int', 'user' => 'int', 'title' => 'text', 'text' => 'html', 'date' => 'int' ]; protected function construct () { /** * Save instance of cache object with prefix MyBlog (will be added to every item) */ $this->cache = new Prefix('MyBlog'); } /** * Required by abstract Accessor class * * @return int Database index */ protected function cdb () { return Config::instance()->module('MyBlog')->db('posts'); } /** * Get post * * @param int|int[] $id * * @return array|bool */ function get ($id) { if (is_array($id)) { foreach ($id as &$i) { $i = $this->get($i); } return $id; } $id = (int)$id; /** * Try to get item from cache, if not found - get it from database and save in cache */ return $this->cache->get("posts/$id", function () use ($id) { $data = $this->read_simple($id); if ($data) { $L = Language::instance(); $data['datetime'] = $L->to_locale(date($L->_datetime_long, $data['date'])); $data['username'] = User::instance()->username($data['user']); } return $data; }); } /** * Add post * * @param string $title * @param string $text * * @return bool|int Id of created post or <b>false</b> on failure */ function add ($title, $text) { $id = $this->create_simple([ User::instance()->id, $title, $text, TIME ]); if ($id) { /** * Delete total count of posts */ unset($this->cache->total_count); return $this->db_prime()->id(); } return false; } /** * Edit post * * @param int $id * @param string $title * @param string $text * * @return bool */ function set ($id, $title, $text) { $data = $this->get($id); $data['title'] = $title; $data['text'] = $text; if ($this->update_simple($data)) { /** * Delete cached item if any */ unset($this->cache->{"posts/$id"}); return true; } return false; } /** * Delete post * * @param int $id * * @return bool */ function del ($id) { if ($this->delete_simple($id)) { /** * Delete cached item if any, and total count of posts */ unset( $this->cache->{"posts/$id"}, $this->cache->total_count ); return true; } return false; } /** * Get posts * * @param $page * * @return int[] */ function posts ($page = 1) { $from = ($page - 1) * 10 ?: 0; return $this->db()->qfas( //Readable database, Query, Fetch, Single, Array "SELECT `id` FROM `[prefix]myblog_posts` ORDER BY `id` DESC LIMIT $from, 10" ) ?: []; } /** * Get total count of posts * * @return int */ function total_count () { return $this->cache->get('total_count', function () { return $this->db()->qfs( //Readable database, Query, Fetch, Single "SELECT COUNT(`id`) FROM `[prefix]myblog_posts`" ) ?: 0; }); } } 


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

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

рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ, рдФрд░ рдЖрдИрдбреАрдИ рднреА рдЙрдард╛рддрд╛ рд╣реИред

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


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЬрд╕рди рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкрддреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХ / рдореЙрдбреНрдпреВрд▓ / MyBlog / index.json рдмрдирд╛рдПрдБ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:

 { "list" : [], "post" : [ "view", "add", "edit", "delete" ] } 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд░рд╛рд╕реНрддреЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреЗ:

рддрджрдиреБрд╕рд╛рд░, рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ - рд╕реАрдПрдордПрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреГрд╖реНрдареЛрдВ рдкрд░ рдмреБрд▓рд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг list.php рдлрд╝рд╛рдЗрд▓:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 namespace cs\modules\MyBlog; use cs\Config, cs\Page, h; $rc = Config::instance()->route; $page = 1; if (isset($rc[1]) && $rc[1]) { $page = (int)$rc[1]; } $Page = Page::instance(); $Posts = Posts::instance(); $total_count = $Posts->total_count(); $Page->content( h::{'a.cs-button-compact'}( h::icon('plus').'  ', [ 'href' => 'MyBlog/post/add' ] ) ); if (!$total_count) { $Page->content( h::{'p.cs-center.uk-text-info'}('  ') ); return; } $Page->title(' '); if ($page > 1) { $Page->title(" $page"); } $Page->content( h::{'section article.cs-myblog-posts'}( h::{'h1 a[href=MyBlog/post/$i[id]]'}('$i[title]'). h::div('$i[text]'). h::footer('$i[datetime], $i[username]'), [ 'insert' => $Posts->get($Posts->posts($page)) ] ). ( $total_count > 10 ? h::{'div.cs-center'}(pages($page, ceil($total_count / 10), function ($page) { return $page < 2 ? 'MyBlog' : "MyBlog/list/$page"; })) : '' ) ); 


рд▓рдЧрднрдЧ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд╛рдо рд╕реНрдерд╛рди рд╕рдорд╛рди рд╣реИред
Config::instance()->route - рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдкреГрд╖реНрда рдкрде рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рдкреГрд╖реНрда рдкрд░ рдЦреБрд▓рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MyBlog/list/3 рд╣рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ ['list', 3] ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдКрдкрд░ рдмрддрд╛рдИ рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ + рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рд╣реИрдВред

рдПрдкреАрдЖрдИ


рд╣рд╛рдВ, рд╣рдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрд╛рд╣рд░реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╣рдо рдЗрд╕реЗ рдХрд░реЗрдВрдЧреЗ (рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдЪрд▓реЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрджреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдкрджреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рдПрдкреАрдЖрдИ рдореЗрдВ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдмрддрд╛рддреЗ рд╣реИрдВред рд╕рд░рд▓рддрдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдореЗрдВ index.json рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╣рдо рд╕рд┐рд░реНрдл DELETE / GET / POST / PUT рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ CMS рдХреЛ рдпреЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрд╡рдпрдВ рдорд┐рд▓реЗрдВрдЧреАред рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг API рдЕрдиреБрд░реЛрдз:
рдкреЛрд╕реНрдЯ Api / MyBlog
{
"рд╢реАрд░реНрд╖рдХ": "рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╢реАрд░реНрд╖рдХ",
"рдкрд╛рда": "рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╕рд╛рдордЧреНрд░реА"
}

рдЖрдк JSON рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдПрдкреНрд▓рд┐рдХреЗрд╢рди / json рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╛ рддреЛ:
201 рдмрдирд╛рдпрд╛
...
{
"Id": "5"
}

рдпрд╛ рдПрдХ рдХреЛрдб рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред
рдпрд╣рд╛рдБ index.post.php рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдРрд╕рд╛ рдХрд░рддреА рд╣реИ:

 namespace cs\modules\MyBlog; use cs\Page; if (!isset($_POST['title'], $_POST['text'])) { error_code(400); return; } if ($post = Posts::instance()->add($_POST['title'], $_POST['text'])) { code_header(201); Page::instance()->json([ 'id' => $post ]); } else { error_code(500); } 

Page::instance()->json() рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░рдгрд┐рдпрд╛рдБ), рдФрд░ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ рдПрдХ JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рдпреЗрдЧреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдЧреАред рд╡рд╣реА error_code() рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдкрд╛рд╕ рдХрд░реЗрдВ - рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ


рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╕рд░реНрд╡рд┐рд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ / рдореЙрдбреНрдпреВрд▓ / MyBlog / meta.json рдмрдирд╛рдПрдБ :

 { "package" : "MyBlog", "category" : "modules", "version" : "0.0.2", "description" : "Simple demo blog module", "author" : "Nazar Mokrynskyi", "website" : "cleverstyle.org/cms", "license" : "MIT License", "db_support" : [ "MySQLi" ], "provide" : "myblog", "optional" : [ "editor" ], "languages" : [ "" ] } 

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ - рдкреЛрд╕реНрдЯ рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рд╕реБрдВрджрд░ рдмрдирд╛рдиреЗ рдФрд░ рдирд╛рдо рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / lic.txt , рд╕рд╛рде рд╣реА рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рддреИрдпрд╛рд░ . php рдФрд░ рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рднрд╛рд╖рд╛ / рд░реВрд╕реА.рдЬреЛрди рдЬреЛрдбрд╝реЗрдВ ред рдореЙрдбреНрдпреВрд▓ред
рдареАрдХ рд╣реИ, рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдХреНрд▓реАрд╡рд░рд╕реЗрд▓ рд╕реАрдПрдордПрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ .htaccess рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рддрд╛рдХрд┐ рдЗрдВрдЬрди рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рди рдХрд░реЗ):
<рдлрд╝рд╛рдЗрд▓реЗрдВ build.php>
рд░реЗрд╡реЗрд░рд┐рдЯреЗрдВрдЧрд┐рди рдмрдВрдж
</ рдлрд╝рд╛рдЗрд▓реЗрдВ>

build.php рдЬрд╛рдПрдВ, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рд╕реВрдЪреА рдореЗрдВ build.php рдЪреБрдиреЗрдВ, рдмрд┐рд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ MyBlog_0.0.2.phar.php , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рджреВрд╕рд░реА рдкреНрд░рддрд┐ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рдпрджрд┐ рдЖрдкрдХреЛ рдкреЛрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

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

UPD рдпреБрдЧрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда




UPD 11.11.2013: CRUD рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЬрди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ, рдкреЛрд╕реНрдЯ рд╡рд░реНрдЧ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In196712/


All Articles