Current File : /home/pacjaorg/public_html/kmm/libraries/src/Object/LegacyPropertyManagementTrait.php |
<?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2022 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\Object;
// phpcs:disable PSR1.Files.SideEffects
\defined('JPATH_PLATFORM') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Trait which contains the legacy methods that formerly were inherited from \Joomla\CMS\Object\CMSObject to set and
* get properties of the current class.
*
* @since 4.3.0
*
* @deprecated 4.3.0 will be removed in 6.0
* Will be removed without replacement
* Create proper setter functions for the individual properties or use a \Joomla\Registry\Registry
*/
trait LegacyPropertyManagementTrait
{
/**
* Sets a default value if not already assigned
*
* @param string $property The name of the property.
* @param mixed $default The default value.
*
* @return mixed
*
* @since 1.7.0
*
* @deprecated 4.3.0 will be removed in 6.0
* Defining dynamic properties should not be used anymore
*/
public function def($property, $default = null)
{
$value = $this->get($property, $default);
return $this->set($property, $value);
}
/**
* Returns a property of the object or the default value if the property is not set.
*
* @param string $property The name of the property.
* @param mixed $default The default value.
*
* @return mixed The value of the property.
*
* @since 1.7.0
*
* @see CMSObject::getProperties()
*
* @deprecated 4.3.0 will be removed in 6.0
* Create a proper getter function for the property
*/
public function get($property, $default = null)
{
if (isset($this->$property)) {
return $this->$property;
}
return $default;
}
/**
* Returns an associative array of object properties.
*
* @param boolean $public If true, returns only the public properties.
*
* @return array
*
* @since 1.7.0
*
* @see CMSObject::get()
*
* @deprecated 4.3.0 will be removed in 6.0
* Create a proper getter function for the property
*/
public function getProperties($public = true)
{
$vars = get_object_vars($this);
if ($public) {
foreach ($vars as $key => $value) {
if ('_' == substr($key, 0, 1)) {
unset($vars[$key]);
}
}
}
return $vars;
}
/**
* Modifies a property of the object, creating it if it does not already exist.
*
* @param string $property The name of the property.
* @param mixed $value The value of the property to set.
*
* @return mixed Previous value of the property.
*
* @since 1.7.0
*
* @deprecated 4.3.0 will be removed in 6.0
* Create a proper setter function for the property
*/
public function set($property, $value = null)
{
$previous = $this->$property ?? null;
$this->$property = $value;
return $previous;
}
/**
* Set the object properties based on a named array/hash.
*
* @param mixed $properties Either an associative array or another object.
*
* @return boolean
*
* @since 1.7.0
*
* @see CMSObject::set()
*
* @deprecated 4.3.0 will be removed in 6.0
* Create a proper setter function for the property
*/
public function setProperties($properties)
{
if (\is_array($properties) || \is_object($properties)) {
foreach ((array) $properties as $k => $v) {
// Use the set function which might be overridden.
$this->set($k, $v);
}
return true;
}
return false;
}
}