рдореИрдВ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдерд╛ рдХрд┐ рдореБрдЭреЗ рд╣реИрдмреЗ рдкрд░ рдПрдХ рд╕рдорд╛рди рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдбреВрдУрдкреАрдИрдкреА рд╕рдВрд╕реНрдХрд░рдг 1.5 рд╣реИ рдЬреЛ 6 рдЕрдХреНрдЯреВрдмрд░ 2013 рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рдРрд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рд╣рдм рдкрд░ рдкреНрд░рджрд░реНрд╢рди
рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИред
рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдПрдХ рд╕рд░рд▓ рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ред
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ OpenServer рд╣реИ:

рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдСрдл рд╕рд╛рдЗрдЯ
рдбреВрдкреАрдПрдЪрдкреА рдкрд░, рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗ, Google рдХреА рдорджрдж рд╕реЗ рдореБрдЭреЗ
рдпрд╣рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг 1.5 рдорд┐рд▓рд╛ред
рдЖрдЗрдП рд╢реБрд░реВ:
рд╕рд╛рдЗрдЯ рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp рд╣реИ) рд╣рдо "рдРрдк" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рднреА "dooframework" рдлрд╝реЛрд▓реНрдбрд░ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИ:
"рдбреВрдлрд░рд╛рдорд╡рд░реНрдХ" - рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рд╕реНрд╡рдпрдВред
"рдЧреНрд▓реЛрдмрд▓" рд╕рд╛рдЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ (css, js, img, swf) рдХрд╛ рднрдВрдбрд╛рд░ рд╣реИред
"рд╕рдВрд░рдХреНрд╖рд┐рдд" - рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА php рдлрд╛рдЗрд▓реЗрдВ (рдлрд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдХрдВрдЯреНрд░реЛрд▓рд░, рдореЙрдбрд▓, рдбрд┐рд╕реНрдкреНрд▓реЗ, рдРрдб-рдСрди рдореЙрдбреНрдпреВрд▓)ред
"рдЙрдкрдХрд░рдг" - рдЬреЛрдбрд╝реЗрдВред рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдЙрдкрдХрд░рдгред
рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:
рд╣рдо рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ (C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ config \ common.conf.php) рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдврд╛рдВрдЪреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рд╕реЗрдЯ рдХрд░реЗрдВ:
$config['SITE_PATH'] = '/'; $config['BASE_PATH'] = '/dooframework/';
$config['SITE_PATH'] = '/';
рдЖрдкрдХреЛ рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рд╡рд░реНрдг '/' (C: \\ web \ .... /) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдпрд╣ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░:
error_reporting(E_ALL | E_STRICT); date_default_timezone_set('Asia/Kuala_Lumpur');
рд╣рдорд╛рд░реЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЬрд╛рдПрдВ, рд╣рдорд╛рд░реЗ рдкрддреЗ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ:

рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдкреГрд╖реНрдаред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрдЯрдЕрдк:
рдЦреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдмрдирд╛рдПрдБ:
рдЖрдИрдбреА
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
рдкрд╛рд╕рд╡рд░реНрдб
рдирд╛рдо
CREATE TABLE `test`.`User` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 20 ) NOT NULL , `password` CHAR( 32 ) NOT NULL , `name` VARCHAR( 40 ) NOT NULL );
рдЕрдм рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд░реЗрдВ C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ config \ db.conf.phpред
рдЕрдзреВрд░рд╛рдкрди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд▓рд╛рдЗрди:
$dbconfig['dev'] = array('localhost', 'database', 'root', '1234', 'mysql', true);
рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рд░реВрдЯ .htaccess рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗ
C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ config \ рдорд╛рд░реНрдЧреЛрдВ редconf.php
рдЬреЛрдбрд╝реЗрдВ:
$route['*']['/login'] = array('LoginController', 'index');
рдирд┐рдпрдВрддреНрд░рдХ:
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ LoginContver.in.p
рд╣рдо рдЗрд╕рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
<?php class LoginController extends DooController {
рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ:
C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ рджреГрд╢реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ login.html рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
<html> <head> <title>To Doo List Manager :: {{pagetitle}}</title> </head> <body> <h1>To Doo List Manager :: {{pagetitle}}</h1> <p>Please Login</p> <form method="post"> <label for="txt_username">Username</label> <input type="text" name="txt_username" /><br /> <label for="txt_password">Password</label> <input type="password" name="txt_password" /><br /> <p class="error">Error: {{errorMsg}}</p> <input type="submit" value="Login" /> </form> </body> </html>
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддреЗ рд╕рдордп PS, рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡реНрдпреВрд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдХреИрд╢ рд╣реИ, рд▓реЗрдХрд┐рди login.php рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп, login.php рдлрд╝реЛрд▓реНрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рддреЛ PHP рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╣реИ рдЬрдм рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ рдпрд╣ 5.3 рд╣реИред *, рдФрд░ рдкреНрд░рд▓реЗрдЦрди 5.1 рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред *ред рдореИрдВрдиреЗ рдПрдХ рдЦрд╛рд▓реА рд▓реЙрдЧрд┐рдиред Php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ, рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЧрдИред
рдЖрджрд░реНрд╢
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ C: \ web \ OpenServer \ рдбреЛрдореЗрди \ doophp \ рд╕рдВрд░рдХреНрд╖рд┐рдд \ рдореЙрдбрд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕реЗ рднрд░реЗрдВ
Doo::loadCore('db/DooModel'); class User extends DooModel { public $id; public $username; public $password; public $name; public $_table = 'user'; public $_primarykey = 'id'; public $_fields = array('id', 'username', 'password', 'name'); public function get_user(){ if(!$this->username or !$this->password){ return array('errorMsg'=>"At least one field was empty"); }else{ $a=Doo::db()->find( $this, array('limit'=>1)); if($a){ return true; }else return array('errorMsg'=>"no user or wrong pass"); } } function __construct(){ parent::$className = __CLASS__; } }
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рд░реВрдЯрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ POST рдЕрдиреБрд░реЛрдз рдЙрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдЬрд╛рдП рдЬреЛ рд╣рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдореЗрдВ рдЪрд╛рд╣рд┐рдП редconf.php рдлрд╝рд╛рдЗрд▓
рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ
$route['post']['/login'] = array('LoginController', 'login');
рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ, рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ
"рджреГрд╢реНрдп" рдкреИрдХреЗрдЬ рдореЗрдВ, success.html рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ
<html> <body> <h1>Success!</h1> </body> </html>
рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ:
public function login() { $this->data['pagetitle'] = 'login'; Doo::loadModel('User'); $u = new User; $u->username=$_POST['txt_username']; $u->password=md5($_POST['txt_password']); $ab=$u->get_user(); if(isset($ab['errorMsg'])){ $this->data['errorMsg']=$ab['errorMsg']; $this->view()->render('login',$this->data); }else{ $this->view()->render('success'); } }
рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
рд╣рдо рдЦрд╛рд▓реА рдлрд╝реАрд▓реНрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рд╣рдо рдПрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЧрд▓рдд рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЦрддреЗ рд╣реИрдВред

рд╕рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ, рд╕реНрд╡рд╛рдЧрдд рдлрд╝реЙрд░реНрдо рджреЗрдЦреЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдорд┐рдиреА-рдЯрд╛рд╕реНрдХ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХрдард┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдХреЛ рд╕рдВрднрд╡рддрдГ рдпрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рде рд╣реА, рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдХрдИ рдЪреАрдЬреЗрдВ рдЕрдкрдиреЗ рдЖрдк рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдкрд░ рдХреБрдЫ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдПрдХ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реВрдкрд░реЗрдЦрд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
рдЧрд┐рдердм рдкреНрд░реЛрдЬреЗрдХреНрдЯ:
https://github.com/izac1/DoophpSimpleApp.git