git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
228 lines
4.7 KiB
PHP
228 lines
4.7 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: object.php 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla.Framework
|
|
* @subpackage Base
|
|
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
|
|
* @license GNU/GPL, see LICENSE.php
|
|
* Joomla! is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses.
|
|
* See COPYRIGHT.php for copyright notices and details.
|
|
*/
|
|
defined('JPATH_BASE') or die();
|
|
/**
|
|
* Object class, allowing __construct in PHP4.
|
|
*
|
|
* @package Joomla.Framework
|
|
* @subpackage Base
|
|
* @since 1.5
|
|
*/
|
|
class JObject
|
|
{
|
|
|
|
/**
|
|
* An array of errors
|
|
*
|
|
* @var array of error messages or JExceptions objects
|
|
* @access protected
|
|
* @since 1.0
|
|
*/
|
|
var $_errors = array();
|
|
|
|
/**
|
|
* A hack to support __construct() on PHP 4
|
|
*
|
|
* Hint: descendant classes have no PHP4 class_name() constructors,
|
|
* so this constructor gets called first and calls the top-layer __construct()
|
|
* which (if present) should call parent::__construct()
|
|
*
|
|
* @access public
|
|
* @return Object
|
|
* @since 1.5
|
|
*/
|
|
function JObject()
|
|
{
|
|
$args = func_get_args();
|
|
call_user_func_array(array(&$this, '__construct'), $args);
|
|
}
|
|
|
|
/**
|
|
* Class constructor, overridden in descendant classes.
|
|
*
|
|
* @access protected
|
|
* @since 1.5
|
|
*/
|
|
function __construct() {}
|
|
|
|
|
|
/**
|
|
* Returns a property of the object or the default value if the property is not set.
|
|
*
|
|
* @access public
|
|
* @param string $property The name of the property
|
|
* @param mixed $default The default value
|
|
* @return mixed The value of the property
|
|
* @see getProperties()
|
|
* @since 1.5
|
|
*/
|
|
function get($property, $default=null)
|
|
{
|
|
if(isset($this->$property)) {
|
|
return $this->$property;
|
|
}
|
|
return $default;
|
|
}
|
|
|
|
/**
|
|
* Returns an associative array of object properties
|
|
*
|
|
* @access public
|
|
* @param boolean $public If true, returns only the public properties
|
|
* @return array
|
|
* @see get()
|
|
* @since 1.5
|
|
*/
|
|
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;
|
|
}
|
|
|
|
/**
|
|
* Get the most recent error message
|
|
*
|
|
* @param integer $i Option error index
|
|
* @param boolean $toString Indicates if JError objects should return their error message
|
|
* @return string Error message
|
|
* @access public
|
|
* @since 1.5
|
|
*/
|
|
function getError($i = null, $toString = true )
|
|
{
|
|
// Find the error
|
|
if ( $i === null) {
|
|
// Default, return the last message
|
|
$error = end($this->_errors);
|
|
}
|
|
else
|
|
if ( ! array_key_exists($i, $this->_errors) ) {
|
|
// If $i has been specified but does not exist, return false
|
|
return false;
|
|
}
|
|
else {
|
|
$error = $this->_errors[$i];
|
|
}
|
|
|
|
// Check if only the string is requested
|
|
if ( JError::isError($error) && $toString ) {
|
|
return $error->toString();
|
|
}
|
|
|
|
return $error;
|
|
}
|
|
|
|
/**
|
|
* Return all errors, if any
|
|
*
|
|
* @access public
|
|
* @return array Array of error messages or JErrors
|
|
* @since 1.5
|
|
*/
|
|
function getErrors()
|
|
{
|
|
return $this->_errors;
|
|
}
|
|
|
|
|
|
/**
|
|
* Modifies a property of the object, creating it if it does not already exist.
|
|
*
|
|
* @access public
|
|
* @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
|
|
* @see setProperties()
|
|
* @since 1.5
|
|
*/
|
|
function set( $property, $value = null )
|
|
{
|
|
$previous = isset($this->$property) ? $this->$property : null;
|
|
$this->$property = $value;
|
|
return $previous;
|
|
}
|
|
|
|
/**
|
|
* Set the object properties based on a named array/hash
|
|
*
|
|
* @access protected
|
|
* @param $array mixed Either and associative array or another object
|
|
* @return boolean
|
|
* @see set()
|
|
* @since 1.5
|
|
*/
|
|
function setProperties( $properties )
|
|
{
|
|
$properties = (array) $properties; //cast to an array
|
|
|
|
if (is_array($properties))
|
|
{
|
|
foreach ($properties as $k => $v) {
|
|
$this->$k = $v;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Add an error message
|
|
*
|
|
* @param string $error Error message
|
|
* @access public
|
|
* @since 1.0
|
|
*/
|
|
function setError($error)
|
|
{
|
|
array_push($this->_errors, $error);
|
|
}
|
|
|
|
/**
|
|
* Object-to-string conversion.
|
|
* Each class can override it as necessary.
|
|
*
|
|
* @access public
|
|
* @return string This name of this class
|
|
* @since 1.5
|
|
*/
|
|
function toString()
|
|
{
|
|
return get_class($this);
|
|
}
|
|
|
|
/**
|
|
* Legacy Method, use {@link JObject::getProperties()} instead
|
|
*
|
|
* @deprecated as of 1.5
|
|
* @since 1.0
|
|
*/
|
|
function getPublicProperties()
|
|
{
|
|
return $this->getProperties();
|
|
}
|
|
}
|