Intercepting filter to wzorzec projektowy, który znajduje zastosowanie w aplikacjach wymagających wielokrotnego wykonywania tych samych czynności. Za przykład może posłużyć sytuacja, w której skrypt na samym początku musi uzyskać połączenie z bazą danych, a na końcu je zamknąć. Innymi często powtarzającymi się działaniami są operacje związane z autoryzacją, transakcjami, logowaniem zdarzeń, itd. czytaj całość »
Przestrzenie nazw, czyli jedna z najbardziej oczekiwanych funkcjonalności, została udostępniona dla programistów wraz z wydaniem PHP 5.3. Namespaces pozwalają na grupowanie klas, funkcji i stałych poprzez nadawanie im unikalnych nazw, które są następnie wykorzystywane w procesie odwoływania się do tak uporządkowanych struktur kodu. czytaj całość »
Introspekcja to pojęcie oznaczające zdolność aplikacji do zarządzania własnym kodem. Pozwala zatem pobierać informacje na temat klas,interfejsów i funkcji w trakcie działania programu. Termin ten jest utożsamiany z mechanizmem refleksji. czytaj całość »
Stan to kolejny wzorzec projektowy, z którym chciałbym Was zapoznać. W dużym stopniu wykazuje on podobieństwo do innego wzorca, którego miałem już okazję opisywać - strategii. Stan posługuje się kompozycją obiektów, implementujących ten sam interfejs, przez co pozwala na swobodne zmiany sposobu wykonania tych samych czynności w zależności od potrzeb (a konkretniej stanu obiektu). czytaj całość »
Dekorator to wzorzec projektowy, który z wykorzystaniem kompozycji obiektów, pozwala na dynamiczne dołączanie do klas nowych funkcjonalności. Składa się z obiektu dekorowanego i dekoratorów. Obiekt dekorowany to instancja klasy, którą zamierzamy wzbogacić o dodatkowe zadania. Dekoratory implementują nowe zachowania, aby na końcu delegować wykonanie konkretnych operacji do obiektu dekorowanego. czytaj całość »
Pojęcie asercji wiąże się ściśle z etapem testowania napisanego kodu. Zazwyczaj przyjmuje formę wyrażenia logicznego, które zwraca albo prawdę albo fałsz. Stanowi więc doskonałe narzędzie, dzięki któremu możemy w prosty sposób, wychwycić błędy w pisanych aplikacjach. W PHP dostęp do asercji umożliwiają dwie funkcje assert() i assert_options() czytaj całość »
Przyszedł czas na zapoznanie się z kolejnym design pattern’em. Dlaczego właściwie fasada? Jednym z powodów może być fakt, iż często mylony jest lub utożsamiany ze wzorcem adapter, o którym już wcześniej pisałem parę słów. czytaj całość »
Oprócz implementacji funkcji magicznych __sleep() i __wakeup() istnieje alternatywne rozwiązanie, pozwalające przejąć kontrolę nad serializacją obiektów. Mowa o interfejsie Serializable. czytaj całość »
W PHP 5 pojawił się rozbudowany Reflection API, który umożliwia uzyskiwanie szczegółowych informacji na temat klas (ich właściwości oraz metod), funkcji i interfejsów. Dzięki niemu możemy na przykład, utworzyć system wtyczek dla naszej aplikacji. czytaj całość »
W tym krótkim wpisie chciałbym zaprezentować Wam parę ciekawostek związanych z językiem PHP. Pomimo faktu, iż programuje w nim już dość długi okres czasu, to nadal potrafi mnie czymś zaskoczyć. Zatem zapraszam do lektury. czytaj całość »