2. Budowa Symfony
●
Struktura HMVC
●
Aplikacja jako zestaw klocków (Bundle)
●
●
Podstawy HTTP jako wzór komunikacji z
aplikacją
Request → Controller → Response
Przestrzenie nazw:
Tribal/NewsletterBundle
6. Przestrzenie nazw
●
namespace EtudePagesBundleController;
use SymfonyComponentHttpFoundationRequest;
class PageController extends Controller {}
ZAMIAST
require_once(BASE_DIR.’vendor/Symfony/Component/.../Request.php’);
●
Pozwala używać tej samej nazwy klasy w obrębie różnych przestrzeni nazw:
use SymfonyComponentHttpFoundationRequest;
use EtudePagesBundleCoreRequest as PageRequest;
7. Dependency Injection
●
●
●
public SomeClass (MyClass $myObject) {
$this->myObject = $myObject;
}
ZAMIAST
public SomeClass() {
$myObject = new MyClass();
$myObject->param1 = „value1”
}
12. Routing
●
●
●
Pozostałe: XML, PHP
YML:
+ deklaracja w jednym miejscu
+ dobre rozwiązanie dla internacjonalizacji
- wymaga minimalnie więcej czasu
Anotacje
+ w tym samym miejscu co kontroler
+ piszesz adres zaraz obok metody
- potrzeba ingerencji w kontroler w celu zmiany adresu
- i tak musisz podać definicję w pliku yml
23. Symfony Best Practices
●
Commituj tylko swój kod (ignoruj gotowe
biblioteki)
●
1 bundle = 1 zadanie
●
Don’t Repeat Yourself
●
YML for routing, Annotations for Doctrine
●
Używaj FormType do generowania formularzy
●
Pisz testy dla swoich pakietów
24. Dalsza lektura
●
●
●
●
●
Symfony The Book
http://symfony.com/doc/current/book/index.html
Symfony Blog Tutorial
http://tutorial.symblog.co.uk/
Symfony Job List Tutorial
http://www.intelligentbee.com/blog/tag/symfony2-jobeet/
KNP Univeristy Video Tutorials
https://knpuniversity.com/
Symfony 2 Cheat Sheet
http://www.symfony2cheatsheet.com/