Phalcon PHP – między mocą, a użytecznością

Jest w ostatnim czasie jednym z najciekawszych projektów świata programistów PHP. Staje coraz bardziej popularny, a zawdzięcza to nie tylko temu, że jest piekielnie szybki. To po prostu kawał dobrego frameworka.

Co to jest Phalcon

Phalcon to framework php zaimplementowany jako rozszerzenie C oferujący wysoką wydajność i małe zużycie zasobów. To jest jego główny opis, który możemy znaleźć na jego stronie. Gdyby próbować rozszerzać ten opis, to na pewno trzeba byłoby napisać, że jest to w pełni funkcjonalny i bardzo ubogacony ciekawymi rozwiązaniami projekt, który posiada dużo możliwości bez konieczności implementacji dodatkowych bibliotek. Oczywiście chwilę potem złośliwie można dopowiedzieć, że większości developerów faktycznie nigdy nie będzie potrzebowała tych dodatkowych bibliotek, bo nie będzie mogła zainstalować lub skorzystać z Phalcona, ale o tym za chwilę.

Jakie są podstawowe zalety

Wbrew temu co jest jednym z pierwszych komunikatów jaki przyswajamy sobie słysząc o Phalconie, to jego podstawową zaletą wcale nie jest to, że jest najszybszy1. To tylko jedna z wielu rzeczy, która może być jedynie przesłanką zachęcającą do korzystania z niego, ale jeśli decydujemy się na korzystanie z określonego narzędzia w zespole, lub firmie, w której ważnych jest wiele aspektów, to często patrzymy na zupełnie inne cechy i bierzemy pod uwagę inne rzeczy niż poziom idealności kodu lub szybkość standardowego „hello world”.

Według mnie z podstawowych zalet od strony technicznej należy wymienić:

  • korzystanie z wzorca projektowego Dependency Injection;
  • architektura MVC;
  • kilka możliwości pracy z bazą danych (ORM, Query Builder, Phalcon Query Language (PHQL)) oraz wsparcie dla baz MongoDB (ODM);
  • dużo możliwości związanych z korzystaniem z cache’a;
  • system szablonów Volt, który razem z helperem Tag sprawia, że bardzo przyjemnie pracuje się z widokami;
  • bardzo prosty i dobrze rozwiązany routing.

Tak jak wcześniej wspomniałem są czasami jednak pewne ważniejsze rzeczy niż aspekty techniczne:

  • od początku rozwoju frameworka zachowuje on kompatybilność wstecz2;
  • posiada świetną i bardzo konkretną dokumentację (aktualnie trwają pracę nad tłumaczeniem jej na kilka języków w tym na polski);
  • niejako uzupełnieniem do dokumentacji są przykładowe, ale gotowe i w pełni funkcjonalne aplikacje demonstrujące możliwości wybranych elementów frameworka co ma ogromny wpływ na przyswajanie sobie wiedzy praktycznej;
  • jego rozwój jest stabilny, a wszelkiego rodzaju błędy i zgłoszenia są natychmiast realizowane przez zespół developerów;
  • wydajność frameworka należy w wypadku Phalcona rozumieć nie tylko jako najlepsze wyniki testów/benchmarków wśród frameworków php, ale przede wszystkim wydajność w Phalconie polega na tym, że zwyczajnie szybko tworzy się aplikacje.

Co budzi największe obawy

