SlideShare a Scribd company logo
1 of 84
Download to read offline
xD bug - jak debugować
PHP-owe aplikacje (Xdebug)
Marcin Tracz
Software developer w Blumilk
marcin.tracz@blumilk.pl
Agenda
➔ Debugowanie interaktywne i nie interaktywne
➔ Xdebug - co i jak
➔ Xdebug - instalacja
➔ Xdebug - konfiguracja
➔ Xdebug - wywołanie sesji debugowania (WEB)
➔ PHPStorm konfiguracja
➔ Visual Studio Code konfiguracja
➔ Xdebug - wywołanie sesji debugowania (CLI)
➔ Xdebug, PHPStorm, Docker
➔ PHPStorm debugowanie testów, skryptów
➔ Zdalne debugowanie
◆ SSH
◆ NGROK
◆ Xdebug Cloud
◆ DBGproxy
➔ Xdebug alternatywy
Debugowanie aplikacji PHP
interactive debugging
non-interactive debugging
Xdebug?
Nie działa to debagołanie
Xdebug - ogólny zarys
➔ Derick Rethans
➔ 2002 rok
➔ open source
➔ PHP extension (PECL package https://pecl.php.net/package/xdebug)
➔ https://xdebug.org/
➔ https://github.com/xdebug/xdebug
➔ aktualne stabilne wydanie na dzień 9.11.2022: 3.1.6 (z dnia 8.11.2022)
➔ aktualne beta wydanie na dzień 5.11.2022: 3.2.0RC1 (z dnia 10.10.2022)
➔ pierwsze wydanie: 0.6.0 (z dnia 25.04.2002)
https://github.com/xdebug/xdebug/releases/tag/0.6.0
https://github.com/xdebug/xdebug/tags?after=1.2.0rc2
Protokół DBGp
Specyfikacja protokołu:
https://xdebug.org/docs-dbgp.php
Wersja: 1.0
Autorzy:
- Shane Caraveo, ActiveState
- Derick Rethans
Protokół zapewnia komunikację między silnikiem debuggera (np. Xdebug),
a IDE debuggera (np. PHPStorm, VS Code).
Silnik debugera (Xdebug) inicjuje sesję debugowania.
Silnik debuggera nawiązuje połączenie z nasłuchującym IDE, a następnie czeka, aż IDE zainicjuje polecenia.
Protokół DBGp
SERVER
CLIENT
Jak to działa?
1. IDE nasłuchuje na porcie 9000
2. Użytkownik wysyła request
inicjując sesję debugowania, do
Xdebug. (parametr
XDEBUG_SESSION_START)
3. Xdebug rozpoczyna sesję
debugowania i próbuje nawiązać
połączenie do IDE. Wysyła pakiet
INIT i czeka. Nie wykonuje
jeszcze żadnego kodu.
4. IDE negocjuje funkcje lub ustawia
dowolne punkty przerwania
5. IDE wysyła polecenia, aby
interaktywnie przechodzić przez
kod
Xdebug v2 config params!
źródło https://crosp.net/blog/software-development/web/php/understanding-and-using-xdebug-with-phpstorm-and-magento-remotely/
Jak to działa?
źródło https://crosp.net/blog/software-development/web/php/understanding-and-using-xdebug-with-phpstorm-and-magento-remotely/
Xdebug v2 config params!
Xdebug - a wersje PHP
źródło https://xdebug.org/docs/compat#versions
Instalacja
https://xdebug.org/docs/install
Linux:
Windows:
Instalacja - przez PECL
Instalacja
!
Wyłączenie OPcache:
xdebug_info();
xdebug_info();
Wywołanie sesji debugowania - WEB
➔ parametr GET/POST, XDEBUG_SESSION, XDEBUG_SESSION_START, XDEBUG_TRIGGER
➔ ręczne dodanie ciastka (cookie) XDEBUG_SESSION
z pomocą przychodzą wtyczki w przeglądarkach
◆ Xdebug Helper - Firefox
◆ Xdebug helper - Chrome
◆ Xdebug helper - Microsoft Edge
◆ XDebugToggle - Safari
➔
Xdebug będzie zawsze próbował zainicjować sesję debugowania
Aby wyłączyć sesję debugowania, usuń ciastko, lub wyłącz z poziomu wtyczki w przeglądarce.
Ewentualnie parametr XDEBUG_SESSION_STOP
Debugging Clients
źródło https://xdebug.org/docs/step_debug
Konfiguracja - PHPStorm (2022.2.3)
Konfiguracja - PHPStorm
Konfiguracja - PHPStorm
NIE nasłuchuje na połączenia Xdebug Nasłuchuje na połączenia Xdebug
Konfiguracja - PHPStorm
Konfiguracja - PHPStorm
Znów nie działa to debagołanie. Pokaż, nosz kur**
Może płyty nie ma?
Konfiguracja - Xdebug.ini
Konfiguracja - PHPStorm
Konfiguracja - PHPStorm
PHPStorm - opcje Xdebug
https://www.jetbrains.com/help/phpstorm/debug-tool-window.html
1
2
3
PHPStorm - opcje Xdebug
Konfiguracja
Konfiguracja
Konfiguracja - Visual Studio Code
Konfiguracja - Visual Studio Code
Konfiguracja - Visual Studio Code
1 2
3
Konfiguracja - Visual Studio Code
Wywołanie sesji debugowania - CLI
➔ env variable, XDEBUG_SESSION, XDEBUG_TRIGGER, XDEBUG_CONFIG
wartość tych zmiennych nie ma znaczenia, dopóki nie ustawisz ręcznie xdebug.trigger_value
Wywołanie sesji debugowania - CLI
Wywołanie sesji debugowania - CLI
Debugowanie skryptów CLI, np. kolejki
JOB
REDIS
JOB
JOB
KOLEJKA
Debugowanie skryptów CLI - PHPStorm way
Debugowanie skryptów CLI - PHPStorm way
Wywołanie sesji debugowania podczas błędu
kiedy wystąpi: PHP Notice lub Warning
kiedy zostanie rzucony wyjątek: Throwable (Error lub Exception)
Mam 2 aplikacje backendowe - co robić, jak żyć?
app1 app2
HTTP request
+ poprawna konfiguracja
client_host
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
Xdebug, PHPStorm, Docker
LOCAL
DOCKER NETWORK
PHP APP in
container
HOST?
LOCALHOST
HOST address inside Docker
HOST address inside Docker
Mac: host.docker.internal / docker.for.mac.host.internal (replaces docker.for.mac.localhost)
Windows: host.docker.internal / docker.for.win.host.internal (replaces docker.for.win.localhost)
Linux: host.docker.internal
- Windows/Mac
Docker version >= 18.03
- Linux
Docker version >= 20.10.0
host.docker.internal
https://github.com/moby/moby/pull/40007
HOST address inside Docker
Windows
Mac
Linux
HOST address inside Docker
host.docker.internal:host-gateway
BEZ Z
HOST address inside Docker
PHPStorm, Docker, Xdebug
HOST address inside Docker
https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host
host-gateway in Docker on Linux
https://github.com/docker/cli/blob/master/opts/hosts.go
IP Hosta w kontenerze
PHPStorm debugowanie testów
PHPStorm debugowanie testów
CLI debugowanie testów
PHPStorm debugowanie widoków Blade
/storage/framework/views
PHPStorm debugowanie widoków Blade
Xdebug a wydajność aplikacji?
Xdebug spowalnia wydajność aplikacji!
“XDebug checks each HTTP request for the existance of a specific URL
parameter or a cookie in order to determine if it should be activated or not”
Xdebug logs
Brak parametru i ciastka, do wywołania sesji debugowania!
Xdebug logs - mode debug
Xdebug logs - mode debug
Zainicjowanie sesji debugowania (parametr lub ciastko).
Xdebug logs - mode debug
Xdebug logs - mode develop
BRAK LOGÓW
Xdebug a testy?
Xdebug spowalnia testy!
Xdebug a testy?
Zdalne debugowanie
Możliwe opcje:
➔ Publiczne IP + przekierowania portów na routerze
➔ Tunel SSH (reverse SSH port forwarding)
➔ NGROK
➔ Xdebug Cloud
Jeśli jesteś w innej sieci niż serwer z aplikacją PHP, którą musisz
debugować, możesz mieć problem. Xdebug ze zdalnego serwera nie może
bezpośrednio połączyć się z Twoją maszyną przez wszystkie zapory,
routery NAT lub inną infrastrukturę sieciową.
developer
IDE
PHP app
with
Xdebug
local internet
Zdalne debugowanie - tunel SSH
1. local port forwarding
2. remote port forwarding (reverse tunneling)
źródło https://goteleport.com/blog/ssh-tunneling-explained/
źródło https://docs.devsense.com/en/vs/debugging/remote-debug-via-ssh
Opcja -R instruuje klienta SSH, aby przekazał port
9003 ze zdalnej maszyny do miejsca,
na localhost:9003, gdzie Debugger (IDE) będzie
nasłuchiwał.
E
Zdalne debugowanie - NGROK
źródło https://ngrok.com/
na dzień 7.11.2022
Xdebug Cloud - beta
https://xdebug.cloud/
➔ 2021 rok
➔ płatne
➔ tylko dla firm
➔ multi - user debugging (kilka jednoczesnych sesji debugowania)
Dokumentacja:
https://xdebug.cloud/docs
źródło: https://xdebug.cloud/signup
Xdebug Cloud - beta
Xdebug
Cloud
developer
IDE
aplikacja
(z Xdebug)
Xdebug session
trigger request
(with XDEBUG_SESSION param/cookie)
local
internet
źródło: https://xdebug.cloud/
źródło: opracowanie własne
Xdebug Cloud - cennik
Na dzień 5.11.2022 źródło: https://xdebug.cloud/signup
Xdebug Cloud - dashboard
źródło: https://www.youtube.com/watch?v=Jny-RJDf2AM
Multi user debugging - DBGproxy
źródło: https://xdebug.org/docs/dbgpProxy
źródło: https://xdebug.org/download#dbgpProxy
Multi user debugging - DBGproxy
źródło: https://blog.gougousis.net/xdebug-walkthrough/
Alternatywy dla Xdebug
debugger:
➔ Zend Debugger
paczki:
➔ Ray (Spatie) https://github.com/spatie/ray - płatne
➔ tracy (Nette) https://github.com/nette/tracy
➔ kint https://github.com/kint-php/kint/
Pytania?
marcin.tracz@blumilk.pl
Marcin Tracz

More Related Content

What's hot

What's hot (20)

Express JS
Express JSExpress JS
Express JS
 
Rest api with node js and express
Rest api with node js and expressRest api with node js and express
Rest api with node js and express
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
 
Introduction to Spring Cloud
Introduction to Spring Cloud           Introduction to Spring Cloud
Introduction to Spring Cloud
 
sqlmap - why (not how) it works?
sqlmap - why (not how) it works?sqlmap - why (not how) it works?
sqlmap - why (not how) it works?
 
SAML Protocol Overview
SAML Protocol OverviewSAML Protocol Overview
SAML Protocol Overview
 
Trusts You Might Have Missed
Trusts You Might Have MissedTrusts You Might Have Missed
Trusts You Might Have Missed
 
Web Development In Oracle APEX
Web Development In Oracle APEXWeb Development In Oracle APEX
Web Development In Oracle APEX
 
Got database access? Own the network!
Got database access? Own the network!Got database access? Own the network!
Got database access? Own the network!
 
Nodejs functions & modules
Nodejs functions & modulesNodejs functions & modules
Nodejs functions & modules
 
XSS - Attacks & Defense
XSS - Attacks & DefenseXSS - Attacks & Defense
XSS - Attacks & Defense
 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
Express JS Rest API Tutorial
Express JS Rest API TutorialExpress JS Rest API Tutorial
Express JS Rest API Tutorial
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
RH_Summit_IdM_Lab_User_Guide_2015
RH_Summit_IdM_Lab_User_Guide_2015RH_Summit_IdM_Lab_User_Guide_2015
RH_Summit_IdM_Lab_User_Guide_2015
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
 
How Browser Works?
How Browser Works?How Browser Works?
How Browser Works?
 

Similar to xD bug - Jak debugować PHP-owe aplikacje (Xdebug)

Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP3camp
 
Debugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebugDebugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebugXSolve
 
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Droptica
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Django od developerki po produkcję (linux)
Django od developerki po produkcję (linux)Django od developerki po produkcję (linux)
Django od developerki po produkcję (linux)Marcin Grzybowski
 
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoDominik Szopa
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Wojciech Klocek
 
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux PROIDEA
 
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime
 
PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]Droptica
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
Wzorce projektowe w praktyce
Wzorce projektowe w praktyceWzorce projektowe w praktyce
Wzorce projektowe w praktycePHPstokPHPstok
 
