content top

stan

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). Cały proces jest poddany...

Więcej

funkcje anonimowe

Dla osób, które miały okazję programować w języku JavaScript zapewne nie będzie to żadna nowość. Niemniej jednak od wersji PHP 5.3, otrzymaliśmy możliwość korzystania z funkcji anonimowych. W tym krótkim wpisie chciałbym wytłumaczyć zasadę ich działania w oparciu o kilka przykładów. Co to jest? Funkcja anonimowa, to funkcja jak każda inna z tym wyjątkiem, iż nie wymaga określania jej nazwy i może zostać...

Więcej

dekorator

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. Choć po takim wprowadzeniu ów...

Więcej

asercja

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(). Aby dobrze zrozumieć omawiane zagadnienie, spójrzmy na poniższy...

Więcej

directoryiterator

Być może nie wiecie, ale w PHP 5 istnieje świetna alternatywa dla funkcji opendir(),readdir() czy też scandir().Przedstawiam zatem obiektowy sposób poruszania się po katalogach systemu plików. Spójrzmy na przykład użycia: try { $dir = new DirectoryIterator ('./przykladowy_katalog'); // $file jest rowniez obiektem klasy DirectoryIterator foreach ($dir as $file) echo $file->GetFilename(); } catch (RuntimeException $e)...

Więcej

fasada

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. A trzeba to jasno powiedzieć – występują między nimi spore różnice! fasada Z założenia tworzy zunifikowany i uproszczony interfejs wysokiego poziomu dla podsystemu, który korzysta z...

Więcej

serializable

Oprócz implementacji funkcji magicznych __sleep() i __wakeup() istnieje alternatywne rozwiązanie, pozwalające przejąć kontrolę nad serializacją obiektów. Mowa o interfejsie Serializable. Przyjrzyjmy się mu z bliska: interface Serializable { abstract public string serialize ( void ) abstract public mixed unserialize ( string $serialized ) } Tak więc: serialize() – wywoływana przy serializacji obiektu klasy. Zwraca...

Więcej
content top