本文整理汇总了PHP中Type::factory方法的典型用法代码示例。如果您正苦于以下问题:PHP Type::factory方法的具体用法?PHP Type::factory怎么用?PHP Type::factory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Type
的用法示例。
在下文中一共展示了Type::factory方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get
public static function get($name)
{
if (self::$factory == NULL) {
self::$factory = new Factory('types');
}
return self::$factory->get($name);
}
示例2: __construct
public function __construct($name, $type = 'raw', $default = null, $required = true)
{
$name = is_string($name) ? trim($name) : null;
if (empty($name)) {
throw new \InvalidArgumentException("Name can't be empty.");
}
$this->name = $name;
$this->type = Type::factory($type);
$this->default = $default;
$this->required = $required === true;
}
示例3: change
/**
* 修改属性值并把被修改的属性标记为被修改过的状态
*
* @param string $key
* @param mixed $value
* @param array $attribute
*/
protected final function change($key, $value, array $attribute = null)
{
$attribute = $attribute ?: static::getMapper()->getAttribute($key);
$type = Type::factory($attribute['type']);
if (array_key_exists($key, $this->values)) {
if ($value === $this->values[$key]) {
return;
} elseif ($type->isNull($value) && $type->isNull($this->values[$key])) {
return;
}
} elseif ($type->isNull($value) && $attribute['allow_null']) {
return;
}
$this->values[$key] = $value;
$this->dirty[$key] = true;
}
示例4: unpack
/**
* 把Data实例内的数据,转换为适用于存储的格式.
*
* @param Data $data
* @param array [$options]
*
* @return array
*/
public function unpack(Data $data, array $options = null)
{
$defaults = ['dirty' => false];
$options = $options ? array_merge($defaults, $options) : $defaults;
$attributes = $this->getAttributes();
$record = [];
foreach ($data->pick(array_keys($attributes)) as $key => $value) {
if ($options['dirty'] && !$data->isDirty($key)) {
continue;
}
if ($value !== null) {
$attribute = $attributes[$key];
$value = Type::factory($attribute['type'])->store($value, $attribute);
}
$record[$key] = $value;
}
return $record;
}