包 | system.collections |
---|---|
继承 | class CConfiguration » CMap » CComponent |
实现 | Countable, ArrayAccess, Traversable, IteratorAggregate |
源自 | 1.0 |
版本 | $Id: CConfiguration.php 3458 2011-11-21 02:13:03Z alexander.makarow $ |
源码 |
CConfiguration代表基于数组的配置.
它可以用来初始化对象的属性。
配置数据可以从PHP文件加载进来。例如,
要将配置内容应用到对象,调用applyTo()。 在配置数据里面的每一个(键名 key,键值 value)对都会像这样 应用:$object->$key=$value.
由于CConfiguration继承于CMap,它可以作为一个关联数组使用。 关于其更多内容,请参考CMap。
它可以用来初始化对象的属性。
配置数据可以从PHP文件加载进来。例如,
return array( 'name'=>'My Application', 'defaultController'=>'index', );使用下面代码来加载上面的配置数据:
$config=new CConfiguration('path/to/config.php');
要将配置内容应用到对象,调用applyTo()。 在配置数据里面的每一个(键名 key,键值 value)对都会像这样 应用:$object->$key=$value.
由于CConfiguration继承于CMap,它可以作为一个关联数组使用。 关于其更多内容,请参考CMap。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
count | integer | 返回map中的项目数。 | CMap |
iterator | CMapIterator | 返回遍历这个列表的项目的迭代器。 | CMap |
keys | array | 返回键名列表 | CMap |
readOnly | boolean | 返回值说明这个列表是否为只读。默认为false。 | CMap |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__call() | 如果类中没有调的方法名,则调用这个方法。 | CComponent |
__construct() | 构造方法。 | CConfiguration |
__get() | 返回一个属性值、一个事件处理程序列表或一个行为名称。 | CComponent |
__isset() | 检查一个属性是否为null。 | CComponent |
__set() | 设置一个组件的属性值。 | CComponent |
__unset() | 设置一个组件的属性为null。 | CComponent |
add() | 添加一个项目到map。 | CMap |
applyTo() | 将配置应用到对象。 | CConfiguration |
asa() | 返回这个名字的行为对象。 | CComponent |
attachBehavior() | 附加一个行为到组件。 | CComponent |
attachBehaviors() | 附加一个行为列表到组件。 | CComponent |
attachEventHandler() | 为事件附加一个事件处理程序。 | CComponent |
canGetProperty() | 确定属性是否可读。 | CComponent |
canSetProperty() | 确定属性是否可写。 | CComponent |
clear() | 删除map中所有项目。 | CMap |
contains() | CMap | |
copyFrom() | 将迭代器中的数据复制到map。 | CMap |
count() | 返回map中的项目数。 | CMap |
detachBehavior() | 从组件中分离一个行为。 | CComponent |
detachBehaviors() | 从组件中分离所有行为。 | CComponent |
detachEventHandler() | 分离一个存在的事件处理程序。 | CComponent |
disableBehavior() | 禁用一个附加行为。 | CComponent |
disableBehaviors() | 禁用组件附加的所有行为。 | CComponent |
enableBehavior() | 启用一个附加行为。 | CComponent |
enableBehaviors() | 启用组件附加的所有行为。 | CComponent |
evaLuateExpression() | 计算一个PHP表达式,或根据组件上下文执行回调。 | CComponent |
getCount() | 返回map中的项目数。 | CMap |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
getIterator() | 返回遍历这个列表的项目的迭代器。 | CMap |
getKeys() | 返回返回键名列表 | CMap |
getReadOnly() | 返回返回值说明这个列表是否为只读。默认为false。 | CMap |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
itemAt() | 返回指定位置的项目。 | CMap |
loadFromFile() | 从文件加载配置数据并跟现有的配置合并。 | CConfiguration |
mergeArray() | 递归合并两个或多个数组。 | CMap |
mergeWith() | 将迭代器的数据整合到map。 | CMap |
offsetExists() | 返回值说明指定位置是否存在元素。 | CMap |
offsetGet() | 返回值指定位置的元素。 | CMap |
offsetSet() | 设置指定位置的元素。 | CMap |
offsetUnset() | 删除指定位置的元素。 | CMap |
raiseEvent() | 发起一个事件。 | CComponent |
remove() | 根据键名从map中删除一个项目。 | CMap |
saveAsString() | 将配置保存为字符串。 | CConfiguration |
toArray() | CMap |
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
setReadOnly() | 设置设置这个列表是否为只读 | CMap |
方法详细
__construct()
方法
public void __construct(mixed $data=NULL)
| ||
$data | mixed | 如果是字符串,它代表着配置文件(PHP文件,返回配置数组); 如果是数组,它包含配置数据。 |
public function __construct($data=null)
{
if(is_string($data))
parent::__construct(require($data));
else
parent::__construct($data);
}
构造方法。
applyTo()
方法
public void applyTo(object $object)
| ||
$object | object | 配置应用到的对象。 |
public function applyTo($object)
{
foreach($this->toArray() as $key=>$value)
$object->$key=$value;
}
将配置应用到对象。 在配置数据里面的每一个(键名key,键值value)都像这样 应用:$object->$key=$value。
loadFromFile()
方法
public void loadFromFile(string $configFile)
| ||
$configFile | string | 配置文件路径(如果使用相对路径,要小心哪个是当前路径) |
public function loadFromFile($configFile)
{
$data=require($configFile);
if($this->getCount()>0)
$this->mergeWith($data);
else
$this->copyFrom($data);
}
从文件加载配置数据并跟现有的配置合并。
配置文件一定是PHP文件,它返回配置数组(如下面的结构)
return array ( 'name'=>'My Application', 'defaultController'=>'index', );
参见
- mergeWith
saveAsString()
方法
public string saveAsString()
| ||
{return} | string | 反映配置的字符串。 |
public function saveAsString()
{
return str_replace("\r",'',var_export($this->toArray(),true));
}
将配置保存为字符串。 这个字符串是一个反映配置数据数组的可用的PHP表达式。