本文整理汇总了PHP中yii\base\Behavior类的典型用法代码示例。如果您正苦于以下问题:PHP Behavior类的具体用法?PHP Behavior怎么用?PHP Behavior使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Behavior类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* @param string|Behavior $behavior
*/
public function __construct($behavior)
{
if ($behavior instanceof Behavior) {
$this->_behavior = (string) $behavior->className();
} else {
if (is_string($behavior)) {
$this->_behavior = (string) $behavior;
}
}
}
示例2: init
public function init()
{
parent::init();
$mark = $this->multiple ? UploadStrategyFactory::UPLOAD_MULTIPLE : UploadStrategyFactory::UPLOAD_SINGLE;
$this->uploadStrategy = UploadStrategyFactory::get($mark);
$this->uploadStrategy->setBehavior($this);
}
示例3: init
/**
* Init
*/
public function init()
{
if ($this->attributes == null) {
throw new InvalidConfigException('Property "attributes" must be set');
}
parent::init();
}
示例4: attach
public function attach($owner)
{
parent::attach($owner);
if (!$this->key) {
$this->key = constant(get_class($owner) . '::CACHE_KEY');
}
}
示例5: attach
public function attach($owner)
{
parent::attach($owner);
$owner->on(BaseActiveRecord::EVENT_BEFORE_INSERT, [AdminLogEvent::className(), AdminLogEvent::EVENT_CREATE_ITEM], ['title' => $this->titleAttribute, 'icon' => $this->icon]);
$owner->on(BaseActiveRecord::EVENT_BEFORE_UPDATE, [AdminLogEvent::className(), AdminLogEvent::EVENT_UPDATE_ITEM], ['title' => $this->titleAttribute, 'icon' => $this->icon]);
$owner->on(BaseActiveRecord::EVENT_BEFORE_DELETE, [AdminLogEvent::className(), AdminLogEvent::EVENT_DELETE_ITEM], ['title' => $this->titleAttribute, 'icon' => $this->icon]);
}
示例6: attach
/**
* @inheritdoc
*/
public function attach($owner)
{
parent::attach($owner);
if (!is_array($this->attributes) || empty($this->attributes)) {
throw new InvalidParamException('Invalid or empty attributes array.');
} else {
foreach ($this->attributes as $attribute => $config) {
if (!isset($config['path']) || empty($config['path'])) {
throw new InvalidParamException('Path must be set for all attributes.');
}
if (!isset($config['tempPath']) || empty($config['tempPath'])) {
throw new InvalidParamException('Temporary path must be set for all attributes.');
}
if (!isset($config['url']) || empty($config['url'])) {
$config['url'] = $this->publish($config['path']);
}
$this->attributes[$attribute]['path'] = FileHelper::normalizePath(Yii::getAlias($config['path'])) . DIRECTORY_SEPARATOR;
$this->attributes[$attribute]['tempPath'] = FileHelper::normalizePath(Yii::getAlias($config['tempPath'])) . DIRECTORY_SEPARATOR;
$this->attributes[$attribute]['url'] = rtrim($config['url'], '/') . '/';
$validator = Validator::createValidator('string', $this->owner, $attribute);
$this->owner->validators[] = $validator;
unset($validator);
}
}
}
示例7: canSetProperty
/**
* @inheritdoc
*/
public function canSetProperty($name, $checkVars = true)
{
if (in_array($name, [$this->titleAttribute, $this->keywordsAttribute, $this->descriptionAttribute])) {
return true;
}
return parent::canSetProperty($name, $checkVars);
}
示例8: attach
/**
* @param \yii\base\Component $owner
*/
public function attach($owner)
{
parent::attach($owner);
if (!$this->group) {
$this->group = get_class($this->owner);
}
}
示例9: init
/**
* @inheritdoc
*/
public function init()
{
parent::init();
if (empty($this->copyTo)) {
throw new InvalidConfigException('attribute copyTo must be provided');
}
}
示例10: __get
public function __get($name)
{
if ($name == $this->getAttributeName()) {
return $this->getRelation();
}
return parent::__get($name);
}
示例11: attach
/**
* @inheritdoc
*/
public function attach($owner)
{
parent::attach($owner);
$validators = $owner->validators;
foreach ($this->rules as $rule) {
if ($rule instanceof Validator) {
$validators->append($rule);
$this->validators[] = $rule;
// keep a reference in behavior
} elseif (is_array($rule) && isset($rule[0], $rule[1])) {
// attributes, validator type
$validator = Validator::createValidator($rule[1], $owner, (array) $rule[0], array_slice($rule, 2));
$validators->append($validator);
$this->validators[] = $validator;
// keep a reference in behavior
} else {
throw new InvalidConfigException('Invalid validation rule: a rule must specify both attribute names and validator type.');
}
}
$owner->on(ActiveRecord::EVENT_BEFORE_INSERT, function () {
$this->saveRelatedDir($this->txt, $this->id_field, $this->name_field, $this->classDir);
});
$owner->on(ActiveRecord::EVENT_BEFORE_UPDATE, function () {
$this->saveRelatedDir($this->txt, $this->id_field, $this->name_field, $this->classDir);
});
}
示例12: init
/**
* @inheritdoc
*/
public function init()
{
parent::init();
if (empty($this->sessionVarName)) {
throw new InvalidConfigException('The $sessionVarName should be configured for this behavior.');
}
}
示例13: init
/**
* @inheritdoc
*/
public function init()
{
parent::init();
if (!$this->app_id || !$this->mch_id || !$this->app_key || !$this->app_secret) {
throw new InvalidConfigException("WxPay::app_id & mch_id & app_key & app_secret are required to be configured.");
}
}
示例14: canSetProperty
/**
* @inheritdoc
*/
public function canSetProperty($name, $checkVars = true)
{
if (isset($this->attributes[$name]) || $name === $this->flagsAttribute) {
return true;
}
return parent::canSetProperty($name, $checkVars);
}
示例15: attach
public function attach($owner)
{
if (!$owner instanceof ShelterInterface) {
throw new InvalidParamException('$owner must implement ShelterInterface.');
}
parent::attach($owner);
}