Filed Under (php, programowanie) by Wojciech Soczyński on 29-08-2010
Dzisiejsze spotkanie z Zend’owym Front Controllerem i pluginami natchnęło mnie do kilku przemyśleń. Jednym z nich jest sposób jego działania. Aby w jakiś sposób ingerować w działanie FC należy albo napisać własną implementację jednej z koniecznych do życia przez FC klas (Dispatcher, Router etc) albo w przypadku mniejszych potrzeb stworzyć nowy plugin. Plugin’y są klasami, które reagują na określone zdarzenia typu preDispatch, postDispatch etc. Rozwiązanie to funkcjonuje i ma się dobrze. Wiem również ze słyszenia, że w innych frameworkach stosuje się podobne rozwiązania ale oparte np na sygnałach czy event handler’ach.
Read the rest of this entry »
Filed Under (php, programowanie) by Wojciech Soczyński on 25-08-2010
W niedawnym wpisie na liście php.internals, Pierrick Charron poinformował o stworzeniu patch’a dodającego obsługę adnotacji do php. Patch ten jest napisany zgodnie z odpowiednim RFC. Rozszerza on składnie języka, dodaje obsługę do refleksji i dwie nowe klasy ‘ReflectionAnnotation’ i ‘Inherited’ – pierwsza umożliwia tworzenie własnych adnotacji, natomiast druga umożliwia dziedziczenie adnotacji przez klasy dziedziczące z jakiejś klasy.
Jak dla mnie to ciekawy dodatek do języka, natomiast ja chętnie bym również widział jakąś implementacje Pythonowych dekoratorów o których już wcześniej wspominałem. A wy co o tym sądzicie ?
Filed Under (php, programowanie) by Wojciech Soczyński on 10-08-2010
W jednym z wpisów na php.internals w dyskusji o dacie wersji alpha releasu kolejnej wersji php (5.4 ?) Johannes Schlüter który jest release managerem dla brancha 5.3, zaproponował by publikacje nowych wersji języka przeprowadzać w pewnych konkretnych cyklach.
Read the rest of this entry »
Filed Under (php, programowanie) by Wojciech Soczyński on 10-08-2010
Nie jest to dokładnie kolejna część cyklu o Domain Driven Design, ponieważ nie zawiera żadnej konkretnej treści. Umieszczam tutaj kilka linków do artykułów o DDD wraz z krótkim opisem, które mogą okazać się przydatne dla wszystkich zainteresowanych tą metodyką. Życzę miłego czytania 
Read the rest of this entry »
Filed Under (php, programowanie) by Wojciech Soczyński on 10-08-2010
Dzisiaj kolejny post z nieoficjalnej serii „zaprzyjaźnij się z PHP”
a dokładnie z php 5.3. Opiszę w nim jak zbudować generator. Czym jest generator ? Jak wyjaśnia nam Wikipedia generator jest rodzajem Iteratora, który zamiast zwracać wygenerowaną wcześniej zawartość oblicza nam ją wraz z kolejnym przebiegiem, dzięki czemu nie musimy od razu pobierać np. całej zawartości jakiejś kolekcji.
Read the rest of this entry »
Filed Under (php, programowanie) by Wojciech Soczyński on 30-07-2010
W jednym z niedawnych wpisów na internalsach, Felipe Pena przedstawił propozycję wprowadzenia typowania zwracanych zmiennych przez funkcje. Jest to funkcjonalność którą znamy z języków statycznie typowanych, gdzie każda funkcja musi mieć zdefiniowany typ zwracanej zmiennej. Propozycja opublikowana jako RFC zawiera patch, który każdy może przetestować u siebie, jeżeli wie jak kompilować php ze źródeł. Patch jest kompatybilny ze znajdującym się w trunku patchem dotyczącym typowania argumentów funkcji (dostępne są pseudotypy scalar i self bodajże).
Przykład (skopiowany z RFC):
function scalar abc($x = NULL) {
return $x;
}
var_dump(abc(1)); // int(1)
var_dump(abc(1.)); // float(1)
var_dump(abc());
/*
PHP Catchable fatal error: The returned value must be of the type scalar,
called in ... on line 9 and returning in ... on line 4
*/
Jak dla mnie sam feature może być, natomiast składnia nie do końca mi się podoba, wg mnie jest mało czytelna, wolałbym coś a’la ActionScript3:
function foo($arg):bar {
return $arg+1;
}
A Wy co sądzicie o tym ficzerze ?
Filed Under (php, programowanie) by Wojciech Soczyński on 28-07-2010
W poprzednim artykule z serii Domain Driven Design przedstawiłem pole zastosowań metodologii DDD, jej otoczkę w postaci zarządzania projektem oraz język domeny (DSL). W dzisiejszym wpisie chciałbym natomiast przedstawić metodologię DDD w sposób bliższy implementacji.
Read the rest of this entry »
Filed Under (javascript, php, programowanie) by Wojciech Soczyński on 25-07-2010
Rozmawiając ze znajomymi, którzy również są webdeveloperami, zauważyłem, że JavaScript jest jednym z najbardziej znienawidzonych języków. Jest kilka tego powodów, najważniejsze z nich to brak jednolitej obsługi w w przeglądarkach internetowych oraz brak klas. Pierwszy powód jest bezdyskusyjny, chociaż można zauważyć, że z upływem czasu jest coraz lepiej i minęły już te dni gdy pisało się kod osobno dla każdego browsera. Obsługa JavaScriptu jest coraz lepsza wśród przeglądarek i nawet Microsoft wziął się na poważnie do roboty z IE9. Natomiast argument o braku klas w Javascripcie uważam za trochę chybiony i wynikający z braku wiedzy o modelu obiektowym jaki został zaimplementowany w tym języku.
Read the rest of this entry »
Filed Under (php, programowanie) by Wojciech Soczyński on 23-07-2010
Na jednym z ostatnich wpisów na internalsach wyszło na jaw, że w najbliższej większej wersji php (5.x lub 6), do obecnej funkcjonalności domknięć (closures) dodana zostanie obsługa $this. Obsługa ta będzie zaimplementowana tak jak opisano w podpunkcie A) odpowiedniego RFC. Oznacza to, że zmienna $this będzie mogła być wykorzystywana tylko w domknięciu stworzonym wewnątrz jakiegoś obiektu i będzie zawsze wskazywała na obiekt w którego kontekście została utworzona. Otwiera to trochę nowych możliwości związanych np z delgacjami – tworzeniem event handlerów itp.
Dla mnie pozostaje jednak pewien niedosyt związany z tym rozwiązaniem. Szkoda, że nie wprowadzono możliwości bindowania zmiennej $this (i innych zmiennych) do aktualnego kontekstu tak jak opisano w zmodyfikowanej propozycji A)
Przy okazji chciałem poinformować, że pokazała się wersja php 5.3.3. Oprócz poprawek błędów została zmieniona jedna ważna rzecz – metody o nazwie takiej samej jak klasa nie są już traktowane jak konstruktory – w przypadku kodu który jest napisany z użyciem namespace’ów – jest to moim zdaniem dobry krok w kierunku usuwania historycznych zaszłości w języku. Mam nadzieje, że w przyszłych wersjach całkowicie usunięte zostaną konstruktory w starym stylu.
Jakie jest Wasze zdanie o wprowadzonych zmianach ?
Filed Under (php, programowanie) by Wojciech Soczyński on 14-07-2010
Pewnego dnia, jadąc w nocy na rowerze zamyśliłem się na temat klas, funkcji i obiektów. Przemyślenia te zawiodły mnie do pewnych ciekawych wniosków.
Read the rest of this entry »