Some time ago I had the approach to the topic of programming (mainly in the context of web applications) such that I wrote everything myself, to have greater satisfaction with what I do. It was not until the time came convinced that the “reinventing the wheel” does not have the least sense – as is already better known as the wheel is built. This kind of thinking was much more practical – especially using the framework that I have guarantee of solutions to a number of repeating problems by people more experienced than me.
That approach lead me to my first framework based on PHP which is CakePHP. I’m in the middle of my first project with it. Some time it took me a concept of philosophy of Cake, but was worth. In addition, this was not particularly difficult, because the framework is very clear (at least I gave such an impression).
What exactly CakePHP is? I’ll quote the authors:
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.
Session Management, the creation of forms, CRUD database opearations – these and other issues have to resolve any programmer writing Web applications. And in principle no longer exists, or has these problems, much less, because many of them resolves CakePHP.
Cake’s big advantage (and probably not only this framework) is a file-naming convention, classes and the directory structure suggested by the authors. This allows you to easily find up in the draft.
I don’t like in Cake the fact that the authors hold compatibility with PHP4. This is a version of PHP already really outdated. I hope that version 2.x Cake will only support PHP5.
Entries (RSS)
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.
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
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.