Path

ez components / documentation / api reference / 2008.1 / base


Base

[ Tutorial ] [ Class tree ] [ Element index ] [ ChangeLog ] [ Credits ]

Source for file options.php

Documentation is available at options.php

  1. <?php
  2. /**
  3.  * File containing the ezcBaseOptions class.
  4.  *
  5.  * @package Base
  6.  * @version 1.5
  7.  * @copyright Copyright (C) 2005-2008 eZ systems as. All rights reserved.
  8.  * @license http://ez.no/licenses/new_bsd New BSD License
  9.  */
 10.  
 11. /**
 12.  * Base options class for all eZ components.
 13.  *
 14.  * @package Base
 15.  * @version 1.5
 16.  */
 17. abstract class ezcBaseOptions implements ArrayAccess
 18. {
 19.     /**
 20.      * Container to hold the properties
 21.      *
 22.      * @var array(string=>mixed) 
 23.      */
 24.     protected $properties;
 25.  
 26.     /**
 27.      * Construct a new options object.
 28.      * Options are constructed from an option array by default. The constructor
 29.      * automatically passes the given options to the __set() method to set them
 30.      * in the class.
 31.      * 
 32.      * @throws ezcBasePropertyNotFoundException
 33.      *          If trying to access a non existent property.
 34.      * @throws ezcBaseValueException
 35.      *          If the value for a property is out of range.
 36.      * @param array(string=>mixed) $options The initial options to set.
 37.      */
 38.     public function __constructarray $options array() )
 39.     {
 40.         foreach $options as $option => $value )
 41.         {
 42.             $this->__set$option$value );
 43.         }
 44.     }
 45.  
 46.     /**
 47.      * Merge an array into the actual options object.
 48.      * This method merges an array of new options into the actual options object.
 49.      * 
 50.      * @throws ezcBasePropertyNotFoundException
 51.      *          If trying to access a non existent property.
 52.      * @throws ezcBaseValueException
 53.      *          If the value for a property is out of range.
 54.      * @param array(string=>mixed) $newOptions The new options.
 55.      */
 56.     public function mergearray $newOptions )
 57.     {
 58.         foreach $newOptions as $key => $value )
 59.         {
 60.             $this->__set$key$value );
 61.         }
 62.     }
 63.     
 64.     /**
 65.      * Property get access.
 66.      * Simply returns a given option.
 67.      * 
 68.      * @throws ezcBasePropertyNotFoundException
 69.      *          If a the value for the property options is not an instance of
 70.      * @param string $propertyName The name of the option to get.
 71.      * @return mixed The option value.
 72.      * @ignore
 73.      *
 74.      * @throws ezcBasePropertyNotFoundException
 75.      *          if the given property does not exist.
 76.      * @throws ezcBasePropertyPermissionException
 77.      *          if the property to be set is a write-only property.
 78.      */
 79.     public function __get$propertyName )
 80.     {
 81.         if $this->__isset$propertyName === true )
 82.         {
 83.             return $this->properties[$propertyName];
 84.         }
 85.         throw new ezcBasePropertyNotFoundException$propertyName );
 86.     }
 87.     
 88.     /**
 89.      * Sets an option.
 90.      * This method is called when an option is set.
 91.      * 
 92.      * @param string $propertyName  The name of the option to set.
 93.      * @param mixed $propertyValue The option value.
 94.      * @ignore
 95.      *
 96.      * @throws ezcBasePropertyNotFoundException
 97.      *          if the given property does not exist.
 98.      * @throws ezcBaseValueException
 99.      *          if the value to be assigned to a property is invalid.
100.      * @throws ezcBasePropertyPermissionException
101.      *          if the property to be set is a read-only property.
102.      */
103.     abstract public function __set$propertyName$propertyValue );
104.  
105.     /**
 88. /**
 89.      * Returns if a option exists.
 90.      * 
 91.      * @param string $propertyName Option name to check for.
 92.      * @return bool Whether the option exists.
 93.      * @ignore
111.      */
112.     public function __isset$propertyName )
113.     {
114.         return array_key_exists$propertyName$this->properties );
115.     }
116.  
117.     /**
118.      * Returns if an option exists.
119.      * Allows isset() using ArrayAccess.
120.      * 
121.      * @param string $propertyName The name of the option to get.
122.      * @return bool Whether the option exists.
123.      */
124.     public function offsetExists$propertyName )
125.     {
126.         return $this->__isset$propertyName );
127.     }
128.  
129.     /**
130.      * Returns an option value.
131.      * Get an option value by ArrayAccess.
132.      * 
133.      * @throws ezcBasePropertyNotFoundException
134.      *          If $propertyName is not a key in the $properties array.
135.      * @param string $propertyName The name of the option to get.
136.      * @return mixed The option value.
137.      */
138.     public function offsetGet$propertyName )
139.     {
140.         return $this->__get$propertyName );
141.     }
142.  
143.     /**
144.      * Set an option.
145.      * Sets an option using ArrayAccess.
146.      * 
147.      * @throws ezcBasePropertyNotFoundException
148.      *          If $propertyName is not a key in the $properties array.
149.      * @throws ezcBaseValueException
150.      *          If the value for a property is out of range.
151.      * @param string $propertyName The name of the option to set.
152.      * @param mixed $propertyValue The value for the option.
153.      */
154.     public function offsetSet$propertyName$propertyValue )
155.     {
156.         $this->__set$propertyName$propertyValue );
157.     }
158.  
159.     /**
160.      * Unset an option.
161.      * Unsets an option using ArrayAccess.
162.      * 
163.      * @throws ezcBasePropertyNotFoundException
164.      *          If $propertyName is not a key in the $properties array.
165.      * @throws ezcBaseValueException
166.      *          If a the value for a property is out of range.
167.      * @param string $propertyName The name of the option to unset.
168.      */
169.     public function offsetUnset$propertyName )
170.     {
171.         $this->__set$propertyNamenull );
172.     }
173. }
174. ?>
Last updated: Wed, 18 Jun 2008