Raph's world

Rafał Grzegorek – blog

Pieczenie ciast w PHP

Jakiś czas temu miałem podejście do tematu programowania (głównie w kontekście aplikacji webowych) takie, że będę pisał wszystko sam, żeby mieć większą satysfakcję z tego co robię. Dopiero z czasem przyszło przekonanie, że ponowne “wynajdowanie koła” nie ma najmniejszego sensu – jak już to lepiej poznać jak to koło jest zbudowane. Ten tok myślenia był zdecydowanie bardziej praktyczny – zwłaszcza, że używając frameworka mam gwarancję rozwiązania wielu powtarzając się problemów przez ludzi bardziej doświadczonych ode mnie.

Takie podejście zaprowadziło mnie do mojego pierwszego frameworka opartego na PHP jakim jest CakePHP. Właśnie jestem w trakcie pierwszego projektu z jego użyciem. Pewien czas zajęło mi pojęcie filozofii działania Cake, ale warto było. Poza tym nie było to szczególnie trudne, gdyż framework jest bardzo przejrzysty (przynajmniej ja odniosłem takie wrażenie).

Czym właściwie jest CakePHP? Zacytuję autorów:

CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. Using commonly known design patterns like MVC and ORM within the convention over configuration paradigm, CakePHP reduces development costs and helps developers write less code.

Zarządzanie sesjami, tworzenie formularzy, operacje CRUD na bazach danych – te i inne problemy ma do rozwiązania każdy programista piszący aplikacje internetowe. A w zasadzie już nie ma, lub ma tych problemów o wiele mniej, bo wiele z nich rozwiązuje CakePHP.

Duża zaletą Cake (i pewnie nie tylko tego frameworka) jest konwencja nazewnictwa plików, klas oraz sama struktura katalogów sugerowana przez twórców. Pozwala to łatwo odnaleźć się w tworzonym projekcie.

To co mi się w Cake nie podoba to fakt, że autorzy trzymają się kompatybilności z PHP4. Jest to wersja PHP już naprawdę przestarzała. Mam nadzieję, że w wersji 2.x Cake będzie wspierał tylko PHP5.

Previous

będne marginesy w elementach listy w Internet Explorer

Next

MySQL Query Browser i błąd połączenia “2003”

3 Comments

  1. raph

    Co do angielskiego tłumaczenia – użyłem Google Translate i wprowadziłem pewne poprawki. Stwierdziłem, że moje angielskie słownictwo jest jeszcze bardzo ubogie. Mam nadzieję, że używanie tego tłumacza je wzbogaci, bo moim zdaniem poradził sobie naprawdę świetnie.

  2. Poczytałem trochę o nim i zainstalowałem sobie takiego Cake u siebie na serwerze. Rzeczywiście framework wygląda na przejrzysty 😉

    Jestem ciekaw jak wygląda obsługa formularzy… może miałeś z nimi już do czynienia na tym frameworku?

    Bardzo interesuje mnie to, czy Cake na prawdę skraca tworzenie serwisów WWW. Jak znajdę czas to się nim więcej pobawię i wyrobię sobie o nim opinie.

    BTW Jeśli chcesz szybko uruchomić stronkę z CMS’em to polecam Drupala – ostatnio spędziłem nad nim trochę czasu żeby go wybadać (szybka instalacja, mnogość modułów, łatwy w konfiguracji, łatwość dostosowania pod kątem SEO). IMO z powodzeniem nadałby się na tworzenie prostych stron firmowych z CMS 😉

  3. raph

    Tworzę w zasadzie w Cake swój pierwszy projekt (oprogramowanie do usług podatkowych) dopiero i mogę powiedzieć tylko, że jeśli miałbym sam wszystko pisać to na pewno zajęłoby to więcej czasu, choćby dlatego, że nie mam jeszcze dużego doświadczenia. Chociaż nie ukrywam, że trochę czasu też musiałem poświęcić, żeby nauczyć się coś nie coś o Cake i znaleźć rozwiązania problemów, które się pojawiły. Po paru tysiącach linii kodu mogę stwierdzić, że nadal się w tym kodzie odnajduję i to na pewno dzięki Cake. 🙂

    Styczność z obsługą formularzy była raczej nieunikniona :). Obsługa jest bardzo logicznie pomyślana i dane z formularza pobierane są w odpowiednio sformatowanych tablicach, które bardzo ułatwiają ew. zapisywanie danych np. do bazy. Walidacja danych odbywa się w modelach (co to jest model – odsyłam do dokumentacji) i mamy do wyboru wiele gotowych reguł – oczywiście można też tworzyć swoje. Jakiś prosty formularz mógłby wyglądać we widoku na przykład jak poniżej:

    echo $form->create('Nazwa_modelu', array('url' => '/controller/action'));
    echo $form->input('firstname', array(
    'label' => __("Firstname", true)
    ));
    echo $form->end();

    Zastosowano tutaj tzw. helpery, które skracają wiele operacji np. tworzenia inputów w formularzach.

    Na stronki pewnie Drupal się jak najbardziej nadaje, ale jeśli robić jakieś konretne oprogramowanie typu np. CRM to tylko framework.

Comments are closed.

Powered by WordPress & Theme by Anders Norén