- 论坛徽章:
- 0
|
PHP HMVC框架kohana 小结1
之前kohana 3的安装见:http://jackyrong.iteye.com/admin/blogs/1186006
1 在bootstrap中设置开发模式:
Kohana: environment = Kohana: EVELOPMENT;
再增加如下代码:- 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的文件,放置日常用的变量,比如:- <?php defined('SYSPATH') or die('No direct script access.');
- 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中:- <h1>Welcome to <?php echo $site_name; ?></h1>
- <?php echo $random; ?> 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;
- }
- }
复制代码 页面中直接输出:
<?php echo $content;?>
8 设置全局变量,以方便在各页面中直接读取- View::set_global('site_name', 'Egotist Beta');
复制代码 之后可以在任何view中读取:
<?php echo $site_name; ?>
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控制层文件再继承之,十分好用 |
|