Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu php Kanał ATOM (tag: php)

Autor wpisu: WojciechNaruniec, dodany: 08.04.2007 00:55, tagi: php

Dziś wydano Zend Framework w wersji Beta 0.9.2. W tym wydaniu poprawiono sporo błędów, ale też pojawiły się nowe funkcjonalności. Ciekawe są zmiany w komponencie Zend_Log. Klasa Zend_Log została przeniesiona z inkubatora do jądra frameworka. Ma całkowicie przebudowany interfejs, a także dużo większe możliwości. Teraz przy zapisywaniu do pliku tekstowego można konfigurować format zapisu danych, na [...]

Autor wpisu: Splatch, dodany: 04.04.2007 00:01, tagi: php

Od jakiegoś czasu na forum.php.pl spotykam się z różnymi zdaniami na temat interfejsów i klas abstrakcyjnych. Argumenty, które czasami się trafiają są chybione.

Zacznijmy od tego, że trzeba potrafić rozróżnić interfejs od klasy abstrakcyjnej, [b]to nie to samo[/b]! Interfejs jest najwyższym poziomem abstrakcji, który definiuje nowy, wolny od implementacji typ. Bez jakiejkolwiek linii kodu, tylko sygnatury metod publicznych. Klasa abstrakcyjna jest już początkiem konkretnej implementacji, zawiera kod ogólny i wymusza w klasach dziedziczących dorzucenie konkretnych metod, które są specyficzne, inne, różne. Mogą trafić się takie przypadki, że klasa abstrakcyjna zawiera 5 metod, a jej pochodne tylko jedną. Czy jest to uzasadnione? Oczywiście. Ta jedna metoda determinuje nowy typ, który jest jawną specjalizacją.

Warto pamiętać, że w chwili gdy mamy klasę abstrakcyjną i kilka jej pochodnych dorzucenie interfejsu jest polisą na życie. Spójrzmy, na praktykę - co się powinno dziać w chwili, gdy pojawiają się kolejne pochodne oraz klasa abstrakcyjna rozrasta się do niebagatelnych rozmiarów? Wyodrębniamy wspólny interfejs (patrz extract interface) i kolejne klasy abstrakcyjne. Bez problemu dorzucamy kolejny typ i lecimy bez przestojów. W chwili gdy uzależnimy się od klasy abstrakcyjnej z jakimkolwiek kodem z biegiem czasu możemy mieć do czynienia z klasami, które zawierają po 10, 20 i więcej metod. Nawigacja po tak rozbudowanym typie jest uciążliwa a zrozumienie kodu wymaga przebrnięcia przez stos metod, które tworzą swoisty labirynt. Rozsądne użycie interfejsów i klas pozwala nam tworzyć złożone ale przejrzyste struktury. Separacja abstrakcji od implementacji określana mianem wzorca projektowego, nazwa mostem (ang. bridge).

Budowa złożonej aplikacji bez użycia interfejsów jest posunięciem wysoce nierozsądnym, ponieważ to właśnie dzięki nim, nawet w językach kompilowanych ze statycznym typowaniem jesteśmy w stanie zyskać nadzwyczajnie elastyczny kod. W aplikacji, która jest rozwijana od dłuższego czasu (powiedzmy, ponad pół roku) to właśnie interfejsy są miejscami zawierającymi definicję poszczególnych warstw. To one powinny być trzonem każdej aplikacji (pomijając warstwę obiektów domenowych, gdzie ich rola nie musi być dominująca). Nawet jeśli koncepcja implementacji obróci się o 180 stopni to nasz interfejs, będący swoistą fasadą, ukryje te zmiany przed osobami, których one nie dotyczą i w niewielkim stopniu interesują.

Dorzucę tutaj przykład pewnego mechanizmu, który jakiś czas temu projektowałem i implementowałem. Jest to uproszczony schemat. Singletonu chciałem uniknąć, ale przesłanki ku jego zastosowaniu były na tyle duże, że pozostał. Duże I na początku nazwy oznacza interfejs, w nawiasach, dużymi literami wzorce.

PLAIN TEXT

CODE:

  1. (zdarzenie) (Mediator) (odbiorca)
  2. ProgressEvent ---> IProgressMonitor

    Czytaj dalej tutaj (rozwija treść wpisu)
    Czytaj dalej na blogu autora...

Autor wpisu: WojciechNaruniec, dodany: 31.03.2007 13:16, tagi: php

