рдХрд╛рд░реНрдп рд╕рдордп-рд╕рдордп рдкрд░ рдХреБрдЫ рдЫреЛрдЯреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдарддрд╛ рд╣реИ, рдмрдбрд╝реЗ рдлреНрд░реЗрдо рдЬреИрд╕реЗ рдХрд┐ Zend / Yii / CI / Kohana рдФрд░ рдЗрддрдиреЗ рдкрд░, рдпрд╛ рддреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдкрд░реЛрдХреНрдд рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛,
рдПрдорд╡реАрд╕реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ 1 рд╢рд╛рдо рд╣реБрдИ, рдкреЗрдВрдЪ рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рдЧрдпрд╛ред
рд╢реБрд░реБрдЖрдд рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- рдПрдорд╡реАрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
- рдХрдВрдкреНрдпреВрдЯрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд┐рдпрдВрддреНрд░рдг
- рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА
рд╕реАрдПрдирд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо mod_rewrite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, url рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: mysite.com/controller_name/ рдирд┐рдпрдВрддреНрд░рдХ_action / param_name_1 / param_value_1 / param_name_2 / param_value_2
рд╣рдореЗрдВ рдореЙрдбрд▓, рд╡реНрдпреВ, рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
abstract class CController extends CBaseObject ... abstract class CModel extends CBaseObject ... class CView ... class CViewSmarty extends Smarty ...
рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ index.php рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ config.php рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
config.php рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛
$config['SYSPATH'] = "system"; $config['APPPATH'] = "application"; $config['BASEPATH'] = "/projects/savage";
рдХреНрд▓рд╛рд╕ рдСрдЯреЛрд▓реИрдб рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ
function autoload_classes($param) { include("config.php"); if (strtolower(substr($param, 0, 1)) == "m") { include_once ($config['APPPATH'] . "/models/" . strtolower($param) . ".php"); } if (strtolower(substr($param, 0, 1)) == "c") { $part_path = strtolower($param) . ".php"; if (file_exists($config['SYSPATH'] . "/classes/" . $part_path)) { $file = $config['SYSPATH'] . "/classes/" . $part_path; } else { $file = $config['APPPATH'] . "/controllers/" . $part_path; } include_once $file; } } spl_autoload_register('autoload_classes');
index.php рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдо рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдВрддреНрд░рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ (рддрд╛рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦ рд╕рдХреЗрдВ: mysite.com/mycontroller/myaction рдФрд░ рдЗрд╕рд▓рд┐рдП mysite_myaction)
рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдп рддрд░реНрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдпрд╣ рддрдп рдХрд░рдирд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
Url рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрд╕рд░реНрдЧ рдХрд░реЗрдВрдЧреЗ: action_ (ci / kohana рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд)ред
class CMain extends CController { public function action_index() { $widgets = new CWidgets(); $prm_data = array( 'widget_login' => $widgets->widget_login(), ); $view = new CView(); $view->assign($prm_data); $view->display("index"); } ...
рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрдмрдХрд┐ рдореЙрдбрд▓ рдЬрд░реВрд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдпрд╣ рд╕рд░рдгреА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ (рдкреАрдбреАрдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
class MUsers extends CModel { ... public function get_list() { for ($i = 1; $i < 6; $i++) { $this->data[] = array('id' => $i, 'login' => 'user ' . $i, 'pw' => ($i * 2 + $i)); } return $this->data; } }
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрд░реАрдХреЗ рд╣реИрдВ, рдХреЛрдИ рдореВрд▓ php рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рд╕реНрдорд╛рд░реНрдЯреА рдпрд╛ рдХреБрдЫ рдФрд░ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд╕реНрдорд╛рд░реНрдЯреА рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдореВрд▓ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд╕реНрдореИрдЯреА рдореЗрдВ рдмрдирд╛рдпрд╛ред
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреНрд░рд╛рдВрдбреЛрдВ рдХреА рддрд░рд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╣реИред
рдпрд╣рд╛рдВ рдбреЗрдореЛ рджреЗрдЦреЗрдВ,
рд╕реНрдорд╛рд░реНрдЯреА рдХреЗ рдмрд┐рдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ,
рд╕реНрдорд╛рд░реНрдЯреА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред