PHP: Odczytywanie wartości bajtów liczby całkowitej.

Dzisiejszy wpis po raz kolejny [poprzednio pisałem o flagach bitowych] zabiera nas w świat manipulacji niskopoziomowymi danymi, odzierając nieco PHP z jego wygodnej, wysokopoziomowej abstrakcji. Skupimy się w nim na wewnętrznym sposobie reprezentacji liczb i odczytywaniu informacji o wartościach ich kolejnych bajtów.

symfony: sfValidatorAnd i problem z ignorowaniem właściwości "required" komponentów wewnętrznych.

Realizuję w tym momencie bardzo przyjemny projekt - przyjemny dlatego, że powstaje “od zera” i mam możliwość wyboru narzędzi, w jakich będę go tworzył. Chciałem spróbować wykorzystać do tego testowany od pewnego czasu framework Symfony2, jednak idąc za radą udzieloną mi przez batmana podczas konferencji 4Developers wracam na “stare śmieci”, czyli stabilną wersję symfony. Jak to bywa przy powrotach - zazwyczaj pojawiają się problemy z ponownym “zgraniem się” programisty z kodem. Tym razem padło na mechanizm walidacji formularzy, który nie do końca chciał współpracować.

Problem: sfValidatorAnd i właściwości “required” komponentów wewnętrznych.

Walidacja formularzy w symfony odbywa się poprzez odpowiednie skonfigurowanie listy walidatorów dla każdego pola. Dostępnych jest wiele tzw. “widgetów” opisujących różne typy pól, a także wiele różnych, mniej lub bardziej ogólnych walidatorów testujących konkretne wymagania dotyczące przetwarzanych danych.

PHP: Flagi bitowe.

Programiści, którzy “zasmakowali” pracy w językach wysokiego poziomu, takich jak m. in. PHP, bardzo często zapominają o możliwości wykorzystania bardzo niskich mechanizmów do osiągnięcia większej elastyczności kodu. Z reguły wykorzystujemy w kodzie różne wzorce projektowe i inne ułatwienia wprowadzone wraz z paradygmatem obiektowym programowania i myślimy za pomocą dużych komponentów, zamiast skorzystać z tego, co istnieje i ma się dobrze od co najmniej kilkunastu lat. Niniejszy wpis będzie poświęcony jednej z takich właśnie możliwości - wykorzystaniu flag bitowych. Zapraszam do lektury.

PHP: Konstrukcja "or die()".

PHP jest językiem programowania, w którym znajduje się wciąż sporo magii, niezależnie od tego, jak czysty kod chcielibyśmy pisać. Czasem jest to magia wprowadzona przez samych twórców interpretera, czasem jednak jej źródło wypływa z innego niż zwykle wykorzystania prostych mechanizmów języka. W dzisiejszym wpisie chciałbym wyjaśnić działanie jednego z przypadków, z jakim styka się praktycznie każdy początkujący programista PHP, a każdy zaawansowany na pewno kilka razy widział jego wykorzystanie w “profesjonalnie” napisanej aplikacji internetowej.

Logika: Short-circuit evaluation.

Na początku chciałbym przypomnieć nieco podstawowe informacje dotyczące operacji logicznych i łączenia warunków. Otóż, w przypadku kiedy chcemy połączyć dwa warunki wykorzystując operator OR (“||”), tablica prawdy dla takiego wyrażenia będzie wyglądała następująco: