CakePHP to jeden z frameworków stworzony dla języka PHP, który dzięki swoim licznym zaletom zdobył dość dużą popularność. Według danych przedstawionych przez stronę www.sitepoint.pl CakePHP wprawdzie znalazł się na jedenastym miejscu jednak w praktyce znajduje swoje miejsce znacznie częściej.
Framework ten pozwala na błyskawiczne tworzenie skalowalnych aplikacji internetowych, wykorzystując wzorzec MVC a także różne zaawansowane narzędzia. Architektura MVC jest istotną cechą dla CakePHP dzięki obiektowo zorientowanej koncepcji programistycznej, dzielącej aplikację na trzy warstwy. Służy to uporządkowaniu architektury danego systemu, zapewnieniu przejrzystości kodu budowanej aplikacji czy też ułatwia późniejszą rozbudowę jej. Głównym założeniem projektu była na pewno kompatybilność z językiem PHP w wersjach takich jak: 4 i 5. Oprócz tego ważne było to by framework wchodził w interakcję z bazą danych, która jest oparta o Active Record.
CakePHP posiada wbudowane listy kontroli dostępu (ang. Acces Control List, ACL), dzięki nim możemy ustawić takie uprawnienia jak: zapis, odczyt, wykonanie dla dowolnej grupy czy też pojedynczego użytkownika. Dodatkowo wyposażony jest w wbudowaną kontrolę i walidację danych. Jest to mechanizm, który sprawdza poprawność, spójność oraz przydatność danych. wsparcie dla lokalizacji i internacjonalizacji czy też obsługę przyjaznych adresów URL.
Cechą charakterystyczną tego narzędzia jest także zintegrowana obsługa CRUD podczas obsługi baz danych i jednoczesne ułatwienie tworzenia pytań. Framework posiada także szablony oparte na języku PHP, które zostały wzbogacone o różnego rodzaju metody pomocnicze dla formularzy, XML (Extensible Markup Language), tabel, RSS (Really Simple Syndication) czy JavaScriptu.
Narzędzie to posiada wiele ułatwień w tworzeniu aplikacji internetowych. Na pewno jednym z nich jest technologia scaffoldingu. Jest to technika, która pozwala na operowanie na danych w bazie, w bardzo szybki sposób. To tak zwana metaprogramistyczna metoda budowania aplikacji, które wykorzystują właśnie bazę danych.
Do uruchomienia systemu potrzebny jest nam serwer WWW a także bazy danych. Najbardziej popularną konfiguracją dla frameworka CakePHP jest na pewno użycie serwera Apache wraz z powiązaną z nim bazą danych MySQL. Instalacja na takim podłożu będzie bardzo prosta i intuicyjna. Zwykle będzie ograniczała się do skontrolowania praw dostępu w katalogu plików tymczasowych frameworka.
Stosowanie CakePHP wymaga od użytkownika zdecydowanie dużej wiedzy dotyczącej samej struktury oraz zasad działania danego serwisu. By w pełni korzystać ze wszystkich funkcjonalości frameworka, niezbędne jest zapoznanie się z dość obszerną dokumentacją. Zatem tworzenie aplikacji internetowych za pomocą tego narzędzia zobowiązuje programistę do dodatkowych nakładów. Natomiast czas budowy serwisów w oparciu o funkcjonalności tego frameworka jest znacznie krótszy niż przy budowie serwisu innymi, klasycznymi metodami.
Przykładowy kod w CakePHP
CakePHP Przykład #1
<?php
class PostsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
$this->set('posts', $this->Post->find('all'));
}
public function view($id = null) {
if (!$id) {
throw new NotFoundException(__('Invalid post'));
}
$post = $this->Post->findById($id);
if (!$post) {
throw new NotFoundException(__('Invalid post'));
}
$this->set('post', $post);
}
}
?>
CakePHP Przykład #2
<?php
class Post extends AppModel {
public $validate = array(
'title' => array(
'rule' => 'notBlank'
),
'body' => array(
'rule' => 'notBlank'
)
);
}
?>