рдзреНрдпрд╛рди рджреЗрдВ: рд▓реЗрдЦ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЪреАрдЬреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдврд╛рдВрдЪреЗ рдХреИрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдмреБрд░реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред рдФрд░ рдЗрд╕реАрд▓рд┐рдП: рдЙрдирдХрд╛ рд▓рдХреНрд╖реНрдп рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдФрд░ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдХрд┐рд╕реА рддрд░рд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдореЗрд░реА рд╡рд┐рдирдореНрд░ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд░рд╛рдп рдореЗрдВ, рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдХреЗ рд╕рд╛рде рдХрднреА-рдХрднреА рд╡рд┐рдкрд░реАрдд рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЦреБрдж рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдХреЛрдб рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рдПрдХ рд╕рд░рд▓ рдмреНрд▓реЙрдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рди рдХрд┐ 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 namespace cs\modules\MyBlog; use cs\Config, cs\Cache\Prefix, cs\DB\Accessor, cs\Language, cs\User, cs\CRUD, cs\Singleton; class Posts { use CRUD, Singleton; protected $cache; protected $table = '[prefix]myblog_posts'; protected $data_model = [ 'id' => 'int', 'user' => 'int', 'title' => 'text', 'text' => 'html', 'date' => 'int' ]; protected function construct () { $this->cache = new Prefix('MyBlog'); } protected function cdb () { return Config::instance()->module('MyBlog')->db('posts'); } function get ($id) { if (is_array($id)) { foreach ($id as &$i) { $i = $this->get($i); } return $id; } $id = (int)$id; 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; }); } function add ($title, $text) { $id = $this->create_simple([ User::instance()->id, $title, $text, TIME ]); if ($id) { unset($this->cache->total_count); return $this->db_prime()->id(); } return false; } function set ($id, $title, $text) { $data = $this->get($id); $data['title'] = $title; $data['text'] = $text; if ($this->update_simple($data)) { unset($this->cache->{"posts/$id"}); return true; } return false; } function del ($id) { if ($this->delete_simple($id)) { unset( $this->cache->{"posts/$id"}, $this->cache->total_count ); return true; } return false; } function posts ($page = 1) { $from = ($page - 1) * 10 ?: 0; return $this->db()->qfas(
рд╡рд░реНрдЧ рдкрджреЛрдВ рдХреЗ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдЙрдирдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИред рдпрд╣ рдПрдХ
рдЕрдХреЗрд▓рд╛ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рдЗрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЗ рд╣реИрдВ:
- рдкреНрд░рд╛рдкреНрдд
- рдЬреЛрдбрд╝рдирд╛
- рд╕реЗрдЯ
- рдбреЗрд▓
- рдкрджреЛрдВ
- TOTAL_COUNT
рд╡рд░реНрдЧ рд╕реНрд╡рдпрдВ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ред
DB рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реАрдб рдореЛрдб рдФрд░ рд░рд╛рдЗрдЯ рдореЛрдб рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд▓рдЧрд╛рд╡ рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдмрд╛рдХреА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛; рдпрд╣ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреГрдердХреНрдХрд░рдг рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ, рдФрд░ рдЖрдИрдбреАрдИ рднреА рдЙрдард╛рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЬрд╕рди рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкрддреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдлрд╝рд╛рдЗрд▓
рдШрдЯрдХ / рдореЙрдбреНрдпреВрд▓ / MyBlog / index.json рдмрдирд╛рдПрдБ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
{ "list" : [], "post" : [ "view", "add", "edit", "delete" ] }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд░рд╛рд╕реНрддреЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреЗ:
- Myblog / рд╕реВрдЪреА
- Myblog / рд╕реВрдЪреА / {рдкреГрд╖реНрда}
- Myblog / рдкреЛрд╕реНрдЯ / рдЬреЛрдбрд╝реЗрдВ
- MyBlog / рдкреЛрд╕реНрдЯ / рджреЗрдЦрдиреЗ / {рдЖрдИрдбреА}
рддрджрдиреБрд╕рд╛рд░, рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:
- list.php
- рдкреЛрд╕реНрдЯ / add.php
- рдкреЛрд╕реНрдЯ / рд╣рдЯрд╛рдПрдВ
- рдкреЛрд╕реНрдЯ / edit.php
- post / view.php
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ - рд╕реАрдПрдордПрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреГрд╖реНрдареЛрдВ рдкрд░ рдмреБрд▓рд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг
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.delete.php
- index.get.php
- index.post.php
- index.put.php
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдмрддрд╛рддреЗ рд╣реИрдВред рд╕рд░рд▓рддрдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдореЗрдВ 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 / рднрд╛рд╖рд╛ / рд░реВрд╕реА.рдЬреЛрди рдЬреЛрдбрд╝реЗрдВ ред рдореЙрдбреНрдпреВрд▓ред
рдареАрдХ рд╣реИ, рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо
рдХреНрд▓реАрд╡рд░рд╕реЗрд▓ рд╕реАрдПрдордПрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
- рдирд┐рд░реНрдорд╛рдг
- рд╕реНрдерд╛рдкрд┐рдд
- build.php
- install.php
рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ .htaccess рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рддрд╛рдХрд┐ рдЗрдВрдЬрди рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рди рдХрд░реЗ):
<рдлрд╝рд╛рдЗрд▓реЗрдВ build.php>
рд░реЗрд╡реЗрд░рд┐рдЯреЗрдВрдЧрд┐рди рдмрдВрдж
</ рдлрд╝рд╛рдЗрд▓реЗрдВ>
build.php
рдЬрд╛рдПрдВ, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рд╕реВрдЪреА рдореЗрдВ
build.php
рдЪреБрдиреЗрдВ, рдмрд┐рд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓
MyBlog_0.0.2.phar.php
, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рджреВрд╕рд░реА рдкреНрд░рддрд┐ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдкрдХреЛ рдкреЛрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдШрдЯрдХ / рдореЙрдбреНрдпреВрд▓ / MyBlog / / .htaccess рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рд╕рднреА рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ
рд░реЗрд╡реЗрд░рд┐рдЯреЗрдВрдЧрд┐рди рдмрдВрдж
- рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / MyBlog / рд╢рд╛рдорд┐рд▓ / css рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╢реИрд▓реА рдХреА рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рд▓реЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдЙрдиреНрд╣реЗрдВ рдЙрдард╛рдПрдЧрд╛ (рдШрдЯрдХреЛрдВ / рдореЙрдбреНрдпреВрд▓ / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди / js) рдФрд░
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗрдЙрддреНрдкрд╛рджрди рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ gzip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдпреБрдХреНрдд рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ css рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рд╛рдлрд╝ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЖрдпрд╛рдд рдЬреИрд╕реЗ css рд╢реИрд▓рд┐рдпрд╛рдБ, рдлрд╝реЙрдиреНрдЯ, рдЪрд┐рддреНрд░ рдПрдореНрдмреЗрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ
рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рднрдВрдбрд╛рд░ рдмрдирд╛рдпрд╛
рдЧрдпрд╛ рд╣реИ ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬрдм рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реИ, рди рдХреЗрд╡рд▓ рдореБрдЭрд╕реЗ рдЕрдкреАрд▓ рдХрд░реЗрдЧрд╛ред
рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд╕рд╡рд╛рд▓реЛрдВ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
UPD рдпреБрдЧрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда UPD 11.11.2013: CRUD рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЬрди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ, рдкреЛрд╕реНрдЯ рд╡рд░реНрдЧ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред