Wpływ silence operatora na error reporting w PHP

Hej, w dzisiejszym krótkim wpisie bierzemy na tapet słynny i jakże często używany operator @ tzw. STFU. Czy wiesz że jego użycie ma wpływ na error_reporting w PHP? Weźmy pod lupę ten przykład:

<?php declare(strict_types=1);

error_reporting(E_ALL);

set_error_handler(
    function () {
        // int(0) [PHP <= 7.4]
        // int(4437) [PHP >= 8.0]
        var_dump(error_reporting());
    },
    E_ALL
);

// int(32767) [E_ALL]
var_dump(error_reporting());

@trigger_error('warning', E_USER_WARNING);
Czytaj dalej Wpływ silence operatora na error reporting w PHP

DDD – Polityka i Specyfikacja

Witaj drogi czytelniku! Sieć zawiera mnóstwo informacji na temat elementów konstrukcyjnych DDD takich jak agregaty, encje czy value objects (obiekty wartości? dziwnie to brzmi 🙂). W dzisiejszym wpisie chciałem omówić dwa elementy o których ciężko znaleźć artykuły w sieci, a są bardzo przydatne – specyfikacja i polityka. Postaram Ci się wyjaśnić oba wzorce na prostych przykładach a także na faktycznym kodzie. Napisałem wszystkie przykłady w trzech językach (PHP, JavaScript i Rust), tak by każdy mógł znaleźć coś dla siebie 😁.

Gwoli wyjaśnienia, przygodę z DDD zacząłem około 2 lata temu, nie uważam się za eksperta, uwagi i krytyka są mile widziane 🙂!

Spis treści:

Czytaj dalej DDD – Polityka i Specyfikacja

PhpStorm – Plugin „PHP composer.json” is incompatible

Witaj, dawno się nie słyszeliśmy 🙂 Blog ten się dość mocno zakurzył ostatnio, wynika to z faktu iż w moim życiu prywatnych sporo się zmieniło. Chciałbym to zmienić, postaram się umieszczać krótkie wpisy. Od czegoś trzeba zacząć, by wrócić do starych nawyków 🙂

Problem

Od aktualizacji 2020.1 (lista zmian ↗️) PhpStorm zacząłem otrzymywać taki komunikat:

Jedyne co da się zrobić z poziomu PhpStorm to zamknąć ten komunikat. Nie da się odinstalować tej wtyczki w oknie ustawień programu.

Czytaj dalej PhpStorm – Plugin „PHP composer.json” is incompatible

Wpis PHP 7.3 – nieścisłosci

Cześć!

Serdecznie dziękuję za przeczytanie poprzedniego wpisu o nowej wersji PHP. Wpis był bardzo długi, poświęciłem mnóstwo pracy nad nim. Głównie w godzinach bardzo porannych 🙃. Niestety znalazły się w nim dwa błędy, za co najmocniej przepraszam. W tym wpisie opiszę oba błędy, zapraszam do czytanie 🙂.

Czytaj dalej Wpis PHP 7.3 – nieścisłosci

PHP 7.3 – co nowego?

👋 Dzień dobry.

Nowa wersja PHP v7.3 jest już tuż tuż. 13 grudnia zostanie udostępniona wersja produkcyjna. Zmian jest naprawdę dużo co widać po spisie treści 🙂. Zmiany nie są rewolucyjne, większość z nich to są drobnostki, ale na pewno każdy znajdzie coś dla siebie 👍.

📝 Spis treści:

  1. 💡 Elastyczna składnia HEREDOC / NOWDOC
  2. 💡 Przecinek po ostatnim argumencie w wywołaniach funkcji / metod
  3. 💡 Wsparcie referencji w list()
  4. 💡 json_encode() i json_decode() – rzucanie wyjątków
  5. 💡 Nowa funkcja is_countable()
  6. 💡 Nowe funkcje array_key_first/last()
  7. 💡 Nowa funkcja do haszowania haseł – Argon2id
  8. 💡 Same site cookie
  9. 💡 hrtime() – monotoniczny timer
  10. 💡 Nowa metoda – DateTime::createFromImmutable()
  11. 💡 Nowa funkcja – fpm_get_status()
  12. 💡 Nowe funkcje w GMP
  13. 💡 CompileError – nowy typ błędu
  14. 💡 Aktualizacja PCRE do PCRE2
  15. 💡 MBString – wsparcie pełnego case-mapping i case-folding
  16. 🔧 compact() rzuci Notice gdy napotka niezdefiniowaną zmienną
  17. 🔧 instanceof – literał jako pierwszy operand – brak Fatal error
  18. 🔧 Przeprojektowane narzędzie ext_skel
  19. 🔧 Wyjątki nie wypełnią stanu error_get_last()
  20. 🔧 TypeError zgłosi błędne typy jako int oraz bool
  21. 🔧 Instrukcja continue rzuci Warning wewnątrz switch
  22. 🔧 ArrayAccess nie zrzutuje $offset typu string na int
  23. 🔧 Naprawiono referencje w statycznych własnościach klas
  24. 🔧 Naprawiono odpakowywanie argumentów z kluczami nie int
  25. 🔧 BCMath użyje obsługi błędów PHP
  26. ⚰️ Wsparcie dla BeOS porzucono
  27. ⚰️ Deprecated – image2wbmp()
  28. ⚰️ Deprecated – Stałe case-insensitive
  29. ⚰️ Deprecated – funkcje mb* bez dokumentacji
  30. ⚰️ Deprecated – funkcje szukania w string z argumentem nie string
  31. ⚰️ Deprecated – fgetss() oraz filter string.strip_tags
  32. ⚰️ Deprecated – definiowanie własnej funkcji assert()
  33. ⚰️ Deprecated – FILTER_FLAG_SCHEME_REQUIRED oraz FILTER_FLAG_HOST_REQUIRED
  34. ⚰️ Deprecated – pdo_odbc.db2_instance_name dyrektywa php.ini

Czytaj dalej PHP 7.3 – co nowego?