6. Historia
● Tinker wylądował w Laravelu 4.0
○ pod spodem, w pętli uruchamiał eval()
● Laravel 4.1 przeszedł na Boris REPL
● Od Laravela 5.0, tinker używa PsySH
7. PsySH
● wbudowane komendy
● szeroka konfiguracja
● dokumentacja i narzędzia do refleksji
● podpowiadanie składni i zarządzanie historią
● … dużo więcej
14. Magiczne Zmienne
● $_ - ostatni wynik
● $_e - ostatni wyjątek
● $__out - ostatnie wyjście
● $__file - ostatnia ścieżka do pliku
● $__line - ostatni numer linii
● $__dir - ostatni katalog
● $__class - ostatnia klasa
● $__method - ostatnia metoda
● $__function - ostatnia funkcja
● $__namespace - ostatni namespace
19. Bonus
● używanie `use` i `namespace`
● historia w ~/.config/psysh/psysh_history
● pomijanie historii
● przeszukiwanie historii
● nieinteraktywne komendy
● restartowanie tinkera
20. Use cases
● praca z eloquentem i kolekcjami
● praca z kwerendami SQL
● praca z datami przy pomocy carbona
● testowanie funkcjonalności PHPa albo Laravela
● praca z systemem plików
● debugowanie problemów na zdalnych środowiskach
● testowanie własnych endpointów
● testowanie zewnętrznych API
● generowanie uuid (`Str::uuid()` / ``uuidgen``)
● zapoznawanie się z nowym kodem
21. Use cases
● uruchamianie testów
○ albo przez wyjście do shella ``vendor/bin/phpunit --filter user``
○ albo własna komenda
● dispatchowanie eventów / jobów
● wysyłanie maili / notyfikacji
● wysyłanie notyfikacji i Mailables
● itp. …
22. Alternatywy - Tinkerwell
● https://tinkerwell.app/
● płatna aplikacja desktopowa (electron)
● wbudowana instancja laravela
● łączenie po SSH
● praca z projektem w Dockerze
● wyświetlanie danych w tabeli i eksport do CSV
● inspekcja kwerend SQL
● drivery do innych niż laravel aplikacji
○ https://github.com/tinkerwellapp/drivers/tree/master/src/Drivers
○ pozwalają “zbootstrapować” aplikację
○ dodają komendy specyficzne dla danego środowiska
○ Drupal / Magento / PrestaShop / Wordpress itp.