状态 草稿
Todo Very rough, needs expanding and rewriting to read better. Include paths especially
官方最后更新时间 2009/01/29 08:45

Kohana 文件系统(Filesystem)

文件类型

严谨的 Kohana MVC-Lh (MVC - Libraries helpers) 解释:

  • 模型(Model)是用来代表具体的数据,例如数据库中特定表的数据或 HTML 表单。
  • 视图(View)作为一个 data-to-HTML 的转换层。
  • 控制器(Controller)作为“切入点”,他们也可以直接并控制应用程序的流程以及如何转化处理 URI 到应用程序函数中。
  • 库(Libraries)就像一个工具箱,放置预存的数据或者表单的数组(例如: SessionValidationInput) 或者其他 ORM (数据库表)或者 Archive (文件系统)。
  • 助手(Helpers)用作简单重复的工作,如 HTML 标签,标记 URI 转换 URL ,或者验证 Email 地址。

除此之外,Kohana 还添加下面的结构:

  • 配置文件(Configuration), 简单的静态数组存储 (file.key)
  • 语言文件(i18n), 同配置文件 (file.key)
  • 钩子(Hooks), 在进程早期用它 “Hook into” 到 Kohana 系统中。

基础结构

首先,你应该了解 Kohana 的目录结构。下面为一般结构(注:modules 文件夹根据你的不同而不同) :

root
 +- application
 |    +- cache
 |    +- config
 |    +- controllers
 |    +- helpers
 |    +- hooks
 |    +- libraries
 |    +- logs
 |    +- models
 |    +- views
 |
 +- modules
 |    +- media
 |        +- config
 |        +- controllers
 |        +- helpers
 |        +- libraries 
 |    +- ..... 
 +- system
 |    +- config
 |    +- controllers
 |    +- core
 |    +- helpers
 |    +- i18n
 |    +- libraries
 |    +- models
 |    +- vendor
 |    +- views
 |
 +- index.php

级联

Kohana 文件系统是一个单一的目录结构,即根据所有目录(我们称之为包含路径)依次走下去:

application > modules > system

系统根据上面的结构从左往右依次读取。

打个比方吧,如果你有一个视图文件在 application/views 目录和 system/views 下叫 layout.php,当 layout.php 被执行时 application 目录下的文件执行会高于其他一切的路径。如果你删除了 application/views 的文件,则返回 system/views 下面的文件。

模组化

Kohana 也是模块化。这意味着可以自定义目录可以插入模块,让系统自动检索。

参见 模块(Modules) 如何设置这些。

applicationsystem 目录可被视为硬编码模块。他们处理后和正规的模块无异除了下面的例外。

异常处理

在 Kohana 系统中存在两种异常处理:

  1. config.php 必须 放在 application/config 目录下面。如果他存在在一个扩展(Module)或者 system 目录则不会读取。 这是因为它包含一些扩展的设置信息必须在其它扩展之前载入,以使框架知道其他的配置所在的路径。
  2. 部分核心的文件不受级联控制。它们被 hardcode 进了 kohana 的启动过程,并且不会被上级的文件所覆盖。

配置和 国际化 文件

当多个相同名字的文件在编译路径发现时,这系统文件将会合并这些配置文件。

详情请参见 配置(Configuration)国际化(i18n)

构建目录

cache

默认情况下,当使用文件驱动时 缓存库(Cache Library) 利用这个目录村是文件的缓存。 还可以从您的应用程序存储任何自定义缓存的数据。

config

所有的配置文件都会通过 Config class 存贮在这里。

controllers

所有的 控制器(Controllers) 都要通过 路由(Routing) 指向这里。

helpers

hooks

参见 钩子(Hooks)

Internationalization

语言文件通过 Kohana::lang() 读取。每种语言分别凡在独立的文件夹名内。详细请参见 国际化(i18n)

libraries

参见 库(Libraries)

logs

默认情况下, 日志文件通过在 Log class 存放在 application/logs 目录下面。

models

参见 模型(Models)

vendor

第三方的库文件和脚本没有加入到 Kohana 的应放在这里。详情参见 库(Libraries)

views

参见 视图(Views)

general/filesystem.txt · 最后更改: 2009/02/04 17:50 由 icyleaf