Podpowiedź typu jest punktem debaty w naszej firmie (głównie ludzie z Jawy), a ja jestem bardzo old schoolowym programistą PHP (i programem w innych językach).
Moja rada to unikanie podpowiedzi typu i włączanie funkcji obsługi prób i chwytów w każdej złożonej funkcji.
Podpowiedź typów zmusza aplikację do polegania na środowisku obsługi wyjątków wywołujących, które jest ogólnie złe i przechodzi w niesprawdzone, podstawowy problem. W przypadku aplikacji internetowych powoduje to biały ekran śmierci, w przypadku partii kończy się po prostu fatalnym wyjściem bez logowania dobrych wiadomości w większości przypadków, a ty siedzisz drapiąc się w głowę, próbując odtworzyć problem użytkownika lub aplikacji, który jest zarządzany na twoim komputerze. z powrotem do rozwiązania.
Obsługa wyjątków lokalnych zapewnia bardziej kontrolowany scenariusz testowania, w tym śmieci w typach danych i śmieci w wartościach danych, co daje znacznie bardziej kompletny zestaw testów w porównaniu do trudnej do przetestowania ścieżki obsługi wyjątku w wywołującym, przekazując niepoprawne wpisz i spodziewaj się wyjątku.
Testowanie wyjątków również nie udaje się w wielu przypadkach z powodu problemów z wersją stosu (np. Niektóre wersje PHP, takie jak 5.4, nie przechwytują błędów "złapalnych śmiertelnych" we właściwy sposób, a ergo phpunit po prostu zrywa z testowaniem pakietów testowych. specyficzny problem, jednak z mojego doświadczenia wynika, że podpowiedzi typu są po prostu zbędne, powodują, że ludzie, którzy są przyzwyczajeni do języka maszynowego, akceptują PHP lepiej, nie zdając sobie sprawy z tego wpływu, i powodują znacznie bardziej złożone scenariusze testowania (bardzo trudne do przetestowania wywołujących wywołujące wyniki ścieżki wyjątków).
Użytkownicy języka Java i innych języków pisanych na klawiaturze nie akceptują lub nie wiedzą, jak wykorzystać i wykorzystać domyślne parametry mieszane w PHP ... Będą się uczyć pewnego dnia, ale tylko wtedy, gdy objąć drogę PHP. ;-)
Najlepsze lekcje są wyciągane podczas opracowywania solidnych scenariuszy testowych opartych na jednostkach PHP, które zwykle rzucają światło na to, dlaczego podpowiedź typu jest bólem w tyłku związanym z testowaniem i powoduje znacznie więcej problemów niż dobrych ... Do każdego z nich, a moje aplikacje działają lepiej i bardziej niezawodnie, a testowanie okazuje się o wiele bardziej kompletne z ogólnie 100% pokryciem kodu, w tym ścieżkami catch w lokalnych funkcjach.
Zgadzam się. Po prostu uważam, że wszystkie te ścisłe kontrakty są w jakiś sposób obce pierwotnemu językowi kaczemu. PHP jest już wystarczająco brzydki, a podpowiedzi typu sprawiają, że wygląda jeszcze bardziej jak kupa niespokrewnionych funkcji. –
Nie wiem, PHP rośnie (OOP). Ścisłe interfejsy dla złożonych typów danych mają dla mnie sens. – Mario
Poza tym, otrzymujesz to co najlepsze z obu światów, określasz rygoryzm tam, gdzie ma to znaczenie, lub nie, i pozostawiasz małą dynamikę. – Mario