Table of Contents : The Manual

Początki z CakePHP

Patty-cake, patty-cake...

Wstęp

Witamy w niebie web developera.

Fakt, że czytasz wstęp do technicznego podręcznika oznacza, że prawdopodobnie masz za dużo wolnego czasu. Nie jesteśmy żadnymi znanymi osobistościami. Ponieważ szukasz tutaj raczej merytorycznej zawartości, odpuść sobie ten bezużyteczny rozdział i przejdź od razu do rzeczy.

Audiencja

Aby w miarę swobodnie korzystać z tego podręcznika, powinieneś posiadać przynajmniej umiarkowaną znajomość PHP. Doświadczenie z programowaniem zorientowanym obiektowo (OOP) może okazać się pomocne, ale sądzę, że wprowadzające rozdziały tego podręcznika mogą posłużyć jako swego rodzaju wstęp dla początkujących w tej dziedzinie. Materiał ten został przygotowany dla developerów na wszystkich poziomach zaawansowania - kogokolwiek, kto chce tworzyć stabilne, łatwe w rozbudowie aplikacje w sposób łatwy i przyjemny.

Uprzedzam, że są tutaj rozdziały, które obejmują technologie będące zupełnie poza zakresem zagadnień omawianych w tym podręczniku. Kwestie administracji serwerem WWW, AJAXa i JavaScriptu mogą być gdzieniegdzie poruszane, ale przez większość czasu będziemy omawiać przede wszystkim CakePHP.

Wprowadzenie do CakePHP

Czym jest CakePHP? Po co go używać?

CakePHP jest darmowym framework'iem o otwartym kodzie służącym do szybkiego budowania aplikacji dla platformy PHP. Stanowi dla programistów fundamentalną strukturę służącą w budowie aplikacji sieciowych. Naszym głównym celem jest to, aby umożliwić programistą pracę w sposób ustrukturyzowany i szybki, nie tracąc jednocześnie elastyczności.

CakePHP usuwa monotonię podczas tworzenia aplikacji. Zapewniamy wszystkie narzędzia potrzebne do tego, abyś mógł się skupić na rzeczach, które są naprawdę ważne: na logice aplikacji. Zamiast wymyślać koło za każdym razem, gdy rozpoczynasz nowy projekt, pobierz swoją własną kopię CakePHP i zacznij zajmować się tym, co tygryski lubią najbardziej - budowaniem własnej aplikacji.

CakePHP posiada aktywną grupę programistów oraz społeczność, która bardzo wzbogaca cały projekt. Dzięki niemu, nie musisz ponownie tworzyć czegoś, co już dawno zostało wymyślone. Używanie CakePHP oznacza, że rdzeń twojej aplikacji został gruntownie przetestowany oraz że będzie on wciąż udoskonalany.

Oto krótka lista najciekawszych cech CakePHP:

  • Aktywna, przyjacielska społeczność
  • Elastyczna licencja
  • Kompatybilność z wersją 4 i 5 PHP
  • Zintegrowany CRUD dla interakcji z bazą danych
  • Scaffolding
  • Generator kodu
  • Architektura trójwarstwowa MVC
  • Dyspozytor żądań (Request dispatcher) pozwalający na budowanie prostych adresów URL oraz używanie tras (routes)
  • Wbudowany mechanizm walidacji
  • Szybkie i elastyczne szablony (składnia PHP wraz z helperami)
  • Helpery dla AJAX'a, JavaScript'u, formularzy HTML i innych
  • Komponenty Email, Cookie, Security, Session oraz Request Handler
  • Elastyczne listy kontroli dostępu - ACL
  • Czyszczenie danych
  • Elastyczne w użyciu Cach'owanie
  • Lokalizacje
  • Działa z każdego poziomu serwera, przy braku lub niewielkich zmianach konfiguracji Apache'a

Gdzie szukać pomocy

The Cookbook

http://book.cakephp.org

Rozpocząłeś w dobrym miejscu. Ten poradnik powinien być zawsze pierwszym miejscem do którego się udasz, gdy będziesz miał jakieś pytania lub niejasności. Tak jak inne projekty o otwartym kodzie, regularnie zdobywamy nowych użytkowników. Staraj się jak możesz uzyskiwać odpowiedzi na pytania na własną rękę. Będziesz je prawdopodobnie znajdował wolniej, lecz dłużej pozostaną w twej pamięci i odciążysz tym samym osoby zajmujące się wsparciem. Pamiętaj, że zarówno do tego poradnika, jak i do API, masz stały dostęp online.

 

API

http://api.cakephp.org/1.2

Prosto w sedno sprawy i wprost z samego źródła, API (Application Programming Interface) CakePHP jest najbardziej obszerną i kompleksową dokumentacją, zawierającą wszelkie szczegóły opisujące sposób działania framework'a. Należy pamiętać jednak, że umieszczony jest tam głównie czysty, pozbawiony komentarzy kod.

 

Kanały IRC

#cakephp @ irc.freenode.net
#cakephp.pl @ irc.freenode.net

Jeżeli mimo usilnych starań, nie znalazłeś odpowiedzi na swoje pytania, spróbuj opisać problem na kanale IRC CakePHP. Zwykle możesz tam zastać część naszych programistów, zwłaszcza wciągu dnia czasu amerykańskiego. Będziemy szczęśliwi mogąc pomóc Ci w rozwiązywaniu Twoich problemów.

 

The Bakery

http://bakery.cakephp.org

CakePHP Bakery jest domem dla wszystkich ciekawych rzeczy jakie dzieją się wokół CakePHP. Odwiedzaj go w poszukiwaniu kursów, instrukcji i przykładowych kawałków kodu. Gdy już odpowiednio zaznajomisz się z CakePHP, zaloguj się do portalu i podziel swą wiedzą z całą społecznością, a zyskasz sławę i fortunę.

 

CakeForge

http://www.cakeforge.org

CakeForge jest kolejnym miejscem w którym możesz zamieszczać swoje projekty i dzielić je z innymi programistami. Jeżeli szukasz lub chcesz opublikować miażdżący komponent, albo warty fortunę plugin, zapoznaj się z CakeForge.

 

Oficjalna strona CakePHP

http://www.cakephp.org

Oficjalna strona CakePHP jest zawsze dobrym miejscem do odwiedzenia. Zawiera odnośniki do najczęściej używanych przez programistów narzędzi, opis nowości, pozwala na pobranie kopii CakePHP oraz na dotację projektu.

 

Grupy Google

http://groups.google.com/group/cake-php

CakePHP posiada bardzo aktywna Grupę Google. Jest to świetne miejsce, w którym można znaleźć wiele interesujących archiwalnych informacji oraz szybką odpowiedź na najczęściej zadawane pytania.

 

Objaśnienie architektury Model-View-Controller

Ogólny opis

Dobrze napisane aplikacje CakePHP są tworzone według wzorca projektowego MVC (Model-Widok-Kontroler, ang. Model-View-Controller). Programowanie z zastosowaniem wzorca MVC rozbija aplikację na trzy zasadnicze części. Model reprezentuje dane aplikacji, widok generuje prezentację danych modelu, a kontroler obsługuje i przekazuje żądania użytkowników.

OBRAZEK

Rysunek 1: Przykładowy przebieg wykonywania żądania MVC

Rysunek 1 pokazuje przykład realizacji żądania MVC w CakePHP. Dla zilustrowania, załóżmy że użytkownik o nazwie Ricardo właśnie kliknął na odnośnik "Kup Ciacho!" na głównej stronie twojej aplikacji.

  1. Ricardo klika odnośnik wskazujący na http://www.przyklad.pl/cakes/buy i jego przeglądarka wysyła żądanie do serwera www.
  2. Dyspozytor (ang. dispatcher) analizuje URL żądania (/cakes/buy) i przekazuje je do odpowiedniego kontrolera.
  3. Kontroler odpowiada za logikę aplikacji. Dla przykładu, może sprawdzić czy użytkownik jest zalogowany.
  4. Kontroler używa również modeli, aby uzyskać dostęp do danych aplikacji. Z reguły modele reprezentują tabele w bazie danych, ale mogą równie dobrze reprezentować wpisy LDAP lub pliki na dysku. W tym przykładzie, kontroler używa modelu w celu wyciągnięcia informacji o ostatnich zakupach użytkownika Ricardo z bazy danych.
  5. Gdy kontroler przetworzy wyciągnięte dane, przekazuje je do widoku. Widok przygotowuje te dane do wyświetlenia użytkownikowi. Widoki w CakePHP mają najczęściej format HTML, ale mogą one z równym powodzeniem być w formacie PDF, dokumentu XML lub obiektu JSON, w zależności od twoich potrzeb.
  6. Po tym jak widok użył danych z kontrolera do wygenerowania zawartości, zawartość ta jest wysyłana do przeglądarki Ricardo.

Prawie każde żądanie wysyłane do twojej aplikacji będzie przebiegać w podobny sposób. W dalszej części podręcznika uzupełnimy ten proces o szczegóły specyficzne dla Cake, więc miej go na uwadze, gdy będziemy iść dalej.

Korzyści

Czemu warto stosować MVC? Ponieważ jest to sprawdzony i pewny wzorzec projektowy, który czyni aplikację łatwym w utrzymaniu, modularnym, szybko rozbudowywalnym pakietem. Rozbijanie zadań aplikacji na oddzielne modele, widoki i kontrolery powoduje, że aplikacja ma przejrzystą strukturę. Łatwo dodać nową funkcjonalność, a dodanie nowego wyglądu dla starej funkcjonalności to pestka. Modularna architektura z separacją widoku od logiki aplikacji pozwala developerom i grafikom pracować równolegle, włączając w to możliwość szybkiego prototypowania. Separacja umożliwia także developerom dokonywania zmian w jednej części aplikacji, nie naruszając pozostałych.

Jeśli nie budowałeś jeszcze aplikacji w taki sposób, przyzwyczajenie się do tej metody wymaga nieco czasu. Jesteśmy jednak pewni, że gdy już zbudujesz swoją pierwszą aplikację w CakePHP, nie będziesz chciał stosować żadnej innej.