Vagrant - RuPy Tuesday
Vagrant - RuPy TuesdayVagrant - RuPy Tuesday
Vagrant - RuPy TuesdayGaldoMedia
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8Grzegorz Bartman
 

Similar to xD bug - Jak debugować PHP-owe aplikacje (Xdebug) (20)

Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
 
Debugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebugDebugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebug
 
[TestWarez 2017] Architektura frameworka testowego
[TestWarez 2017] Architektura frameworka testowego[TestWarez 2017] Architektura frameworka testowego
[TestWarez 2017] Architektura frameworka testowego
 
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
 
Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Django od developerki po produkcję (linux)
Django od developerki po produkcję (linux)Django od developerki po produkcję (linux)
Django od developerki po produkcję (linux)
 
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework DjangoZastosowanie buildout przy wdrażaniu projektów opartych o framework Django
Zastosowanie buildout przy wdrażaniu projektów opartych o framework Django
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!
 
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux
PLNOG 4: Piotr Siwczak - Zarządzanie farmami serwerów Linux
 
Wstęp do profilowania aplikacji
Wstęp do profilowania aplikacjiWstęp do profilowania aplikacji
Wstęp do profilowania aplikacji
 
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
 
PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
Wzorce projektowe w praktyce
Wzorce projektowe w praktyceWzorce projektowe w praktyce
Wzorce projektowe w praktyce
 
