rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 ›...
TRANSCRIPT
![Page 1: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/1.jpg)
Krótki i szybki przegląd frameworków
![Page 2: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/2.jpg)
Framework Framework to szkielet do budowy aplikacji
Definiuje on strukturę aplikacji oraz mechanizm jej działania.
Dostarcza zestaw komponentów i bibliotek.
Programista tworzy aplikacje poprzez rozbudowę i dostosowanie poszczególnych komponentów do wymagań realizowanego projektu, tworząc gotową aplikację.
![Page 3: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/3.jpg)
Po co?
Efektywność
Poprawa jakości kodu
Niezawodność
Szybkość (RAD)
Łatwiejsze testowanie
![Page 4: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/4.jpg)
Czemu nie?
Złożoność
Wydajność
![Page 5: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/5.jpg)
Na co zwracać uwagę?
MVC
• Czy framework wykorzystuje architekturę model-widok-kontroler?
Baza danych
• Czy framework wykorzystuje różne silniki bazodanowe?
ORM
• Czy framework obsługuję mapowanie relacyjno-obiektowe?
Szablony • Czy framework wykorzystuje szablony?
![Page 6: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/6.jpg)
Na co zwracać uwagę? Caching
• Czy framework obsługuje mechanizmy cache’owania treści?
Walidacja • Czy framework posiada wbudowany moduł walidacyjny?
Ajax • Czy framework obsługuje AJAXa?
Auth Module
• Czy obsługa autentyfikacji jest zapewniona?
Moduły
• Czy można rozszerzyć możliwości frameworka przez dodanie RSS readera, czy modułu PDFów?
![Page 7: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/7.jpg)
Wzorzec MVC
![Page 8: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/8.jpg)
Przykład
: płaskie P
HP
na
MV
C
<?php // Łączenie i wysyłanie zapytania $link = mysql_connect('localhost', 'myuser', 'mypassword'); mysql_select_db('blog_db', $link); $result = mysql_query('SELECT date, title FROM post', $link); ?> <html> <head> <title>List of Posts</title> </head> <body> <h1>List of Posts</h1> <table> <tr><th>Date</th><th>Title</th></tr> <?php // Wyświetlanie rezultatów while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; printf("\t\t<td> %s </td>\n", $row['date']); printf("\t\t<td> %s </td>\n", $row['title']); echo "\t</tr>\n"; } ?> </table> </body> </html> <?php mysql_close($link); ?>
![Page 9: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/9.jpg)
<?php
// Łączenie i wysyłanie zapytania
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
$result = mysql_query('SELECT date, title FROM post', $link);
// Wypełnianie tablicy z danymi
$posts = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
$posts[] = $row;
mysql_close($link);
// Dołączenie widoku
require('view.php');
?>
<html> <head> <title>List of Posts</title> </head> <body> <h1>List of Posts</h1> <table> <tr><th>Date</th><th>Title</th></tr> <?php foreach ($posts as $post): ?> <tr> <td><?php echo $post['date'] ?></td> <td><?php echo $post['title'] ?></td> </tr> <?php endforeach; ?> </table> </body> </html>
Kontroler index.php
Widok view.php
![Page 10: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/10.jpg)
<?php
function getAllPosts()
{
//Łączenie, wysyłanie zapytania, wypełnianie tablicy posts
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
$result = mysql_query('SELECT date, title FROM post', $link);
$posts = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
$posts[] = $row;
mysql_close($link);
return $posts;
}
?>
<?php // Dołączenie modelu require_once('model.php'); // Pobranie listy postów $posts = getAllPosts(); // Dołączenie widoku require('view.php'); ?>
Model model.php
Kontroler index.php
![Page 11: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/11.jpg)
function getAllPosts() {
$link = open_connection('localhost', 'myuser', 'mypassword'); $result = query_database('SELECT date, title FROM post', 'blog_db', $link); $posts = array(); while ($row = fetch_results($result)) { $posts[] = $row; } close_connection($link); return $posts;
}
function open_connection($host, $user, $password) return mysql_connect($host, $user, $password); function close_connection($link) mysql_close($link); function query_database($query, $database, $link) {
mysql_select_db($database, $link); return mysql_query($query, $link);
} function fetch_results($result) return mysql_fetch_array($result, MYSQL_ASSOC);
Warstwa pośrednia do mysql
Model model.php
![Page 12: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/12.jpg)
Dalszy podział warstwy widoku
![Page 13: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/13.jpg)
Dalszy p
od
ział warstw
y w
ido
ku
<h1>List of Posts</h1>
<table>
<tr><th>Date</th><th>Title</th></tr>
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['date'] ?></td>
<td><?php echo $post['title'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php $title = 'List of Posts'; $posts = getAllPosts(); include(layout.php); ?> <html> <head> <title><?php echo $title ?></title> </head> <body> <?php include('mytemplate.php'); ?> </body> </html>
mytemplate.php
view.php
layout.php
![Page 14: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/14.jpg)
Object-Relational Mapping (ORM) ORM – interfejs, którego zadaniem jest tłumaczenie logiki
obiektowej na logikę relacyjną (by posługiwać się relacyjnymi bazami danych w sposób obiektowy).
ORM składa się z obiektów definiujących metody dostępu do danych oraz pozwalających zapisać reguły biznesowe (np. automatyczne doliczanie rabatu).
Warstwa pośrednicząca = oderwanie od konkretnego silnika bazodanowego
Możliwość definiowania nowych akcesorów: public function getDane() { return $this->getImie().' '.$this->getNazwisko(); } Symfony wspiera domyślnie dwa ORMy: Propel oraz Doctrine.
![Page 15: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/15.jpg)
YAML Ain't Markup Language
$house = array(
‘family' => array(
'name' => 'Doe',
'parents' => array('John', 'Jane'),
'children' => array('Paul', 'Mark', 'Simone')
),
'address' => array(
'number' => 34,
'street' => 'Main Street',
'city' => 'Nowheretown',
'zipcode' => '12345'
)
);
house: family:
name: Doe parents:
- John - Jane
children: - Paul - Mark - Simone
address: number: 34 street: Main Street city: Nowheretown zipcode: "12345"
YAML – uniwersalny język formalny przeznaczony do reprezentowania różnych danych w ustrukturalizowany sposób. Przykład: PHP YAML
![Page 16: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/16.jpg)
Smarty – przykład użycia szablonów
Smarty to system szablonów dla PHP.
Najczęściej używany do odseparowania wersji treści (np. wersji językowych)
Oddziela treść od back-endu
Zmniejsza koszt powstawania aplikacji
Działa za pomocą szablonów i mapowania ich pod określoną zawartość.
Jako język szablonów korzysta z pętli, zmiennych, funkcji logicznych, itp.
![Page 17: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/17.jpg)
Smarty – przykład użycia szablonów
![Page 18: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/18.jpg)
Mechanizm cache’owania Cache przyspiesza dzaiłanie strony.
Zmniejsza obciążenie (głównie bazy danych)
Załóżmy, że blog wyświetla zawsze ostatnie 10 wpisów. To po co za każdym razem odpytywać bazę danych po te same 10 wpisów?
Także konfigurację i inne czasochłonne „obliczenia” trzymamy w cache (uwaga na bezpieczeństwo!)
W PHPie się to czasem „akcelerator” nazywa.
![Page 19: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/19.jpg)
Mechanizm cache’owania • Openc Source, trzyma obiekty w pamięci operacyjnej
• Używane np. przez Facebooka APC
• Przestarzały wspierany do 2003 r.) ionCube
• Przestarzały (umarł w 2012 r.) eAccelerator
• Całkiem nowy i obiecujący Xcache
• Optymalizuje także kod PHP
• Dostarczony razem z PHP (od wersji 5.5) Zend Opcache
![Page 20: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/20.jpg)
Przegląd Frameworków
http://www.phpframeworks.com/
![Page 21: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/21.jpg)
Cake PHP
![Page 22: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/22.jpg)
Cake PHP Open Source Wymuszone konwencje nazewnicze, wymuszona organizacja
kodu i projektu Zintegrowana obsługa CRUD, Wbudowane listy kontroli dostępu, Scaffolding, Wbudowaną kontrola i walidacja formularzy, Wsparcie dla Prototype i script.aculo.us Wsparcie mechanizmu routingu Duże wsparcie użytkowników, społeczność, tutoriale Zalety: tutoriale, przykłady, silne narzędzia do generowania
kodu, pluginy, wsparcie przez IRC Wady: wymuszanie nazewnictwa, wydajność
![Page 23: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/23.jpg)
Zend
http://webhosting.pl/Frameworki.PHP.przeglad.pieciu.najpopularniejszych.narzedzi.dla.programistow.WWW
![Page 24: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/24.jpg)
Zend OO , do tego Open Source Obsługuje MVC W trzy i trochę modułów (obsługa baz danych, Web
services, wsparcie RAD (Rapid Application Development)) Modularny – nie trzeba używać głównego silnika Wymagana znajomość wzorców projektowych Duża społeczność, świetna dokumentacja Aktualnie na SourceForge i Google Code znajduje się w
sumie około 400 projektów bazujących na tej platformie i do tej pory została ona pobrana ponad 10 milionów razy
Zalety: elastyczność, wsparcie społeczności, zapewniony rozwój, bardzo dobra dokumentacja
Wady: stopień komplikacji, wymaga dużo czasu do opanowania
![Page 25: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/25.jpg)
Symfony
![Page 26: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/26.jpg)
Cechy platformy Symfony Bazuje na wzorcu projektowym MVC Niezależność od systemu bazodanowego Programowanie zorientowane obiektowo Łatwość w instalacji oraz konfiguracji na większości platform Zgodność z najlepszymi standardami oraz wzorcami budowy
aplikacji internetowych Walidacja formularzy i treści Wbudowany mechanizm zarządzanie sesjami Łatwość rozbudowy oraz możliwość integracji z innymi
bibliotekami Wykorzystanie technologii scaffoldingu. Wbudowana internacjonalizacja (i18n) Wbudowana ochrona przed atakami CSRF oraz XSS
![Page 27: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/27.jpg)
Laravel
![Page 28: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/28.jpg)
Laravel RESTful Routing
Korzysta z ORMa (Eloquent)
Korzysta z szablonów (Elade)
Łatwe skalowanie (JSON API, RESTful, itp.)
Oparty na niektórych elementach Symfony
Composer
Duże wsparcie społeczności
Wsparcie dla refactoringu
![Page 29: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/29.jpg)
Yii
![Page 30: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/30.jpg)
Yii Szybkie
Modułowa budowa pozwala na dołączanie tylko potrzebnych rzeczy. Do tego cache działa. Podobno AJAX też jest szybki.
Bezpieczny
Wbudowane walidatory wejśca, wyjścia, SQLa. Wbudowane zabezpieczenia przed SQL injection i XSS.
Profesjonalny
![Page 31: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/31.jpg)
CodeIgniter
![Page 32: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/32.jpg)
CodeIgniter Malutki. Zajmuje tylko 500kB.
Przejrzysta dokumentacja
Kompatybilny z większością hostingów (wymaga PHP>= 5.1.6)
Brak restrykcji co do konwencji nazw
Łatwy w użyciu – korzysta z MVC, ale go nie narzuca
Wysoka wydajność
Brak wielgachnych bibliotek
Bezbolesna konfiguracja
Można, ale nie trzeba korzystać z szabalonów
![Page 33: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/33.jpg)
Phalcon
Napisany w C :)
![Page 34: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/34.jpg)
Phalcon ODM for Mongo
Template Engine (Volt)
DI/IOC
Events Management
Encryption
HTTP Request / Response / Cookies
Escaping / Filtering
Forms Builder / Validation
Flash Messages
Cache
Pagination
Annotations
Security
Translations
Assets Management
Universal Auto-Loader
Logging
CLI
![Page 35: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/35.jpg)
Wydajność
![Page 36: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/36.jpg)
Wydajność
![Page 37: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/37.jpg)
Wydajność
![Page 38: rótki i szybki przegląd frameworkówtjach.pl › tresc › uploads › 2014 › 11 › SS_w5.pdfFramework Framework to szkielet do budowy aplikacji Definiuje on strukturę aplikacji](https://reader035.vdocuments.mx/reader035/viewer/2022081611/5f03cf797e708231d40ae254/html5/thumbnails/38.jpg)
Kiedy stosować framework? Jeśli tworzymy prostą aplikację/stronę internetową
składającą się z kilku(nastu) podstron, korzystającą w niewielkim stopniu z bazy danych, bez konieczności tworzenia szczegółowej dokumentacji –wykorzystaj „lekki” framework
Jeśli tworzona aplikacja jest bardziej złożona, posiada rozbudowaną warstwę reguł biznesowych i będzie potencjalnie w przyszłości wzbogacana o nowe możliwości – zdecydowanie framework
Jeśli tworzysz statyczną wizytówkę, z 2-3 podstronami, bez wodotrysków i zarządzania – użyj raczej czystego PHP (albo nawet tylko HTML + JS)