PHP: Kategoria poświęcona w całości technologiom server-side, a w szczególności PHP. Uwaga: starsze wpisy o tej tematyce znaleźć można także w "Programowaniu", ponieważ ta kategoria jest relatywnie nowa.
PHP: Kategoria poświęcona w całości technologiom server-side, a w szczególności PHP. Uwaga: starsze wpisy o tej tematyce znaleźć można także w "Programowaniu", ponieważ ta kategoria jest relatywnie nowa.
Mam przyjemność poinformować, że po prawie roku prac Open Power Template 2.1 wchodzi w fazę beta-testów. Jak to już ze mną bywa, każda gałąź musi być rewolucyjną ewolucją, i choć powstawała ona w bólach, udało mi się właśnie dociągnąć ją do kolejnego etapu prac. Jednocześnie wydałem OPT 2.0.6, który poprawia cztery błędy w gałęzi stabilnej.
W naszej opowieści o wzorcu MVC pora zrobić krok dalej. Do eksperymentalnej implementacji Trinity dodaliśmy już całą procedurę rozruchową, moduły oraz hierarchiczne cegiełki pozwalające składać kontroler z mniejszych klocków. Mając już pewne rozeznanie, jak MVC działa i jakie możliwości, tudzież ograniczenia wprowadza w porównaniu z tym, co się implementuje we frameworkach, jesteśmy gotowi do rozważań na temat bardziej namacalny dla użytkownika końcowego, czyli nawigacji. Zastanowimy się, jak umieścić jej generowanie w strukturze wzorca oraz omówimy możliwe rozwiązania techniczne.
Mój ostatni wpis o MVC oraz eksperymentalnym frameworku Trinity wywołał wyjątkowe poruszenie. Jednym z celów eksperymentu jest m.in. zerwanie z jedynym słusznym podziałem kontroler/akcja i udostępnienie programiście większej swobody w budowie kontrolerów. Pojawia się tu jednak problem z ponownym wykorzystaniem kawałków kodu. Dlatego zasiadłem z powrotem nad kartką papieru i odkurzyłem koncepcję zastosowaną w jednym z moich ubiegłorocznych projektów.
Nazwanie jednej klasy obserwatorem, a drugiej obserwowanym nie daje nam jeszcze wzorca "Obserwator". Z tym zgodzą się chyba wszyscy. Gdy identyczną zasadę spróbujemy zastosować do MVC, wywołamy wielką wojnę z argumentami kalibru "nie rozumiesz idei wzorców projektowych". Kursów MVC jest w sieci na pęczki, problem polega jednak na tym, że opisują one w rzeczywistości zupełnie inny wzorzec, niż twierdzą jego autorzy. W tym wpisie pragnę pokazać jego prawdziwe oblicze oraz zaprezentować eksperymentalną implementację, którą rozwijam od jakiegoś czasu.
Niektóre systemy bazodanowe takie, jak np. PostgreSQL wspierają koncepcję dziedziczenia tabel. Pozwala ona nie tylko na współdzielenie części deklaracji przez dwie tabele, ale także danych, co znacząco ułatwia realizację niektórych zadań. Choć biblioteka Doctrine obsługuje dziedziczenie od jakiegoś czasu, działało ono na zasadzie emulacji, co oczywiście jest marnotrawstwem, jeśli korzystamy z systemu, który wspiera tę funkcjonalność natywnie.
Pierwsza rewolucja PHP miała miejsce, gdy programiści odkryli słowo framework i zaczęli tak oto zwanych systemów masowo używać. PHP jest jednym z nielicznych języków, gdzie rynek nie został zdominowany przez "jedyny słuszny" framework. Jedni twierdzą że to wada, inni że zaleta, ponieważ pozwala wypróbować wiele różnych rozwiązań. Ostatnio jednak powoli pojawiają się nowe trendy programistyczne, z których już teraz zaczynają wykluwać się frameworki nowej generacji, które będą podstawą drugiej rewolucji.
Mechanizm automatycznego ładowania to bardzo przyjemny wynalazek, który zwalnia programistę z konieczności ręcznego zarządzania dziesiątkami zależności między klasami i bibliotekami. Z jego stosowaniem wiąże się jednak pewien narzut czasowy. Wiadomo, przy małych serwisach nie gra on roli, ale gdy obciążenie serwera liczone jest w ilości wywołań na sekundę, te drobne ułamki zaczynają odgrywać istotną rolę. Niedawno zacząłem zastanawiać się, jak to jest z tymi autoloaderami i co ważniejsze - jak robić to szybko. Postanowiłem więc przeprowadzić mały benchmark.
Dziś zakończył się PHPCon 2010 Poland - pierwsza polska konferencja poświęcona językowi PHP organizowana przez Polską Grupę Użytkowników Linuksa. Planeta php.pl prawdopodobnie niebawem zapełni się pewnie jeszcze sporą ilością relacji, ale nic dziwnego. Do tej pory zloty PHP praktycznie nie istniały; wszyscy jechali tam, zadając sobie pytanie, jak to wypadnie. Czy wypadło dobrze? Zapraszam do krótkiej minirelacji.
Gdzieś w 2009 roku grupa programistów z czołowych projektów PHP utworzyła inicjatywę Grupy standaryzacyjnej PHP. Jej celem jest wypracowanie zbioru jednolitych praktyk programistycznych i rozwiązań, aby ułatwić łączenie oprogramowania open-source różnych dostawców oraz poprawić wsparcie dla nich w samym języku. Pierwszym owocem prac grupy jest standaryzacja nazewnictwa klas oraz mechanizmów automatycznego ładowania.
PHP 5.3 jako pomost między wersją "5" i "6" przyniósł wiele nowości do świata PHP. Jedną z nich są funkcje anonimowe wzbogacone o funkcjonalność domknięć, które rozwiązują kilka irytujących problemów oraz otwierają przed programistą nowe, ciekawe możliwości. W tym wpisie pragnę przedstawić, czym domknięcia są oraz jak je wykorzystywać.