Vagrant - RuPy Tuesday
Vagrant - RuPy TuesdayVagrant - RuPy Tuesday
Vagrant - RuPy Tuesday
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8
 
WordCamp Poznan 2018
WordCamp Poznan 2018WordCamp Poznan 2018
WordCamp Poznan 2018
 
Iron Python I Dlr
Iron Python I DlrIron Python I Dlr
Iron Python I Dlr
 

More from Laravel Poland MeetUp

WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...Laravel Poland MeetUp
 
Kilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentKilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentLaravel Poland MeetUp
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Laravel Poland MeetUp
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Laravel Poland MeetUp
 
Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Laravel Poland MeetUp
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravel Poland MeetUp
 
Przegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaPrzegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaLaravel Poland MeetUp
 
Laravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Poland MeetUp
 
Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Poland MeetUp
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelLaravel Poland MeetUp
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Poland MeetUp
 

More from Laravel Poland MeetUp (20)

WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
 
Kilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentKilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w Eloquent
 
Licencje otwartego oprogramowania
Licencje otwartego oprogramowaniaLicencje otwartego oprogramowania
Licencje otwartego oprogramowania
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
 
Jak przemycić Shape Up do Scruma?
Jak przemycić Shape Up do Scruma?Jak przemycić Shape Up do Scruma?
Jak przemycić Shape Up do Scruma?
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)
 
Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelniania
 
Przegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaPrzegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do Laravela
 
Walidacja w Laravelu
Walidacja w LaraveluWalidacja w Laravelu
Walidacja w Laravelu
 
(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze
 
Laravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2E
 
Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?
 
Laravel Jobs i PHP8
Laravel Jobs i PHP8Laravel Jobs i PHP8
Laravel Jobs i PHP8
 
Wszystko o Laravel Livewire
Wszystko o Laravel Livewire Wszystko o Laravel Livewire
Wszystko o Laravel Livewire
 
Laravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFamiLaravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFami
 
Action-based Laravel
Action-based LaravelAction-based Laravel
Action-based Laravel
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydach
 
Laravel 8.0 - co nowego?
Laravel 8.0 - co nowego?Laravel 8.0 - co nowego?
Laravel 8.0 - co nowego?
 

xD bug - Jak debugować PHP-owe aplikacje (Xdebug)