Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa core
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Klasa core, czyli klasa która będzie musiała zająć się ładowaniem potrzebnych klas i tworzenia ich egzemplarzy.

Wymyśliłem coś takiego:

  1. <?php
  2. class core {
  3.        
  4.        private $handle;
  5.        
  6.        public function __get($name) {
  7.            return $this->handle[$name];
  8.        }
  9.        
  10.        public function __set($name, $value) {
  11.            $this->handle[$name] = $value;
  12.            return true;
  13.        }
  14.        
  15.        public function _load($file) {
  16.            if ($this->$file) {
  17.                return $this->$file;
  18.            }else{
  19.                include_once('class/'.$file.'.php');
  20.                return $this->$file = new $file;
  21.            }
  22.        }
  23.        
  24.    }
  25. ?>


Użycie:
  1. <?php
  2. $core = new core();
  3.    $test = $core->_load('test');
  4.    $core->test->a();
  5.    $test->a();
  6. ?>


To rozwiązanie jest troszkę podpatrzone z ZF ale ręcznie trzeba ładować zamiast automatycznie. ;p (jak to zrobili w ZF ?)
Tylko klasy chciałbym podzielić np. na te do obsługi baz danych, grafiki, xml etc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




I jakie jest pytanie? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

W sumie, to nic innego, jak trochę uwalony wzorzec registry... Skoro robisz klasę core, to po co ją instancjujesz, w jaki sposób z kontrolerów chcesz uzyskać do niej dostęp? Tworząc nową?
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(erix @ 16.07.2009, 11:56:07 ) *

Jak zrobić podział klas na te do obsługi baz etc.

Cytat(erix @ 16.07.2009, 11:56:07 ) *
W sumie, to nic innego, jak trochę uwalony wzorzec registry... Skoro robisz klasę core, to po co ją instancjujesz, w jaki sposób z kontrolerów chcesz uzyskać do niej dostęp? Tworząc nową?


Zrobię jakiś singleton ;p


Zmieniłem __get na taki:

  1. <?php
  2. public function __get($name) {
  3.            if ($this->handle[$name]) {
  4.                return $this->handle[$name];
  5.            }else{
  6.                return $this->_load($name);
  7.            }
  8.        }
  9. ?>


I teraz mam automatyczne ładowanie ;p

Cytat(antyqjon @ 16.07.2009, 12:01:20 ) *
Co do automagicznego ładowania, poczytaj o __autoload, bądź spl_autoload_register" title="Zobacz w manualu PHP" target="_manual.


Nie muszę czytać bo wiem co to jest i nie o to tutaj chodzi.

Ten post edytował fifi209 16.07.2009, 12:05:12
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 13:39