Wczoraj został uruchomiony serwis polskiej społeczności użytkowników Zend Framework. W serwisie znajduje się forum dyskusyjne na którym między innymi można uzyskać pomoc techniczną, blog informujący o nowościach oraz planeta czyli agregator polskich blogów zajmujących się tematyką Zend Framework. Serwis obecnie działa w oparciu o oprogramowanie open-source. W przyszłości planowana jest migracja na oprogramowanie oparte na Zend [...]

Autor wpisu: Zyx, dodany: 26.03.2007 10:19, tagi: php

Próbowałem dzisiaj wykorzystać klasę Zend_Session z Zend Frameworka wspomaganą własnym adapterem, dzięki któremu możliwe byłoby przechowywanie danych sesji w bazie danych. O ile użytkowanie API do manipulacji danymi przypadło mi do gustu, o tyle z powodu ograniczeń w tworzeniu własnych adapterów muszę odpowiedni kod napisać sobie samodzielnie. Największą pomyłką w moim odczuciu było wykorzystanie standardowego mechanizmu sesji PHP, a wraz z nim zaimportowanie połowy jego wad.

Autor wpisu: Zyx, dodany: 24.03.2007 21:40, tagi: php

Szykuje się kolejna przebudowa zyxowego warsztatu narzędziowego, a to z takiej racji, iż dzisiaj, po paru tygodniach śledzenia i przeglądania dokumentacji, zacząłem używać Zend Frameworka. Projektem już znacznie wcześniej interesował się eXtreme, który tym razem mi udzielił cennych wskazówek, jak zacząć. ZF to przede wszystkim niesamowita swoboda działania, cechująca cały język PHP. Fakt, obiektówki trzeba używać, ale już nikt nie zmusza nikogo do konkretnej struktury katalogowej, konkretnych podzespołów, konkretnego przepływu danych.

Autor wpisu: Athlan, dodany: 19.03.2007 22:48, tagi: php, internet

Pod takim hasłem wystartował dziś serwis cPaste.com, alternatywa dla stron oferujących przechowanie kodu źródłowego, bądź zwykłego tekstu. Celem projektu jest stworzenie swoistego notatnika z masą opcji, która umożliwi bezpieczne przechowanie kodu. Aktualnie widnieje testowa wersja cpaste, jednakże w najbliższej przyszłości planowana jest gruntowna modernizacja silnika.

cPaste.com jest aplikacją opartą o Vframe framework napisaną w PHP 5, dane przechowywane są w bazie danych MySQL. Kolorować kod pomaga nam biblioteka GeSHi. Serwis posiada wsparcie AdvAjax, jQuery oraz Interface. Serwis powstał z inicjatywy grupy interaktywnej Vgroup, został zaprogramowany przez Athlan’a. Serwera użyczyła firma Linuxpl.com, którym opiekuje się Spam.

Głównym celem projektu jest umożliwienie szybkiego przesyłania kodów, z możliwością uprzedniego podglądu. Wklejony tekst można pokolorować w dowolnym języku wybierając go z listy. Każdy kod otrzymuje unikalny identyfikator oraz krótki link, dzięki czemu można go łatwo zapamiętać.

Serwis jest jeszcze młody, jednak jego roadmapa jest dość rozbudowana. W planach jest miejsce na dodanie więcej języków, aby strona była dostępna dla wszystkich krajów świata. Przewidujemy dodatkowe opcje takie jak usunięcie kodu po określonej ilości oglądnięć, możliwość ściągnięcia pliku, zabezpieczenie go hasłem oraz personalizację strony wraz z wynikami wyszukiwania wśród naszych kodów.

Projekt tak naprawdę miał sprawdzić wydajność wersji językowych użytych w Vframe framework. Zapraszam do testowania i wyrażania swoich poglądów na temat ewentualnego zmodernizowania projektu. Niedługo wprowadzone zostaną gruntowne zmiany, oczywiście jak znajdę odrobinkę wolnego czasu.

Autor wpisu: WojciechNaruniec, dodany: 18.03.2007 23:57, tagi: php

Po ponad roku Zend Framework doczekał się wersji Beta 0.9.0. Zawiera ona już wszystkie funkcjonalności, które zobaczymy w pierwszym wydaniu frameworka. W wersji 1.0.0 API nie powinno już się zmienić, a głównym założeniem jest teraz wyeliminowanie błędów w istniejących komponentach oraz rozwinięcie dokumentacji. Niestety wciąż brakuje tak ważnej funkcjonalności jak obsługa formularzy w stylu Pear QuickForm [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.