CConfiguration

优质
小牛编辑
123浏览
2023-12-01
所有包 | 属性 | 方法
system.collections
继承class CConfiguration » CMap » CComponent
实现Countable, ArrayAccess, Traversable, IteratorAggregate
源自1.0
版本$Id: CConfiguration.php 3458 2011-11-21 02:13:03Z alexander.makarow $
源码framework/collections/CConfiguration.php
CConfiguration代表基于数组的配置.

它可以用来初始化对象的属性。

配置数据可以从PHP文件加载进来。例如,
return array(  'name'=>'My Application',  'defaultController'=>'index',
);
使用下面代码来加载上面的配置数据:
$config=new CConfiguration('path/to/config.php');


要将配置内容应用到对象,调用applyTo()。 在配置数据里面的每一个(键名 key,键值 value)对都会像这样 应用:$object->$key=$value.

由于CConfiguration继承于CMap,它可以作为一个关联数组使用。 关于其更多内容,请参考CMap。

公共属性

隐藏继承属性

属性类型描述定义在
countinteger返回map中的项目数。CMap
iteratorCMapIterator返回遍历这个列表的项目的迭代器。CMap
keysarray返回键名列表CMap
readOnlyboolean返回值说明这个列表是否为只读。默认为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)
$datamixed如果是字符串,它代表着配置文件(PHP文件,返回配置数组); 如果是数组,它包含配置数据。
源码: framework/collections/CConfiguration.php#48 (显示) publicfunction__construct($data=null)
{
if(is_string($data))
parent::__construct(require($data));
else
parent::__construct($data);
}

构造方法。

applyTo() 方法
public void applyTo(object $object)
$objectobject配置应用到的对象。
源码: framework/collections/CConfiguration.php#96 (显示) publicfunctionapplyTo($object)
{
foreach($this->toArray()as$key=>$value)
$object->$key=$value;
}

将配置应用到对象。 在配置数据里面的每一个(键名key,键值value)都像这样 应用:$object->$key=$value。

loadFromFile() 方法
public void loadFromFile(string $configFile)
$configFilestring配置文件路径(如果使用相对路径,要小心哪个是当前路径)
源码: framework/collections/CConfiguration.php#71 (显示) publicfunctionloadFromFile($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反映配置的字符串。
源码: framework/collections/CConfiguration.php#85 (显示) publicfunctionsaveAsString()
{
returnstr_replace("r",'',var_export($this->toArray(),true));
}

将配置保存为字符串。 这个字符串是一个反映配置数据数组的可用的PHP表达式。