Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wywołanie obiektu na innej podstronie -wzorzec Rejestr
b3rt
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Witam,
mam plik konfiguracyjny header.php
i stronę index.php, login.php, registry.php

REGISTRY.php

jest to wzorzec projektowy Rejestr - działa na zasadzie Singleton

  1. abstract class Registry {
  2.  
  3. private static $_tools = array();
  4.  
  5. public static function set($name, $value) {
  6. self::$_tools[$name] = $value;
  7. }
  8.  
  9. public static function get($name) {
  10. return (isset(self::$_tools[$name]) ? self::$_tools[$name] : null);
  11. }
  12.  
  13. }


HEADER.php

  1. $db = new PDO('...');
  2. Registry::set('db', $db);


USER.php

  1. class User
  2. {
  3. ...
  4.  
  5.  
  6. function __construct($login, $haslo) {
  7. $m = Registry::get('db')->query("SELECT * FROM users WHERE `username`='$login', `password`='$haslo' LIMIT 1")->fetch();


W klasie User mogę używać obiektu db do łączenia się z bazą.


LOGIN.php
  1.  
  2. $user = new User($login, $password);
  3. Registry::set('user', $user);


W tym przypadku gdy dodaję obiekt do obiektu Register nie jest on dostępny w każdym miejscu np. w INDEX.php gdzie chciałbym wykonać pewną metodę z klasy User.
W jaki sposób uczynić $user dostępnym w każdym miejscu ? Gdybym w HEADER.php utworzył $user = new User($login, $password) i dodał do Registry to pewnie by zadziałało ale obiekt User ma powstać w chwili zalogowania ... jak rozwiązać taką sytuację ? Jak to się powinno poprawnie robić? Proszę o radę.

Ten post edytował b3rt 18.10.2012, 20:31:03
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:33