热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPHMVC框架kohana小结1

之前kohana3的安装见:http:jackyrong.iteye.comadminblogs11860061在bootstrap中设置开发模式:Kohana::
之前kohana 3的安装见:http://jackyrong.iteye.com/admin/blogs/1186006

1 在bootstrap中设置开发模式:

Kohana::$environment = Kohana::DEVELOPMENT;

再增加如下代码:

if (isset($_SERVER['KOHANA_ENV']))

{

Kohana::$environment = $_SERVER[?KOHANA_ENV?];

}

相关的值有:

PRODUCTION, STAGING, TESTING, and DEVELOPMENT.





2 设置时区

date_default_timezone_set('America/Chicago');

3 启用相关的module

Kohana::modules(array( 中的注释按需要打开



4 创建默认的config文件(这点比CI差了)

在application\config下设置一个比如site.php的文件,放置日常用的变量,比如:


return array(

'name' => 'Egotist',

'tag_line' => "Let's talk about me!"

);

则获得其变量时,这样:

$site_config = Kohana::config('site');

$site_name = $site_config['name'];

$tag_line = $site_config['tag_line'];

甚至可以这样只加载其中的某个变量:

$site_name = Kohana::config('site.name');



也可以数组的形式加载变量,比如:

return array(

'name' => 'Egotist',

'details' => array(

'tag_line' => "Let's talk about me!",

'alt_tag_line' => "Today's subject: ME!";

);

);

 加载:

   $site_config = Kohana::config('site');

// Echo site name and details

echo $site_config['name']; // Egotist

echo $site_config['details']['tag_line'] // Lets talk about me!

echo $site_config['details']['alt_tag_line'] // Today's subject: ME!

  也可以:

echo Kohana::config('site.details.tag_line');



5 controller的命名规范,必须符合如下

Controller_xxxx,XXX放在classes/controller/xxx.php,比如

Controller_User_Profile则为 classes/controller/user/profile.php

6 给view传递数据



controller中:

public function action_index()

{

//3.2只能用这个方法

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

->set('site_name', 'Egotist')

->set('random', rand(1,10));

$this->response->body($view);

}



view中:

Welcome to



is a number between 1 and 10





也可以用bind绑定



$view = View::factory('welcome')->bind('site_name', $site_name)

->bind('random', $random);

$site_name = 'Egotist';

$random = rand(1, 10);



$this->response->body($view);



7 使用template controller

class Controller_Welcome extends Controller_Template

{

$content = View::factory('welcome')

->bind('random', $random);

$random = rand(1, 10);

$content->site_name = 'Egotist Beta';

$this->template->content = $content;

}

}



页面中直接输出:





8 设置全局变量,以方便在各页面中直接读取

View::set_global('site_name', 'Egotist Beta');

之后可以在任何view中读取:



9 在控制层中,写一个基类,保存一些基本的信息,比如CSS,Javascript,常量可以这



样:

abstract class Controller_Application extends Controller_Template {

public function before()

{

parent::before();

View::set_global('site_name', 'Egotist Beta');

$this->template->content = '';

$this->template->styles = array();

$this->template->scripts = array();

}



其他PHP控制层文件再继承之,十分好用


推荐阅读
author-avatar
live科_722
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有