本文整理汇总了PHP中Parse::modifierAlias方法的典型用法代码示例。如果您正苦于以下问题:PHP Parse::modifierAlias方法的具体用法?PHP Parse::modifierAlias怎么用?PHP Parse::modifierAlias使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Parse
的用法示例。
在下文中一共展示了Parse::modifierAlias方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getVariable
/**
* Takes a scope-notated key and finds the value for it in the given
* array or object.
*
* @param string $key Dot-notated key to find
* @param array|object $data Array or object to search
* @param mixed $default Default value to use if not found
* @return mixed
*/
protected function getVariable($key, $data, $default = null)
{
// <statamic>
// detect modifiers
$modifiers = null;
if (strpos($key, "|") !== false) {
$parts = explode("|", $key);
$key = $parts[0];
$modifiers = array_splice($parts, 1);
}
// </statamic>
if (strpos($key, $this->scopeGlue) === false) {
$parts = explode('.', $key);
} else {
$parts = explode($this->scopeGlue, $key);
}
foreach ($parts as $key_part) {
if (is_array($data)) {
if (!array_key_exists($key_part, $data)) {
return $default;
}
$data = $data[$key_part];
} elseif (is_object($data)) {
if (!isset($data->{$key_part})) {
return $default;
}
$data = $data->{$key_part};
} else {
return $default;
}
}
// <statamic>
// execute modifier chain
if ($modifiers) {
foreach ($modifiers as $mod) {
$now = time();
if (strpos($mod, ":") === false) {
$modifier = $mod;
$modifier_params = array();
} else {
$parts = explode(":", $mod);
$modifier = $parts[0];
$modifier_params = array_splice($parts, 1);
}
$hash = \Debug::markStart('modifiers', $modifier, $now);
try {
// load modifier
$modifier_obj = \Resource::loadModifier(\Parse::modifierAlias($modifier));
// ensure method exists
if (!method_exists($modifier_obj, "index")) {
throw new \Exception("Improperly formatted modifier object.");
}
// call method
$data = $modifier_obj->index($data, $modifier_params);
\Debug::increment('modifiers', $modifier);
} catch (\Exception $e) {
// do nothing
}
\Debug::markEnd($hash);
}
}
// </statamic>
return $data;
}