当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

类別 - 一般

优质
小牛编辑
142浏览
2023-12-01

类别是什幺?

类别就是普通的 PHP 类别。它不需要扩充任何东西,或依循除了命名惯例的任何惯例,Fuel 内的所有其他类别也相同。

class Session

将载入 app/classes/session.php。

载入类别

不像一些其他框架,类别不需要手动载入。当你在程式码(控制器、模型等)中引用它们,它们将会自动载入。

子目录中的类别

就像 控制器,类别必须是小写且第一个字母大写,同时底线将置类别于子目录。

Class Session_Driver

将载入 app/classes/session/driver.php

类别与命名空间

为了确定要读哪个 PHP 档案,FuelPHP 的自动载入器将把命名空间与使用底线的类别名称视为完全相同。 这意味着在子目录里的类别,你可以混搭命名空间与底线来符合你的需求。

例如有一个类别在 app/classes/core/system/messages.php 档案里,此类别可以被定义为:

// 全域的命名空间,完全底线的类别名称
class Core_System_Messages {}

// 结合一个命名空间与底线
namespace Core;
class System_Messages {}

// 或完全的命名空间
namespace Core\System;
class Messages {}

第一种方法是最常用且最容易理解的,如果你结合 Use 声明使用已定义的类别, 命名空间的版本是特别方便的。

初始化你的类别

类别被载入时,让 Fuel 的自动载入器实施某些自动的任务是可能的, 有点像类别的实例 __construct() 所做的。 你可以透过添加一个公开的静态 _init() 方法到类别达成。

class Example {
	public static function _init()
	{
		// 紧接在载入类别后被呼叫
	}
}

如果一个被载入的类别有它自己的 _init() 方法及父层,必须跟着被载入, 父层的初始化方法不会被呼叫,除非你使用 parent::_init();