"Sandbox dla PowerShell'a - zrób to sam!" - Dawid Pachowski
Architektura to podstawa. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2
1. Architektura to podstawa.
Efektywny rozwój rozbudowanych projektów
przy użyciu Symfony 2
Piotr Grabski-Gradziński
Technology Director
VML Poland/Cracov
Krzysztof Gawron
Web Developer
VML Poland/Cracov
1
2. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
2
O czym będziemy mówić?
W jaki sposób Symfony 2 wspiera rozwój
rozbudowanych projektów
5. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
5
Sklep
internetowy
Strona www
Początek
6. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
6
Strona www
www.visionexpress.pl
7. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
7
Sklep internetowy
sklep.visionexpress.pl
8. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
8
Sklep internetowy
sklep.visionexpress.pl
9. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
9
Sklep
internetowy
Strona www
Recepcja
Wspólne
konto
Rozwój
10. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
10
Recepcja
recepcja.visionexpress.pl
11. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
11
Recepcja
recepcja.visionexpress.pl
12. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
12
Recepcja
recepcja.visionexpress.pl
120 oddziałów
Vision Express
50 000 wizyt
od uruchomienia systemu
13. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
13
Wspólne konto
sklep.visionexpress.pl/
konto/
14. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
14
Jak zrealizowaliśmy
tak rozbudowany system?
16. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
16
Kilka słów na temat Symfony 2
17. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
17
Symfony to framework PHP, Filozofia i Społeczność -
wszystkie współpracujące ze sobą w harmonii.
18. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
18
First, Symfony 2 is a reusable set of standalone, decoupled,
and cohesive PHP components that solve common web
development problems.
Then, based on these components, Symfony2 is also a full-
stack web framework.
Fabien Potencier, What is Symfony 2?
19. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
19
Komponenty to bundle!
Jak nimi zarządzać?
Skąd je brać?
Gdzie szukać dokumentacji i pomocy?
20. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
20
Do zarządzania Composer!
getcomposer.org
21. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
21
Biblioteki?
packagist.org
github.com
...
22. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
22
Jak z tego skorzystać?
{
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.3.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.3.*",
"symfony/swiftmailer-bundle": "2.3.*",
"symfony/monolog-bundle": "2.3.*",
"sensio/distribution-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"incenteev/composer-parameter-handler": "~2.0"
}
}
composer install
lub
composer update
23. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
23
Jak wykorzystaliśmy system bundli?
24. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
24
Core
Entities, CSS,
JS, TWIG
Ogólny podział strukturalny
ShopSite Reception
25. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
25
Komponenty funkcjonalne
SMS API
DPD
Mainseek
Płatnosci PL
26. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
26
Komponenty komunikacyjne
API VE
Web Service - SOAP
27. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
27
Pojawia się zasadnicze pytanie!
28. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
28
Co daje mi taki podział?
Przecież to dobrze znany podział na
mniejsze biblioteki!
30. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
30
Spójny interfejs pomiędzy bundlami!
Kluczowe koncepty realizowane w SF2 jak
dependency injection, serwisy, event listenery
umożliwiają prostą komunikację pomiędzy
bundlami. Tak stworzone bundle można łatwo
testować przy pomocy Unit Testów.
31. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
31
Podział na mniejsze komponenty upraszcza
ich rozwój. Możemy łatwiej zaplanować i
podzielić prace.
32. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
32
Poszczególne komponenty są wymienialne
i łatwo można je aktualizować!
33. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
33
W prosty sposób możemy używać
gotowych komponentów do nowych
projektów.
34. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
34
Integracja zewnętrznych bibliotek
SMS API
System wysyłki SMSów.
35. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
35
Przykład z SMS API
Brak dostępnego bundla - napisaliśmy
własny!
36. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
36
Przykład z SMS API
$smsApi = $this->get('smsapi');
$sms = $smsApi->getMessageFactory()->getSmsPro();
$sms->setTo($visit->getPatient()->getPhone());
$sms->setMessage($msg);
$smsApi->send($sms);
37. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2.
Architektura to podstawa.
37
Podsumowanie
Łatwość zarządzania bundlami.
Wymienność komponentów.
Zmiany widoczne od razu.
Prosta integracja zewnętrznych bibliotek.
Łatwiejszy podział pracy.
39. Co jeszcze zostało agencjom interaktywnym?
Micro-planning
39
Dziękujemy.
Krzysztof Gawron
krzysztof.gawron@vml.com
VML Poland
Piotr Grabski-Gradziński
piotr.gradzinski@vml.com
VML Poland