рдкреЗрд╢ рд╣реИ рдХреЛрд╣рдирд╛ 3.0 - рднрд╛рдЧ 4

рдХреЛрд╣рд╛рдирд╛ PHP V3 (KO3) рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЪреМрдереЗ рднрд╛рдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдХреЛ " рдХреЛрд╣рди 3.0 рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд " рд▓реЗрдмрд▓ рдХреЗ рддрд╣рдд рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░ рд╣рдо рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред



рд╣рдо рдХреЛрд╣рдирд╛ 2.x рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдореЙрдбрд▓ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд▓реЗрддреЗ рд╣реИрдВ:

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


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдореЙрдбрд▓ рдПрдХ рдбреЗрдЯрд╛ рдореИрдирд┐рдкреНрдпреБрд▓реЗрдЯрд░ рд╣реИред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛: XML рдЯреЗрдк, CSV, JSON, DB рдпрд╛ рдХреБрдЫ рдФрд░? рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдХрд╣рд╛ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд╣рдо MySQL рдХреЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рдорд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд▓рд╛ рдЪрд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рдЖрдЗрдП рдмреВрдЯ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ("рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдмреВрдЯрд╕реНрдЯреНрд░реИрдк.php"), рд▓рд╛рдЗрди рдвреВрдВрдвреЗрдВ "// 'рдбреЗрдЯрд╛рдмреЗрд╕' => MODPATH.'database ', // рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕" рдФрд░ рдЗрд╕реЗ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдкреВрд░реЗ рдмреНрд▓реЙрдХ рдХреЛ рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



Kohana::modules(array( // 'auth' => MODPATH.'auth', // Basic authentication // 'codebench' => MODPATH.'codebench', // Benchmarking tool 'database' => MODPATH.'database', // Database access // 'image' => MODPATH.'image', // Image manipulation // 'orm' => MODPATH.'orm', // Object Relationship Mapping // 'pagination' => MODPATH.'pagination', // Paging of results // 'userguide' => MODPATH.'userguide', // User guide and API documentation ));
      
      







рдЕрдм рдлрд╛рдЗрд▓ рдХреЛ рд╕реЗрд╡ рдХрд░реЗрдВред рд╣рдордиреЗ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рддрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред "рдбреЗрдЯрд╛рдмреЗрд╕ / рдкреАрдПрдЪрдкреА" рдХреЛ "рдореЙрдбреНрдпреВрд▓ / рдбреЗрдЯрд╛рдмреЗрд╕ / рдХреЙрдиреНрдлрд┐рдЧрд░ /" рд╕реЗ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреЙрдиреНрдлрд┐рдЧрд░ /" рдХреЙрдкреА рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / config / database.php" рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдореЗрд░рд╛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



 <?php defined('SYSPATH') OR die('No direct access allowed.'); return array ( 'default' => array ( 'type' => 'mysql', 'connection' => array( /** * The following options are available for MySQL: * * string hostname * integer port * string socket * string username * string password * boolean persistent * string database */ 'hostname' => 'localhost', 'username' => 'root', 'password' => FALSE, 'persistent' => FALSE, 'database' => 'mykohana3', ), 'table_prefix' => '', 'charset' => 'utf8', 'caching' => FALSE, 'profiling' => TRUE, ), 'alternate' => array( 'type' => 'pdo', 'connection' => array( /** * The following options are available for PDO: * * string dsn * string username * string password * boolean persistent * string identifier */ 'dsn' => 'mysql:host=localhost;dbname=mykohana3', 'username' => 'root', 'password' => FALSE, 'persistent' => FALSE, ), 'table_prefix' => '', 'charset' => 'utf8', 'caching' => FALSE, 'profiling' => TRUE, ), );
      
      







рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВред рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ тАЬmykohana3 database рдмрдирд╛рдпрд╛, рдЖрдкрдХреЛ рдпрд╣реА рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд SQL рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдмрдирд╛рдПрдВрдЧреЗ:



 CREATE TABLE `posts` ( `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) DEFAULT NULL, `post` TEXT, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
      
      







рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЪрд▓рд╛рдПрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ SQLYog рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдореИрдВрдиреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ "utf8 connecting" рд╕реЗрдЯ рдХрд┐рдпрд╛ред рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред



рдЪрд▓реЛ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреНрд▓рд╛рд╕реЗрд╕" рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ "рдореЙрдбрд▓" рдмрдирд╛рдПрдВред рдЗрд╕рдореЗрдВ, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╡рд╣рд╛рдВ рдбрд╛рд▓реЗрдВ:



 <?php defined('SYSPATH') or die('No direct script access.'); class Model_Post extends Kohana_Model { /** * Get the last 10 posts * @return ARRAY */ public function getLastTenPosts() { $sql = 'SELECT *'."\n". 'FROM `posts`'."\n". 'ORDER BY `id` DESC'."\n". 'LIMIT 0, 10'; return $this->_db->query(Database::SELECT, $sql, FALSE) ->as_array(); } }
      
      







рдЗрд╕реЗ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреНрд▓рд╛рд╕реЗрд╕ / рдореЙрдбрд▓ /" рдореЗрдВ "рдкреЛрд╕реНрдЯ.рдлреИрдк" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдЕрдм рдХреЛрдб рд▓рд╛рдЗрди рдХреЛ рд▓рд╛рдЗрди рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред



 $sql = 'SELECT *'."\n". 'FROM `posts`'."\n". 'ORDER BY `id` DESC'."\n". 'LIMIT 0, 10';
      
      







рдпрд╣ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА MySQL рдХреНрд╡реЗрд░реА рд╣реИ рдЬреЛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рджрд╕ рд░рд┐рдХреЙрд░реНрдб рддрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ 'рдЖрдИрдбреА' рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



 return $this->_db->query(Database::SELECT, $sql, FALSE) ->as_array();
      
      







рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреНрд╡реЗрд░реА рд╡рд┐рдзрд┐ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИред рдкрд╣рд▓реА рдХреНрд╡реЗрд░реА рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЪрдпрди" рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдирд┐рд░рдВрддрд░ "рдбреЗрдЯрд╛рдмреЗрд╕ :: рдЪрдпрди" рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рддреАрди рдЕрдиреНрдп рднреА рд╣реИрдВ: "рдбреЗрдЯрд╛рдмреЗрд╕ :: INSERT", "рдбреЗрдЯрд╛рдмреЗрд╕ :: рдЕрджреНрдпрддрди" рдФрд░ "рдбреЗрдЯрд╛рдмреЗрд╕ :: DELETE"ред As_array () рд╡рд┐рдзрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдмрдХрд┐ ($ row = mysql_fetch_array ())ред



рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "Ko3.php" рдХреЛ "/ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреНрд▓рд╛рд╕реЗрд╕ / рдХрдВрдЯреНрд░реЛрд▓рд░" рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:



 public function action_posts() { $posts = new Model_Post(); $ko3 = array(); $this->template->title = 'Kohana 3.0 Model Test'; $this->template->meta_keywords = 'PHP, Kohana, KO3, Framework, Model'; $this->template->meta_description = 'A test of of the KO3 framework Model'; $this->template->styles = array(); $this->template->scripts = array(); // Get the last 10 posts $ko3['posts'] = $posts->getLastTenPosts(); $this->template->content = View::factory('pages/posts', $ko3); }
      
      







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



 <?php foreach($posts as $post):?> <h1><?php echo $post['title'];?></h1> <?php echo $post['post'];?> <hr /> <?php endforeach;?>
      
      







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



 insert into `posts`(`id`,`title`,`post`) values (1,'Test Post','This is some sample text.'); insert into `posts`(`id`,`title`,`post`) values (2,'Another post','Some more text');
      
      







рдЕрдм, "http: // localhost / mykohana3 / ko3 / рдкреЛрд╕реНрдЯ" рдкрддреЗ рдкрд░ рдЬрд╛рдХрд░, рдЖрдкрдХреЛ рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдПред



рдЖрдЗрдП рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирдП рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреЛ рдЦреЛрд▓реЗрдВ ("рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреНрд▓рд╛рд╕реЗрд╕ / рдореЙрдбрд▓ / рдкреЛрд╕реНрдЯ.рдПрдлрд╝рдкреА") рдФрд░ рдирд┐рдореНрди рдХреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:



 public function addPost($title, $post) { $sql = sprintf('INSERT INTO `posts`'."\n". 'SET `title` = %s,'."\n". ' `post` = %s', $this->_db->escape($title), $this->_db->escape($post)); $this->_db->query(Database::INSERT, $sql, FALSE); }
      
      







рдКрдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ INSERT рдЕрдиреБрд░реЛрдз рд╣реИ, рд▓реЗрдХрд┐рди "$ рдпрд╣ -> _ db> рдПрд╕реНрдХреЗрдк ()" рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд░ рдХреЛ рдЙрджреНрдзрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдЧреА рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдЪрд░реЗ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдЧреАред рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рд╡рд┐рдЪрд╛рд░ / рдкреГрд╖реНрда" рд╕реЗ "рдкреЛрд╕реНрдЯрд╕реНрдкреЗрд╕" рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:



 <?php if(!empty($msg)):?> <?php echo $msg.'<br />';?> <?php endif;?> <?php foreach($posts as $post):?> <h1><?php echo $post['title'];?></h1> <?php echo $post['post'];?> <hr /> <?php endforeach;?> <form method="POST" action="<?php echo url::base();?>ko3/posts/"> <table> <tr> <td> Title </td> <td> <input type="text" name="title" style="border: 1px solid #000000;"/> </td> </tr> <tr> <td> Post </td> <td> <textarea cols="20" rows="5" name="post"></textarea> <input type="submit" name="submit" value="Submit"/> </td> </table> </form>
      
      







рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдЦреЛрд▓реЗрдВ ("рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХрдХреНрд╖рд╛рдПрдВ / рдирд┐рдпрдВрддреНрд░рдХ / ko3.php")ред рдЗрд╕рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:



 private function _addPost($title, $post_content) { // Load model $post = new Model_Post(); // Check required fields if(empty($title)) { return(array('error' => 'Please enter a title.')); } elseif(empty($post_content)) { return(array('error' => 'Please enter a post.')); } // Add to DB $post->addPost($title, $post_content); return TRUE; }
      
      







рдпрд╣ рдХреЛрдб "рдПрдХреНрд╢рди_рдкреЛрд╕реНрдЯ" рдФрд░ рдореЙрдбрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд▓рд┐рдВрдХ рд╣реИ; рдпрд╣ рд╕реАрдзреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЪрд▓рд┐рдП рд╡рд╛рдкрд╕ рдПрдХреНрд╢рди_рдкреЛрд╕реНрдЯ рд╡рд┐рдзрд┐ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ:



 public function action_posts() { // Load model $posts = new Model_Post(); // Setup view stuff $ko3 = array(); $this->template->title = 'Kohana 3.0 Model Test'; $this->template->meta_keywords = 'PHP, Kohana, KO3, Framework, Model'; $this->template->meta_description = 'A test of of the KO3 framework Model'; $this->template->styles = array(); $this->template->scripts = array(); $ko3['msg'] = ""; // Handle POST if($_POST) { $ret = $this->_addPost((isset($_POST['title']) ? $_POST['title'] : ""), (isset($_POST['post']) ? $_POST['post'] : "")); if(isset($ret['error'])) { $ko3['msg'] = $ret['error']; } else { $ko3['msg'] = 'Saved.'; } } // Get the last 10 posts $ko3['posts'] = $posts->getLastTenPosts(); // Display it. $this->template->content = View::factory('pages/posts', $ko3); }
      
      







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



рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реВрдВ, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдХреИрд╕реЗ рд╕рдВрднрд╡ рдерд╛ред рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рддрдерд╛рдХрдерд┐рдд рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ред AddPost () рд╡рд┐рдзрд┐ рдореЗрдВ MySQL рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:



 public function addPost($title, $post) { DB::insert('posts', array('title','post')) ->values(array($title, $post)) ->execute(); }
      
      







рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ (MySQL рд╕реЗ Oracle, рдЖрджрд┐) рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



рдореИрдВрдиреЗ рдореЙрдбрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╣реЛрдорд╡рд░реНрдХ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред



All Articles