Path

ez components / documentation / api reference / trunk / base


eZ Components trunk

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 //autogentag//
 7.  * @copyright Copyright (C) 2005-2009 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 //autogentag//
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: Mon, 21 Dec 2009