Budowanie aplikacji PHP bez użycia frameworków
-
Upload
michal-lukaszewski -
Category
Software
-
view
35 -
download
0
Transcript of Budowanie aplikacji PHP bez użycia frameworków
![Page 1: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/1.jpg)
Michał ŁukaszewskiIntelSoftware Engineer
Budowanie aplikacji PHP
bez użycia frameworków
![Page 2: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/2.jpg)
Plan historyjki
• Smuteczki
• Mądrzenie się
• Wnioski
![Page 3: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/3.jpg)
Smuteczki
![Page 4: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/4.jpg)
Czemu się czepiam frameworków?
![Page 5: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/5.jpg)
Problemy jakie rozwiązują
Rapid Development
Te, które same stworzyły
![Page 6: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/6.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
![Page 7: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/7.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Korzystasz z kodu, którego nie rozumiesz
• Opcache ma limity
• Zaczynasz wykorzystywać rozwiązania, które „dostałeś”, a nie tych, których
na danym etapie projektu naprawdę potrzebujesz
![Page 8: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/8.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
Casus Left-pad gate
![Page 9: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/9.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji
![Page 10: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/10.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
![Page 11: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/11.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
![Page 12: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/12.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
![Page 13: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/13.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
![Page 14: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/14.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
![Page 15: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/15.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
• Zależności jego zależności
![Page 16: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/16.jpg)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
• Zależności jego zależności
• Degeneracja umysłowa programistów
![Page 17: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/17.jpg)
Wojny frameworków
![Page 18: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/18.jpg)
Programista frameworka
• Dopasowuje świat do frameworka
• Spędza godziny wertując dokumentację frameworka
• Która i tak go okłamuje, więc potem zamęcza innych na grupach dyskusyjnych
• Każde rozwiązanie czy architektura musi pasować do frameworka
• Coś co nie jest w bundlu – nie istnieje
• Rozwiązuje problemy stwarzane przez framework, a nie przypadki biznesowe.
• Święcie wierzy, że reszta świata się myli
![Page 19: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/19.jpg)
Mądrzenie się
![Page 20: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/20.jpg)
Czego tak naprawdę potrzebujemy
![Page 21: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/21.jpg)
Czego tak naprawdę potrzebujemy
Router/Dispatcher
![Page 22: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/22.jpg)
Czego tak naprawdę potrzebujemy
Router/Dispatcher Responder/Renderer
![Page 23: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/23.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
![Page 24: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/24.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
![Page 25: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/25.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
Serializers
![Page 26: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/26.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
![Page 27: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/27.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
e
![Page 28: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/28.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
![Page 29: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/29.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
![Page 30: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/30.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
![Page 31: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/31.jpg)
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
![Page 32: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/32.jpg)
Architektura über alles
Business requirements
Architecture Implementation
![Page 33: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/33.jpg)
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
![Page 34: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/34.jpg)
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
![Page 35: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/35.jpg)
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source A
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
Data Source B
![Page 36: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/36.jpg)
Elastyczność
http://getprooph.org
![Page 37: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/37.jpg)
Wnioski
![Page 38: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/38.jpg)
Ale...
![Page 39: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/39.jpg)
Tak, zbudowaliście framework
![Page 40: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/40.jpg)
Tak, zbudowaliście framework
• Minimalny
• Oparty ma architekturze, którą rozumiecie
• Bo dopasowanej bo biznesu, któremu ma służyć
• Optymalny dla Waszych możliwości technicznych i poznawczych
![Page 41: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/41.jpg)
Nigdy więcej frameworka?
![Page 42: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/42.jpg)
Nigdy więcej frameworka?
Business requirements
Architecture Implementation
![Page 43: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/43.jpg)
Nigdy więcej frameworka?
Business requirements
Architecture Implementation
![Page 44: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/44.jpg)
Architecture Implementation
Nigdy więcej frameworka?
Implementation
Framework
Microframework
Full framework
Specialiazedframework
(i.e. Magento)
Custom Do you best
![Page 45: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/45.jpg)
Nigdy więcej frameworka?
• Nie odkrywaj koła na nowo
• Potrzeby biznesowe są ważniejsze od mojej strefy komfortu
• Za pomocą dużego frameworka można zrobić wszystko
• Ale nie wszystko jej sens
• Samodzielne myślenie boli tylko nie przyzwyczajonych
![Page 46: Budowanie aplikacji PHP bez użycia frameworków](https://reader034.fdocument.pub/reader034/viewer/2022051706/58ef21db1a28abca7a8b4571/html5/thumbnails/46.jpg)
&Michał ŁukaszewskiIntelSoftware Engineer