konto usunięte

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

Mam pytanie bo w pliku index w glownym katalogu mam dolaczone klasy Zenda czyli :

include "Zend/Loader.php";
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');

Ale w plikach w katalogu controller dolaczam swoje klasy z katalogu models:

function init() {
$this->view->baseUrl = $this->_request->getBaseUrl();
Zend_Loader::loadClass('Users');
Zend_Loader::loadClass('Mail');

I teraz mam pytania:

1. Jak zrobic zeby dolaczac klasy ktore beda widoczne w kazdym z pliku projektow ? to czy to mam dolaczyc w tym pliku index co sa tez klasy Zenda ?

2. Czy lepiej robic funkcje statyczne do ktorych odwolam sie przez ::
czylu Mail::sendMail($arrParams); czy towrzyc singletony ?

Generalnie zalezy mi na tym ze jak zrobie plik clasy do logowania i chce miec wszedzie dostep np do metody LOGGS(tresc) to moge napisac
$costam = new Logger();
$costam->logger('tresc');

to jak chce to uzyc w dowolnym pliku to nie chcialbym by ta clasa Logger juz byla dolaczona wszedzie automatycznie. to jak to zrobic?
Arkadiusz Burszczan

Arkadiusz Burszczan Programista Java

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

Jeśli to jest np. jedna klasa z library, to możesz include zrobić z danego pliku w bootstrapie zrobić na samym początku pliku, a jeśli np. chcesz dołączać katalogi z application to możęsz w public/index.php ustawić w set_include_path śćieżki do tych katalogów.Arkadiusz Burszczan edytował(a) ten post dnia 30.11.11 o godzinie 13:27
Marek Skopowski

Marek Skopowski Development Team
Leader

konto usunięte

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

Autoloader mam wlaczony i te sciezki tez juz dodalem i jest tak ze jak dodam klase swoja log do boostrapera to jest widoczna wszedzie. a jak mam swoje clasy i chce je tylko w swoim pliku kontrolera to tam je dodaje w zend loader :) Dzieki za pomoc coraz bardziej to ogarniam.
Maciej Filipiak

Maciej Filipiak właściciel, VizMedia

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

oprócz tego, że autoloader, to stosuję w swoich rozwiązaniach jeszcze jeden pomysł.

Stworzyłem sobie GlobalController dziedziczący tak jak kontroller
a każdy następny controller dziedziczy po GlobalController

Dzięki temu pewne pierdoły wspólne dla wszystkich controllerów mam w jednym miejscu,
zwłaszcza globalne zmienne, które muszą być widoczne w widokach.

konto usunięte

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

a tak czysto teoretyczne pytanie, co sadzicie o zastapieniu zendowego (1.x) autoloadera rozwiazaniem z zf 2, czyli funkcją inkludującą klasy wpisane np. do arraya? w sensie, ze nie czekam na lazyloading z autoloadera, tylko wiem o wszystkich klasach, jakie wykorzystam w projekcie i robie sobie arraya zawierającego nazwy klas i plikow i robie foreach'a po nim, inkludując wszystko od razu. wydaje mi się, że byłoby znacznie szybsze?
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Jak zaladowac klasy zeby wszedzie byly dostepne ?

czytam... czytam... i mi rece opadaja... :S

Panowie, to jest PHP, to bylo jest i bedzie wolne chocbyscie nie wiem jakie kombinacje robili, jak chcecie wydajnosci to sie poprostu skaluje, stawia varnisha czy inny cache i dziala

co do globali i innych wynalazkow... singleton to zlo, stary poradziecki pattern ktory trzeba tepic, dla dobra Waszego i potomnych co kod beda utrzymywac polecam dependency injection :P

Następna dyskusja:

Jak uzyc klasy Zend_Db_Stat...




Wyślij zaproszenie do