免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2271 | 回复: 0
打印 上一主题 下一主题

PHP HMVC框架kohana 小结1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-23 17:08 |只看该作者 |倒序浏览
PHP HMVC框架kohana 小结1



  之前kohana 3的安装见:http://jackyrong.iteye.com/admin/blogs/1186006
1 在bootstrap中设置开发模式:
     Kohana:environment = Kohana:EVELOPMENT;
  再增加如下代码:
  1. if (isset($_SERVER['KOHANA_ENV']))
  2. {
  3. Kohana::$environment = $_SERVER[?KOHANA_ENV?];
  4. }
复制代码
相关的值有:
  1. PRODUCTION, STAGING, TESTING, and DEVELOPMENT.
复制代码
2 设置时区
  1. date_default_timezone_set('America/Chicago');
复制代码
3 启用相关的module
   Kohana::modules(array(  中的注释按需要打开

4 创建默认的config文件(这点比CI差了)
   在application\config下设置一个比如site.php的文件,放置日常用的变量,比如:
  1. <?php defined('SYSPATH') or die('No direct script access.');
  2. return array(
  3. 'name' => 'Egotist',
  4. 'tag_line' => "Let's talk about me!"
  5. );
复制代码
则获得其变量时,这样:
  1. $site_config = Kohana::config('site');
  2.     $site_name = $site_config['name'];
  3. $tag_line = $site_config['tag_line'];
复制代码
甚至可以这样只加载其中的某个变量:
   $site_name = Kohana::config('site.name');
   
   也可以数组的形式加载变量,比如:
  1. return array(
  2. 'name' => 'Egotist',
  3. 'details' => array(
  4. 'tag_line' => "Let's talk about me!",
  5. 'alt_tag_line' => "Today's subject: ME!";
  6. );
  7. );  
复制代码
 加载:
   
  1. $site_config = Kohana::config('site');
  2. // Echo site name and details
  3. echo $site_config['name']; // Egotist
  4. echo $site_config['details']['tag_line'] // Lets talk about me!
  5. echo $site_config['details']['alt_tag_line'] // Today's subject: ME!
复制代码
  也可以:
  1. echo Kohana::config('site.details.tag_line');
复制代码
5 controller的命名规范,必须符合如下
  1. Controller_xxxx,XXX放在classes/controller/xxx.php,比如
  2.   Controller_User_Profile则为 classes/controller/user/profile.php
复制代码
6 给view传递数据
   
  controller中:
  1. public function action_index()
  2. {
  3. //3.2只能用这个方法
  4. $view = View::factory('welcome')
  5. ->set('site_name', 'Egotist')
  6. ->set('random', rand(1,10));
  7. $this->response->body($view);
  8. }
复制代码
view中:
  1. <h1>Welcome to <?php echo $site_name; ?></h1>
  2. <?php echo $random; ?> is a number between 1 and 10
复制代码
也可以用bind绑定
  1. $view = View::factory('welcome')->bind('site_name', $site_name)
  2. ->bind('random', $random);
  3. $site_name = 'Egotist';
  4. $random = rand(1, 10);

  5. $this->response->body($view);
复制代码
7 使用template controller
  1. class Controller_Welcome extends Controller_Template
  2.   {
  3.      $content = View::factory('welcome')
  4. ->bind('random', $random);
  5. $random = rand(1, 10);
  6. $content->site_name = 'Egotist Beta';
  7. $this->template->content = $content;
  8. }
  9.     }
复制代码
页面中直接输出:
    <?php echo $content;?>

8 设置全局变量,以方便在各页面中直接读取
  1. View::set_global('site_name', 'Egotist Beta');
复制代码
之后可以在任何view中读取:
        <?php echo $site_name; ?>
9 在控制层中,写一个基类,保存一些基本的信息,比如CSS,JAVASCRIPT,常量可以这

样:
  1. abstract class Controller_Application extends Controller_Template {
  2. public function before()
  3. {
  4. parent::before();
  5. View::set_global('site_name', 'Egotist Beta');
  6. $this->template->content = '';
  7. $this->template->styles = array();
  8. $this->template->scripts = array();
  9. }
复制代码
其他PHP控制层文件再继承之,十分好用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP