2008年7月20日 | 标签: , ,

Kohana的事件由name和callback两部分组成,名称一般包括一个前缀,但不是必须的,所有的基类事件都以system为前缀,为system.name的形式.
System Events
下面的事件在Kohana core文件中定义.
system.ready
钩子(hooks)被加载后马上调用,这是最早可捕捉的事件
system.routing
路由URL.
system.execute
控制器初始化 阅读全文…

2008年7月20日 | 标签: , ,

什么是模型
模型是处理控制器发出和请求的信息的类,举例说明,你有一留言本,控制器会要求模型检索最后10篇文章,模型返回后由控制器传送给视图,控制器也有可能发出更新或者删除已有的记录.注意Kohana不强迫你使用模型.
命名模型
kohana使用选定的规则命名模型:

  • 模型放在application/models/目录下
  • 模型文件名必须小写,并且没有_model 后缀,名字为单数形式
  • 模型类名首字母大写,以_model为后缀,名字为单数形式
  • 使用ORM还有更多的约定

阅读全文…

2008年7月20日 | 标签: , ,

概述
视图是你的程序的表现,一般是HTML, CSS,JavaScript,也可以是其他的如XML或者用于AJAX输出的Json,视图的目的是将表现层与你的程序逻辑分离,以保持更好的易用性.有了这些基础,视图可以把你传递给他们的数据用于输出.例如用用表格的形式循环输出一个产品信息的数组,视图仍然是一个PHP文件,你可以在里面使用正常情况下你所能使用的代码.视图在控制器的命名空间内生效,因此你可以使用任何已经加载的资源.
创建视图
视力需要放在views目录下,文件名除去其扩展名就是视图名称,如果有需要视图文件也可以放在子目录下,但是加载的时候要注意其路径.例如:

// Filename home.php
$view = new View('home');
// Filename list.php in sub-directory 'products'
$view = new View('products/list');

阅读全文…

2008年7月19日 | 标签: , ,

基准测试类
基准测试类允许你测定代码执行时间,默认情况下列几个类运行:

  • Kohana Loading
  • Environment Setup
  • System Initialization
  • Controller Setup
  • Controller Execution
  • Total Execution

阅读全文…

2008年7月19日 | 标签: , ,

助手是一些对开发中有用的函数,助手和类库的里的方法有些类似,但是存在一些奥妙的差别.在类库中里需要实例化一个对象才能使用其方法,助手方法都是一些类中的静态方法,因此不用实例化,你可以认为它们是”全局函数”.
helpers在使用它们时会自动加载,因此不用手动加载.这里是一个调用helpers的例子

// show the location of this Kohana installation
echo url::base();

你可以添加自己的助手函数和替换或者扩展kohana的内置助手函数.
添加你自己的助手函数
当创建自己的助手时,需要遵循以一下约定: 阅读全文…

2008年7月17日 | 标签:

今天一个朋友问我,在IE6下,为什么他设定的DIV的高度和实际高度不一致,一般情况下,

<div style="height:200px;background:#ff00ff"></div>

是没有任何问题的,但是,

<div style="height:4px;background:#ff00ff"></div>

或者高度更低的时候,在IE6下就不再是我们所希望的结果了,比你预期的要高,这时候请别忘记对当前DIV加上font-size属性,

<div style="height:4px;font-size:1px;background:#ff00ff"></div>

这样就OK了

2008年7月14日 | 标签: ,

下列库在Kohana中总是自动加载

  • Loader
  • URI
  • Input

其他库也可以自动加载,比如要加载Profiler库,你只需要在你控制器的构造函数中加入

$this->profiler = new Profiler;

另外,你需要手动加载类,只需要这样

$this->load->library('some_library');

阅读全文…

2008年7月13日 | 标签:

自Kohana 2.1.2 $this→load() 不被赞成使用

自动加载
如果某个类没有被加载,PHP具有自动加载的功能,Kohana也有此功能,举例:

$user = new User_Model;
$cache = new Cache();
html::stylesheet();
$this->layout = new View('layout');

这不同于Kohana自动加载功能,Kohana的自动加载功能会在任一页面加载某一个库,模型等,例如你想自动加载Session库在任意页面.
加载库(Loading libraries)
一般来说,有两种方式加载库,例如加载session库, 阅读全文…

4 of 5«12345»