Kohana 新手入门

<?php
/**
 * Editplus4PHP PHP Template
 *
 * This is a Template of PHP Script for Editplus4PHP.
 *
 * @copyright HentStudio (c)2008
 * @author Leo <Zergdo@gmail.com>
 * @package Editplus4PHP
 * @version $Id: template.php, v 0.0.1 2008/09/21 12:16:23 uw Exp $
 */
/*
下面是系统读取配置文件的顺序方式。

application > modules > system


安装
application > conf > conf.php

1.添加 $config['base_url'] = 'www.test.test';

2.删除install.php或者重命名



看你的application/config目录里有没有database.php如果没有就去system里弄一个,
放到application/config下修改下connection里的参数就行了.这里值得注意的就是
'object' => True这个参数,现在意思是反回对象.False就会反回数组


数据库配置
system > conf > database.php
需要注意的是'object' => True选项为以对象形式返回结果 FALSE 为以数组形式返回数组

*/



//视图加载
$this->template->content = new View('View_Name');

// 文件 list.php 在 'view/products' 下面
$view = new View('products/list');

$view = View::factory('welcome');

// 呈现试图 默认为为自动呈现
$view->render(TRUE);



//加载视图中的视图:

// 控制器的方法的演示代码
$view = new View('template');  // 这里就不是模板文件名

$view->header  = new View('header');
$view->content = new View('content');
$view->footer  = new View('footer');

$view->header->title     = 'Title of page';     // 视图 header.php 文件中的 $title 字符串变量。
$view->content->heading  = 'Heading of your page'; // 视图 content.php 文件中的 $heading 字符串变量。
$view->footer->copyright = 'Copyright';         // 视图 footer.php 文件中的 $copyright 字符串变量。

$view->render(TRUE);

//视图的数据设置

$view->title = 'data';
$view->set('title', 'data');

$view->render(true); //输出至浏览器


CUDI
//获取最后一次执行的SQL语句: model中$this->db->last_query();

class User_Model extends Model {

    public function __construct() {
           parent::__construct();
    }

    public function get_user($id) {

        $this->db->where('id', $id);
        return $this->db->get('users')->current();

    }

    public function add_user($data) {
        $status = $this->db->insert('users', $data);
        return count($status);
    }

    public function update_user($data, $where) {
        $status = $this->db->update('users', $data, $where);
        return $this->db->last_query();
        return count($status);
    }


    public function delete_user($where) {
        $status = $this->db->delete('users', $where);
        return count($status);
    }
}

//***************控制器中*********************//


    public function index() {

        $user = new User_Model;
        $result = $user->get_user(1);
        /*
        $data = array(
                    'id' => 2,
                    'name' => 'test',
                    'pass' => 'pass');

        echo $user->add_user($data);exit;*/

         $where['id'] = 2;
         $where['name'] = 'test';
         $data = array(
                    'name' => 'test',
                    'pass' => 'pass');
         $user->update_user($data, $where);


//视图的加载
class Index_Controller extends Controller {

    const ALLOW_PRODUCTION = FALSE;

    public $template = 'kohana/template';

    public function index() {

        //多视图模板的加载其中header/content/footer 为三个子模板
        $view = new View('template');
        $view->header  = new View('header');
        $view->content = new View('content');
        $view->footer  = new View('footer');
        $view->header->title = 'Title';
        $view->content->content = 'content';
        $view->content->data = $result;
        $view->footer->copright = 'copright';
        $view->render(TRUE);  // 显示输出到浏览器
    }

}


//关于表单数据的获取(已经转义) Controller中 $this->input->get(); 数组形式
//所有的类都是自动加载。如果需要加载其它类 只需要在自己的Controller的构造中添加$this->pro = new Pro;

URL重定向
url::redirect('http://www.baidu.com');exit;


//缓存的设置

public function cache() {
        //$this->cache = Cache::instance();
        $this->cache = new Cache();
        $data = $this->cache->get('user');
        if(!$data){
            $data = array('name'=>'Tom','age'=>20);
            $this->cache->set('user', $data);
        }
        var_dump($data);
}

/**
CREATE TABLE caches(
    id varchar(127),
    hash char(40),
    tags varchar(255),
    expiration int,
    cache blob);
*/


COOKIE的设置和获取
public function cookie() {
        cookie::set('name', 'test', time()+3600);
        echo cookie::get('name');
}
/*
SESSION的设置和获取
Session 库改写 PHP 内建的 sessions 数组:$_SESSION。这就意味着也可以通过 PHP 的方式获取到 session 数据
*/
public function sess() {
    //Session 库会通过 $this→session 激活。如果当前任何的 session 数据存在,它就会激活。如果没有 session 数据存在,则会自动创建一个新的 session。
        $this->session = Session::instance();
        //Session::create(); // 销毁当前已经存在的SESION 并创建一个新的SESSION
        echo $this->session->id();
        $this->session->set('username','username');
        $this->session->delete('username'); //删除SESSION变量
        echo $this->session->get('username');
        $this→session→destroy();// 销毁所有 session 数据,包括可识别它的浏览器的 cooki。


}
/*CREATE TABLE sessions
(
    session_id VARCHAR(127) NOT NULL,
    last_activity INT(10) UNSIGNED NOT NULL,
    data TEXT NOT NULL,
    PRIMARY KEY (session_id)
);*/

/**
Session 储存方式
默认情况下 Session 数据是以 Cookie 的方式储存。你可以通过修改 config/session.php 文件修改储存方式。

驱动可以在这个文件设置。Session 名和其他的配置项均可以设置。

当前可用的驱动和它们的储存容器:

cookie - 使用 Cookie(默认)
native - 使用文件
database - 使用数据库
cache - 使用什么方式(文件,内存,数据库)取决于配置
使用数据库驱动储存 Session
使用数据库驱动储存 Session 需使用数据库和相关表。

默认情况下,Session 库使用默认数据库组中你已经配置的数据库。

默认情况下,Session 库会从表中调用 sessions。(注意!这个架构是之前的版本,详情请下下面)

您可以根据自己的情况配置,首先创建一个表来储存 session。

*/

  

posted @ 2013-11-06 05:19  浮夸浮华  阅读(459)  评论(0)    收藏  举报