Posts Tagged ‘programowanie’

Dependecy Injection: Symfony – Kontener Usługi


04 lut
{lang: 'pl'}

symfony2

Do tej pory mówiliśmy o ogólnych pojęciach. Dwa wprowadzające rozdziały były bardzo ważne dla lepszego zrozumienia implementacji, o której będziemy wspominać w tym i w kolejnych rozdziałach. Nadszedł czas, aby zanurzyć się w komponent Kontenera Usługi Symfony.

Kontener Dependency Injection w Symfony zarządzany jest przez klasę o nazwie sfServiceContainer. Jest to bardzo lekka klasa implementująca podstawowe cechy o których wspominaliśmy w poprzednich artykułach.

W języku Symfony, usługą jest każdy obiekt zarządzany przez kontener. W przykładzie z Zend_Mail z poprzedniego rozdziału, mieliśmy dwie usługi: usługę mailer oraz mail_transport:

Wejdź na stronę z postem, żeby zobaczyć podgląd kodu źródłowego.

Jeśli klasę Container odziedziczymy po klasie sfServiceContainer uprości nam to nieco kod:

Dependecy Injection: Kontenery Dependency Injection


25 sty
{lang: 'pl'}

symfony2Kolejny rozdział tłumaczenia komponentu Dependency Injection. Tym razem zapoznamy się ze światem kontenerów DI, a także zobaczymy w jaki sposób kontenery wpływają na jakość późniejszego utrzymywania wieloobiektowego kodu. Zapraszam.

Przed zanurkowaniem w świat kontenerów Depenedency Injection zaryzykujmy śmiałym stwierdzeniem:

Przez większą część czasu używania DI nie będziesz potrzebował używać w tym celów kontenerów.

Lecz kiedy będziesz musiał zarządzać znaczną ilością oiektów z wieloma zależnościami, kontenery DI okażą się niezwykle pomocne ( np. przy budowie frameworka ).

Jeśli pamiętasz przykład z pierwszego rozdziału, tworzony obiekt User wymagał wcześniejszego utworzenia obiektu SessionStorage. Nic wielkiego, ale jednak, przed stworzeniem nowej instancji musisz pamiętać o wszystkich zależnościach wymaganych przez ten obiekt.

Dependency Injection: Czym jest jest Dependency Injection?


16 sty
{lang: 'pl'}

symfony2Symfony2 tuż za rogiem, więc wpadłem na pomysł żeby zabrać się za tłumaczenie dokumentacji ( wydanej na licencji Creative Commons Attribution-Share Alike 3.0 Unported License. ) podstawowego komponentu na którym bazuje nowa wersja frameworka – Dependecy Injection. Przy moim poziomie znajomości angielskiego zapewne nie wyjdzie zbyt rewelacyjnie. Dlatego uwagi piszcie w komentarzach. Tłumaczenie starałem się przystosować do „polskich realiów” (cokolwiek miałoby to znaczyć), więc nie jest do końca wierne oryginałowi.

Czym jest Dependency Injection?

Dependecy Injection nie jest powszechnym pojęciem w świecie PHP, rozdział ten przedstawi czym jest DI wykorzystując w tym celu „czysty” PHP.

Tworzenie nowego projektu w Symfony2 PR


14 sty
{lang: 'pl'}

symfony2Już niedługo (prawdopodobnie w pierwszej połowie marca) światło dzienne ujrzy stabilna wersja frameworka Symfony2. Już dziś nowe Sf dostępne jest jako wersja poglądowa, na której całkiem zgrabnie można ćwiczyć.

Najprostszym sposobem, aby rozpocząć przygodę z nowym Sf jest skorzystanie z sandboxa czyli prekonfigurowanej wersji frameworka. Jednak wybór tej metody powoduje pewne trudności w aktualizowaniu źródeł (i zależności) z repozytorium git’a jak i pracę z tym SCM’em. Ja preferuję podejście ręcznego utworzenia nowego projektu, który spokojnie można sobie rozwijać na githubie :).

Przygotowanie środowiska

Najpierw należy pobrać i zainstalować źródła bootstrap’era symfony. Logujemy się jako root:

Fatal error: Class ‘Locale’ not found


23 gru
{lang: 'pl'}

Brak klasy Locale jest oznaką niezainstalowanego dodatku Internationalization (manual). Najpierw należy przekompilować php z dyrektywą –enable-intl. Jeśli podczas configure wyskoczy błąd w stylu:

Wejdź na stronę z postem, żeby zobaczyć podgląd kodu źródłowego.

Neleży doinstalować biblioteki icu (dla slackware 13.1_64 icu jest do pobrania tutaj).

Po poprawnym przekompilowaniu php klasa Locale powinna być dostępna.

Uwaga. Dla innych dystrybucji konieczne może się okazać zainstalowanie icu, libicu oraz libicu-devel.

PHP 5. Narzędzia dla ekspertów

PHP 5. Narzędzia dla ekspertów

Osiągnij wyższy poziom zaawansowania w PHP! Jak tworzyć efektywny, łatwy w utrzymaniu kod PHP? Jak automatycznie tworzyć dokumentację techniczną? Jak debugować aplikację z Xdebug? Język PHP to ulubione środowisko wielu programistów tworzących aplikacje i strony intern...

[B]log programistyczny

IP 38.107.179.242 (38.107.179.242)