Your SlideShare is downloading. ×
0
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Dobre przepisy na cake php
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dobre przepisy na cake php

1,469

Published on

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.

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.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,469
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Dobre przepisy do CakePHP
  2. Po co w ogóle Framework?
  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 • ...
  6. MVCModel – View – Controller
  7. ControllerModel View
  8. ControllerModel View
  9. ControllerModel View
  10. ControllerModel View
  11. Ruby on Rails jako inspiracja
  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
  13. CakePHP – zalety i wady
  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)• ...
  16. Podstawy CakePHP• MVC • Components • Helpers • Behaviours• Plugins• Webroot
  17. Podstawy CakePHP• Nazewnictwo: • Nazwa tabeli i prefix controllera liczba mnoga (clients, users, ...) • Nazwa modelu liczba pojedyńcza (Client, User, ...)
  18. Podstawy CakePHP• AppController• AppModel• AppHelper
  19. Podstawy CakePHP – callbacks• Controller • beforeFilter • beforeRender
  20. CakePHP – odwzorowanie relacji• Proste i przyjemne gdy przestrzegamy konwencji w nazewnictwie• Automatyczne JOIN• counterCache
  21. Najczęściej popełniane błędy• Ładowanie masę modeli automatycznie przy tworzeniu Controllerze poprzez parametr $uses.
  22. • 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 ...
  23. 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.
  24. 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.
  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.• 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.
  26. • 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
  27. Dodatkowe porady• Wygodne ustawienie AppModel
  28. Dodatkowe porady• Wygodne ustawienie AppModel• Cachowanie skomplikowanych zapytań i wyników przekazanych do stronicowania.
  29. Dodajemy tą metodę do AppModel nie AppControllerMetoda _idBasedOnArgs() zwraca unikalny identyfikator wywołania metody zpodanymi parametrami.
  30. Dodatkowe porady• Wygodne ustawienie AppModel• Cachowanie skomplikowanych zapytań i wyników przekazanych do stronicowania.• Wrappowanie Helperów
  31. Dodatkowe porady• Wygodne ustawienie AppModel• Cachowanie skomplikowanych zapytań i wyników przekazanych do stronicowania.• Wrappowanie Helperów• Gruby Model – Chudy Controller (Fat Models Skinny Controllers)

×