Registry classe

Door Stien ss, 17 jaar geleden, 3.445x bekeken

Misschien is het wat overbodig voor de mensen die OOP programmeren, maar ik post em toch, kan handig zijn voor beginners.

Deze classe dient als registry classe voor je webapplicatie.
Om het registry pattern toe te voegen dus.

Is te gebruiken als array.

Gesponsorde koppelingen

PHP script bestanden

  1. registry-classe

 

Er zijn 14 reacties op 'Registry classe'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Bob Duisters
Bob Duisters
17 jaar geleden
 
0 +1 -0 -1
Zou je mischien een voorbeeld kunnen plaatsen?
Stien ss
stien ss
17 jaar geleden
 
0 +1 -0 -1
Uhm dat gaat een beetje moeilijk omdat deze classe niks output ofzo..
Ik kan laten zien hoe ik het zelf altijd gebruikt:

in settings.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
     $reg
= Registry::getInstance();
    
     $db = MySQLDB::getInstance();
     $reg->add ( $db, 'database' );

     $tmp_parser = new TemplateParser();
     $reg->add ( $tmp_parser, 'template' );
?>


in class.User.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

     class User {
          private $db;
          
          public function __construct() {
                 $this->db = Registry::getInstance()->database;
         }
     }


     class AndereClasse {
          private $db;
          
          public function __construct() {
                 $this->db = Registry::getInstance()->database;
         }
     }

?>
Noxxos
Noxxos
17 jaar geleden
 
0 +1 -0 -1
Mooi script stien! Ik had al een keer zoiets willen maken, maar ik wist niet waar ik moest beginnen, dit zal me zeker helpen. Bedankt voor het delen!
Rolf Flikker op
Rolf Flikker op
17 jaar geleden
 
0 +1 -0 -1
Voorbeeld, regel 21
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
     public function __construct() {
            $this->db = Registry::getInstance()->database;
            $this->user = Registry::getInstan()->get ('user');
        }

getInstan() = getInstance()?

Verder: Respect.
Bob Duisters
Bob Duisters
17 jaar geleden
 
0 +1 -0 -1
@stien
ok
Scrptr
Scrptr
17 jaar geleden
 
0 +1 -0 -1
Kun je een voorbeeldje posten?
GaMer B
GaMer B
17 jaar geleden
 
0 +1 -0 -1
Quote:
Scrptr schreef op 07.03.2007 18:00
Kun je een voorbeeldje posten?


Ja, wat zei die nou :X Dit script heeft geen output.

@stien,
Mooi scriptje (Y)
Hipska BE
Hipska BE
17 jaar geleden
 
0 +1 -0 -1
echo $t; -> als dat nou geen output is ;-)

ik snap niet heel goed waar de classe voor dient ..
is het om waarden in $_GOBALS te schrijven en lezen?
Stien ss
stien ss
17 jaar geleden
 
0 +1 -0 -1
Die echo $t was gewoon een voorbeeld. Dit zal alleen iets outputten als je $t geen object is ( tenzij __toString is gemaakt ) en geen array.

Deze classe is ervoor om van global af te komen.
In je functies heb je altijd alle belangrijke objecten/settings bij de hand, deze zitten immers in je Registry classe, dus je hoeft nooit meer global in een functie te gebruiken.

Misschien wat uitleg: hier
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Mooie implementatie van het Registery Pattern, vooral ook omdat je meteen die SPL interfaces meeneemt. Er gaat niets boven hem vervolgens zonder omkijken in een foreach-lusje te kunnen stoppen ;)

Enige waar ik wat over inzit is je reference-gebruik. Dat is nogal vaag moet ik toegeven in PHP5. Hier staat wel een goeie uitleg waarom je het juist niet meer zou moeten doen:
http://blog.libssh2.org/index.php?/archives/51-Youre-being-lied-to..html
Stien ss
stien ss
17 jaar geleden
 
0 +1 -0 -1
@Jelmer,

Klopt zeker, ik weet niet goed hoe dit werkt in PHP5. Moet ik de & voor $global in add() weghalen, of juist niet?

En bedankt trouwens :-)
Bo az
Bo az
17 jaar geleden
 
0 +1 -0 -1
Ik ben vooral onder de indruk van je singleton method, die manier heb ik nog niet gezien ...

netjes!
Cees St
Cees St
17 jaar geleden
 
0 +1 -0 -1
Mooi script!
Na het lezen van het artikel waar Jelmer naar verwees, lijkt het mij dat je de & voor de $global kan weghalen.
Waarom je public function add ( &$global, $key = '' ) een lege $key toestaat is mij niet duidelijk, de get kan er niet meer bij dus wat is dan het nut?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Citroen Anoniem Graag
Citroen Anoniem Graag
14 jaar geleden
 
0 +1 -0 -1
Mooi script, handig te gebruiken ook door de SPL implementaties!
Zou het echter niet handiger zijn om de constructer van de classe private te maken? Op die manier dwing je singleton af..

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. registry-classe

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.