热门标签 | 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控制层文件再继承之,十分好用


推荐阅读
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文是对《敏捷软件开发:原则、模式与实践》一书的深度解析,书中不仅探讨了敏捷方法的核心理念及其应用,还详细介绍了面向对象设计的原则、设计模式的应用技巧及UML的有效使用。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文详细介绍了在 Ubuntu 16.04 系统上安装和配置 PostgreSQL 数据库的方法,包括如何设置监听地址、启用密码加密、更改默认用户密码以及调整客户端访问控制。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 在现代Web开发中,许多网站采用伪静态技术,如URL以.html或.shtml结尾,以提升用户体验和搜索引擎优化。MVC框架中的路由机制能够轻松实现这一功能。通过配置默认路由并添加伪静态路由规则,MVC框架按照从上到下的顺序进行路由匹配,确保请求被正确处理。此外,这种机制还支持灵活的自定义路由,进一步增强了应用的可扩展性和维护性。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
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社区 版权所有