Registry

Aus php bar
Wechseln zu: Navigation, Suche

Implementierung

Um aus verschiedenen Klassen auf "globale" Objekte und Variablen zuzugreifen, gibt es das Registry-Entwurfsmuster. Die Registry kann als abstract deklariert werden, da nur statische Attribute und Methoden verwendet werden. virtual assistant

 span class="coMULTI">/**
  * Registry class to pass global variables between classes.
  *//**
      * Object registry provides storage for shared objects
      *
      * @var array 
      *//**
      * Adds a new variable to the Registry.
      *
10      * @param string $key Name of the variable
11      * @param mixed $value Value of the variable
12      * @throws Exception
13      * @return bool 
14      */'Unable to set variable `''`. It was already set.');
15         }
16     }
17 
18     /**
19      * Tests if given $key exists in registry
20      *
21      * @param string $key
22      * @return bool
23      *//**
24      * Returns the value of the specified $key in the Registry.
25      *
26      * @param string $key Name of the variable
27      * @return mixed Value of the specified $key
28      *//**
29      * Returns the whole Registry as an array.
30      *
31      * @return array Whole Registry
32      *//**
33      * Removes a variable from the Registry.
34      *
35      * @param string $key Name of the variable
36      * @return bool
37      *//**
38      * Removes all variables from the Registry.
39      *
40      * @return void 
41      */// Anwendung
42 'test', 'Ich bin ueberall verfuegbar.''test'); // Output: ich bin ueberall verfuegbar.
43 


Um Codevervollständigung zu unterstützen muss man die Implementierung hier noch etwas abändern. Hier ein Beispiel, wo die Variable $registry immer global aufgerufen wird:

 span class="coMULTI">/**
  * Registry class to pass global variables between classes.
  * 
  * @property string $test
  *//**
 	 * Object registry provides storage for shared objects
 	 *
 	 * @var array 
 	 *//**
10 	 * Adds a new variable to the Registry.
11 	 *
12 	 * @param string $key Name of the variable
13 	 * @param mixed $value Value of the variable
14 	 * @return void 
15 	 *//**
16 	 * Tests if given $key exists in registry
17 	 *
18 	 * @param string $key
19 	 * @return bool
20 	 *//**
21 	 * Returns the value of the specified $key in the Registry.
22 	 *
23 	 * @param string $key Name of the variable
24 	 * @return mixed Value of the specified $key
25 	 */// Anwendung
26 'Ich bin ueberall verfuegbar.'// Output: ich bin ueberall verfuegbar.
27