W ramach bycia ewangelistą frameworka przychodzi czasem odpowiadać na różnego rodzaju zarzuty, obawy, narzekania i zdania typu „a w frameworku XYZ jest już wszystko, a tu nie ma”, albo „gdybym korzystał z XYZ to bym to miał szybciej”, lub też moje ulubione „ale każdy inny framework mogę mieć na każdym serwerze a ten nie”. Czas wiec na listę obaw, z dodatkiem moich małych uwag.

  1. Tak, tak tak… z tego frameworka nie skorzystasz prawdopodobnie na współdzielonych hostingach3 i jest on przeznaczony dla rozwiązań, które hostujesz tam gdzie masz dostęp do konfiguracji, albo raczej instalacji rozszerzeń. Zadać sobie jednak trzeba pytanie – czy poważne, duże projekty stoją na hostingach współdzielonych? Czy można uznawać to za wadę framworka?
  2. „Skoro jest skompilowany to nie mam wpływu na ewentualne błędy, nie mogę nic zmieniać i poprawić – nie mam wpływu na niego i jestem zależny w ten sposób od developerów Phalcona” – to jest argument, który wymaga szczególnego omówienia. To jest głównie kwestia podejścia do tego jak traktujemy biblioteki, narzędzia z których korzystamy. Jeśli potrafimy akceptować czyjąś myśl techniczną, konwencje, idee działania – to wszystko nam jedno czy będzie to Phalcon, czy biblioteka instalowana composerem – nie będziemy chcieli, kolokwialnie rzecz ujmując, w niej grzebać i cokolwiek zmieniać. Celem będzie poznać api i uzyskać określony efekt szybko z wykorzystaniem danego narzędzia. Jeśli chcemy zmian to takowe można zgłaszać twórcom i w przypadku Phalcona, bazując na własnych doświadczeniach, mogę powiedzieć, że zgłoszenia są załatwiane błyskawicznie. Gdyby użyć argumentu zależności do zmian dokonywanych przez twórców Phalcona, to ten framework by się obronił – a czy obronił by się Laravel (w dwa lata 3 różne wersje niekompatybilne ze sobą) albo np Kohana (podobnie jak Laravel)?
  3. „a w Phalconie to jest gorzej rozwiązane niż w XYZ” – nasza opinia o określonym narzędziu praktycznie zawsze powstaje na podstawie porównań do innych. Często im większe doświadczenie, tym wyraźniejsze jest zdanie na temat tego co danemu narzędziu brakuje. Czasem wynika to z przyzwyczajeń. Myślę jednak, że porównania mają to do siebie, że w zależności od tego jakie przyjmiemy kryteria, tak otrzymamy bardzo różne wyniki. Dlatego porównywanie pojedynczych elementów zupełnie nie ma sensu.
  4. „a co jak nagle developerom zmieni się koncepcja” – polityka Phalcona i informowanie społeczności o wszystkich zmianach jest wzorcowe, a ludzie wchodzący w skład zespołu developerów są gwarancją na to, że będzie to stabilny i dobrze zarządzany projekt, w którym podchodzi się odpowiedzialnie do pewnych kwestii. To naturalne, że nikt nie chce inwestować swojego czasu, w naukę czegoś co może być niestabilne, albo za jakiś czas nie będzie rozwijane. Biorąc jednak pod uwagę to jak rozwijał Phalcon do tej pory i jakie są plany jego twórców, można mieć pewność, że inwestycja w jego naukę nie będzie inwestycją nietrafioną.

phalconphp_website
 

Do jakich projektów warto go wykorzystać

W tym miejscu wrócić należy to tego, że to faktycznie szybki i niezjadający pamięci framework. Wszelkiego rodzaju benchmarki pokazują, że jest pod tym względem czasem nawet kilkukrotnie lepszy od innych frameworków php. Sprawdzi się więc doskonale przy projektach w których spodziewany jest duży ruch. Warto brać go uwagę gdy chce się robić aplikacje REST-owe4.

Jak wygląda jego rozwój i jakie są plany

Rozwój Phalcona to stopniowe rozwijanie funkcjonalności poszczególnych składowych, oraz dokładanie nowych, z zachowaniem kompatybilności wstecz. Nowe wersje pojawiają się w bardzo krótkich odstępach czasu, ale wynika to z faktu, że framework ten rozwija się intensywnie, a ilość dostępnych funkcji jest bardzo duża. Pracę nad nim obrazuje roadmapa projektu. Z każdym wydaniem twórcy Phalcona zwracają uwagę na szukanie odpowiedniej równowagi między nowymi funkcjami (w tym sugerowanymi przez społeczność) i poprawkami / optymalizacją.

Kilka dni temu twórcy Phalcona zaskoczyli wiadomością, iż stworzyli własny język aby dalej rozwijać Phalcona. Może to dawać obraz tego, jak jest to bardzo zaawansowany technicznie projekt, oraz dlaczego warto się mu bacznie przyglądać.

Phalcon zdobywa coraz większą popularność stąd strona główna frameworka została przetłumaczona na kilka języków, a do kolejnej wersji będzie posiadać także przetłumaczoną dokumentacje.

Skąd czerpać wiedzę o Phalconie

Główne źródła informacji to:

Strona główna projektu – http://phalconphp.com
Repozytoria projektu w serwisie Github – https://github.com/phalcon

Profile społecznościowe:

Twitter – https://twitter.com/phalconphp
Facebook – http://www.facebook.com/pages/Phalcon/134230726685897
Google + – https://plus.google.com/102376109340560896457
Vimeo – http://vimeo.com/phalconphp

Kanał IRC: phalconphp@freenode

Polskie forum Phalcona – http://www.phalcon.pl/forum

Zapraszam również do regularnego odwiedzania webMASTAH.pl, bowiem nowości, artykuły i tutoriale na temat frameworka Phalcon PHP będę pojawiać się tutaj regularnie.

1 – Jest jeszcze inny framework w C – YAF – jego twórcy również twierdzą, że jest najszybszy, ale testy tego nie potwierdzają.
2 – Przy założeniu, że wykluczamy przypadkowe błędy, czy zmiany wynikające z dostosowywania do nowych wydań php.
3 – W Polsce można Phalcona znaleźć na serwerach przynajmniej dwóch firm – netBOMB.pl i Vipserv.org
4 – http://blog.phalconphp.com/post/53441181179/success-story-kolesa-kz-and-krisha-kz-web-api

Programista, web developer, marketingowiec. Od wielu lat związany z branżą reklamy i mediów. Robi backend, kocha frontend, będąc ewangelistą kilku technologii. Prywatnie minimalista, trochę introwertyk, perfekcjonista. Nie lubi kotów ;)

Send this to a friend

webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL