Simple introduction to CakePHP framework including explenation of MVC architecture. Then list of most common errors and some good advices how to create applications using CakePHP.
3. Po co w ogóle Framework?
Nie wymyślajmy koła na nowo!
4. Po co w ogóle Framework?
• Większość aplikacji na samym początku składa się z tych samych elementów:
• Logowanie
• Uprawnienia użytkowników
• Wysyłanie e-maili
• Panel administracyjny
5. Po co w ogóle Framework?
• Dodatkowo potrzebujemy komponenty odpowiadające za:
• Wykonywanie zapytań do bazy danych
• Cachowanie
• Możliwość wykonywania cyklicznych operacji – cronjob
• Zarządzanie Session i Cookies
• ...
12. Ruby on Rails jako inspiracja
• W 2005 roku pojawił się framework Ruby on Rails
• Frameworki PHP inspirowane RoR:
• CakePHP • Code Igniter
• Symfony • Biscuit
• PHP on Trax • Pipeline
14. CakePHP – zalety i wady
• Szybka instalacja i niewielka ilość plików konfiguracyjnych
• Prosty w nauce
• Pokrycie kodu testami: 100%
• Wygodne korzystanie z Cache
• Bake
• Jednolity kod
15. CakePHP – zalety i wady
• Model, Model, jeszcze raz Model
• Można rozwiazać poprzez integracje z Doctrine
• Enkapsulacja (brak public, protected, private)
• ...
17. Podstawy CakePHP
• Nazewnictwo:
• Nazwa tabeli i prefix controllera
liczba mnoga (clients, users, ...)
• Nazwa modelu
liczba pojedyńcza (Client, User, ...)
24. • ClientContact i ClientTalk niepotrzebne – dostępne poprzez relacje Client:
$this->Client->ClientContact->find('all');
• Pozostałe classy ładujemy poprzez $this->loadModel('Setting');
• Sygnał alarmowy dla więcej niż 2 modeli w $uses
• 1 prosty model ładowany w AppController do wykonywania query() i ...
25. Najczęściej popełniane błędy
• Ładowanie masę modeli automatycznie przy tworzeniu Controllerze
poprzez parametr $uses.
• Nie używanie helperów $this->Form
i $this->Html w widokach.
26.
27. Najczęściej popełniane błędy
• Ładowanie masę modeli automatycznie przy tworzeniu Controllerze
poprzez parametr $uses.
• Nie używanie helperów $this->Form
i $this->Html w widokach.
• Podawanie gotowego adresu url jako parametr do $this->Html->link()
lub $this->Html->url() zamiast parametrów.
28.
29. Najczęściej popełniane błędy
• Ładowanie masę modeli automatycznie przy tworzeniu Controllerze
poprzez parametr $uses.
• Nie używanie helperów $this->Form
i $this->Html w widokach.
• Podawanie gotowego adresu url jako parametr do $this->Html->link()
lub $this->Html->url() zamiast parametrów.
• Brak domyślnych wartości dla parametrów do metod w controller.
30. • Na wypadek gdyby zamiast /client/edit/10
zostanie wysłane zapytanie do /client/edit
• Unikamy ostrzeżenia ze strony PHP:
Warning (2): Missing argument 1 for ClientsController::edit() [APP/controllers/clients_controller.php, ...]
• Zapewniamy poprawną obsługę wyjątkowych przypadków