122 lines
2.4 KiB
Plaintext
122 lines
2.4 KiB
Plaintext
|
/**
|
||
|
* Method to iterate over any part of the registry
|
||
|
*
|
||
|
* @param string $path Registry path (e.g. joomla.content.showauthor)
|
||
|
*
|
||
|
* @return \ArrayIterator|null This object represented as an ArrayIterator.
|
||
|
*
|
||
|
* @since 3.4.0
|
||
|
*/
|
||
|
public function _(string $path): ?\ArrayIterator
|
||
|
{
|
||
|
$data = $this->extract($path);
|
||
|
|
||
|
if ($data === null)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
return $data->getIterator();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Append value to a path in registry of an array
|
||
|
*
|
||
|
* @param string $path Parent registry Path (e.g. joomla.content.showauthor)
|
||
|
* @param mixed $value Value of entry
|
||
|
*
|
||
|
* @return mixed The value of the that has been set.
|
||
|
*
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function appendArray(string $path, $value)
|
||
|
{
|
||
|
// check if it does not exist
|
||
|
if (!$this->exists($path))
|
||
|
{
|
||
|
$this->set($path, []);
|
||
|
}
|
||
|
|
||
|
return $this->append($path, $value);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Check if a registry path exists and is an array
|
||
|
*
|
||
|
* @param string $path Registry path (e.g. joomla.content.showauthor)
|
||
|
*
|
||
|
* @return boolean
|
||
|
*
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function isArray(string $path): bool
|
||
|
{
|
||
|
// Return default value if path is empty
|
||
|
if (empty($path)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// get the value
|
||
|
if (($node = $this->get($path)) !== null
|
||
|
&& is_array($node)
|
||
|
&& $node !== [])
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Check if a registry path exists and is a string
|
||
|
*
|
||
|
* @param string $path Registry path (e.g. joomla.content.showauthor)
|
||
|
*
|
||
|
* @return boolean
|
||
|
*
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function isString(string $path): bool
|
||
|
{
|
||
|
// Return default value if path is empty
|
||
|
if (empty($path)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// get the value
|
||
|
if (($node = $this->get($path)) !== null
|
||
|
&& is_string($node)
|
||
|
&& strlen((string) $node) > 0)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Check if a registry path exists and is numeric
|
||
|
*
|
||
|
* @param string $path Registry path (e.g. joomla.content.showauthor)
|
||
|
*
|
||
|
* @return boolean
|
||
|
*
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function isNumeric(string $path): bool
|
||
|
{
|
||
|
// Return default value if path is empty
|
||
|
if (empty($path)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// get the value
|
||
|
if (($node = $this->get($path)) !== null
|
||
|
&& is_numeric($node))
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|