Wiele jest dobrych frameworków na świecie. Kiedyś nie rozumiałem po co w ogóle ich używać skoro samemu można napisać kod szybciej i wydajniej. Z czasem jednak okazało się, że „szybciej i wydajniej” nie jest już tak szybko i wydajnie jakby się wydawało. Zwłaszcza kiedy trzeba było coś zmienić, dodać. Wykorzystanie frameworków stało się naturalną koniecznością. Rozglądając się po świecie frameworków szukałem najlepszego, takiego, który byłby i szybki i prosty, bez narzutu konkretnych rozwiązań i ograniczeń. Dowiedziałem się podczas tego researchu wielu ciekawych rzeczy, np. że frameworki PHP są koszmarnie wolne :/ Zwłaszcza jeśli zaczynamy korzystać z ORM to już w ogóle robi się padaka. Mimo to napisanie strony choćby w Laravelu zajęło mi bardzo mało czasu co przesądziło o tym, że frameworki są błogosławieństwem. Idąc za tropem szybkości natrafiłem na grupę frameworków, które nie są napisane w PHP a są napisane w C i dołączane do PHP jako moduł. Pomyślałem, wow! W sumie pomysł genialny. Framework jest ładowany do pamięci wraz ze startem webserwera i może być wykorzystany przez dowolną aplikację. Rozwiązanie to jest o niebo szybsze niż dowolny framework napisany w PHP, co oczywiście nie dziwi 😛 Właśnie dlatego zainteresowałem się rozwiązaniem o nazwie PhalconPHP. Ten FW jest szybszy od pozostałych nawet jeśli użyjemy ORM. Wykorzystuje on najpopularniejsze wzorce: MVC, DI, REST. Phalcon nie narzuca żadnej konkretnej struktury aplikacji, jego twórcy skupili się na pokazaniu pewnych dobrych praktyk ale nic na siłę, korzystamy z tego co chcemy. Posiada on wbudowany system szablonów zwany Volt, który posiada tego samego spadkobiercę co Twig dlatego jest do niego bliźniaczo podobny choć uboższy w funkcje. Nic nie stoi jednak na przeszkodzie by w widoku pracować na czystym PHP.

Oczywiście największą zaletą PhalconPHP jest jego szybkość i niska zasobożerność. Poniżej znajduje się mały benchmark aby pokazać jak to wygląda na przekroju wszystkich dostępnych frameworków.

phalcon

Szczegóły testu możecie poznać tutaj.

W powyższym teście przedstawiona jest wersja 1.3 Phalcona ale niedawno wydana została wersją 2, która radzi sobie równie dobrze. Jak widać Phalcon bije na głowę wszystko co do tej pory znaliśmy. Zmiany w kolejnych wersjach są wprowadzane bardzo rozważnie, dzięki czemu kod napisany dla 1.3 będzie także działał na wersji 2. Więcej o zmianach, poprawkach w Phalconie można przeczytać na blogu twórców. Do nowych wersji dodawane są też elementy przeniesione z Inkubatora, w którym to znajdziemy wiele przydatnych klas rozszerzających możliwości frameworka.

Z kolei pracę z Phalconem ułatwią nam devTools, które automatyzują tworzenie kontrolerów, modeli, widoków oraz pozwalają na znane z choćby Laravela migracje. Wszystko to można zrobić tak za pomocą konsoli jak i interfejsu webowego.

Podsumowując Phalcon jest świetnym wyborem tak dla przeniesienia istniejących aplikacji jak i dla nowych projektów. Jedyną wadą jest to, że nie znajdziemy go na współdzielonych hostingach, ale już na VPS czy root serwerach możemy samodzielnie go dodać (posiada instalator więc nie powinno to być problemem). Także do dzieła 🙂

Fanpage Phalcona na FB

Strona na Google+

Twitter