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ęcejfunkcje 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ęcejdekorator
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ęcejasercja
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ęcejdirectoryiterator
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ęcejfasada
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ęcejserializable
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

Cecha to funkcjonalność, która została stworzona, z myślą o tych wszystkich programistach, którym bardzo brakuje możliwości oferowanych przez mechanizm wielokrotnego dziedziczenia. Może się bowiem zdarzyć sytuacja, w której implementowana klasa powinna dziedziczyć, nie po jednej, a po większej ilości klas. Dotychczas...
Tym razem zwięźle i lapidarnie na temat virtual proxy. Na początku warto wspomnieć, iż należy on do grupy wzorców strukturalnych i jest przedstawicielem licznej rodziny proxy. W języku polskim określenie to najczęściej tłumaczy się jako pośrednik lub pełnomocnik. Familia proxy skupia się na tworzeniu obiektu, którego zadaniem...
Facebook jest największym serwisem społecznościowym na świecie. Posiada on ogromną ilość aplikacji i gier, które swój żywot zawdzięczają facebook API. We wpisie tym, dokładnie krok po kroku pokażę, jak napisać prostą aplikację z jego użyciem.
1. Rejestracja
Choć wydaje się to banalne, to jest to warunek konieczny. Zatem...
Wpisem tym powracam do tematyki design patterns. Tym razem postaram się wyjaśnić czym jest bridge i w jakich okolicznościach jego użycie może się okazać niezbędne. Jeśli miałbym scharakteryzować most w jednym zdaniu, zapewne przybrałoby ono następującą formę:
Jest to wzorzec strukturalny, a jego głównym zadaniem jest...