PHP: Skrócony zapis kwalifikatorów widoczności metod klasy.

Czasami mam taki nostalgiczny nastrój tęsknoty za “starymi dobrymi czasami”, kiedy spod moich palców wyszło całkiem sporo kodu C++. Naprawdę lubię ten język i uważam za dobrą decyzję twórców wielu języków, aby lekko mówiąc “ściągnąć” składnię z tego języka do własnego rozwiązania. PHP w pewnym sensie jest jednym z nich, także istnieje pewne powiązanie pomiędzy obiema technologiami [poza faktem, że sam interpreter jest napisany w C]. W dzisiejszym wpisie chciałbym pokazać jedną rzecz, mały lukier składniowy, który był obecny w C++, a trochę brakowało mi go w PHP.

PHP: Definiowanie klasy wewnątrz funkcji lub metody.

Język PHP zawiera w sobie dużo różnych “sztuczek”, przez co nasze życie może stać się o wiele łatwiejsze, ale istnieje możliwość, że zostanie przez nas znienawidzony do końca życia. W dzisiejszym wpisie chciałbym pokazać i wyjaśnić jedną z bardzo niejasnych i bardzo brzegowych kwestii, jaką jest zachowanie zasięgu zmiennych podczas przechodzenia do innych plików [np. w przypadku ich includowania]. Zapraszam do lektury. Fotografia: Milian Wolff, CC-BY.

TL;DR.

Nie da się zdefiniować klasy ani wewnątrz funkcji, ani wewnątrz metody. Jeśli chcesz wiedzieć dlaczego - czytaj dalej.

PHP: Definiowanie klasy wewnątrz funkcji lub metody.

Rozważmy następującą sytuację:

PHP: Funkcja extract() i rejestrowanie zmiennych przekazanych do widoku.

Kiedy programuję aplikacje z wykorzystaniem różnego rodzaju frameworków, zawsze zastanawiam się, jak to jest, że ich twórcy potrafią wymyślić rozwiązania, dzięki którym codziennie oszczędzamy cenny czas. Na pewno jest to doświadczenie, na pewno swój wkład ma także talent danego programisty, ale istotną częścią jest także dogłębna znajomość języka programowania, w którym rzeczony framework jest tworzony. W dzisiejszym wpisie chciałbym się z Wami podzielić ciekawym trikiem, jaki pozwala frameworkom na znaczne uproszczenie korzystania z danych przekazanych do widoku.

PHP: Sprawdzanie istnienia adresu email.

Sprawdzanie poprawności adresu email to częsty problem, z jakim zmagają się programiści stron internetowych [i nie tylko]. Jest to dosyć zaawansowane i nietrywialne zagadnienie, jeśli chcemy przeprowadzić całościową walidację tego typu danych. Większość artykułów, jakie w tym temacie możemy znaleźć w Internecie skupia się na sprawdzeniu, a przynajmniej próbie sprawdzenia poprawności samej struktury adresu. W dzisiejszym wpisie chciałbym zaprezentować nieco inny, aczkolwiek związany z tym problem - sprawdzanie istnienia adresu email.

PHP: Warunkowe definiowanie funkcji.

Nie wiem już ile razy zachwycałem się na moim blogu możliwościami języków skryptowych, a najbardziej tymi, które możemy znaleźć w PHP. Dawno, dawno temu, kiedy jeszcze moja wiedza na temat tego języka była “cokolwiek nikła” zauważyłem w czytanym kodzie pewne ciekawe rozwiązanie. O ile na pierwszy rzut oka było ono zrozumiałe, o tyle wychodząc z praktyką wyniesioną z języków takich, jak Pascal / Delphi, czy C / C++ stwierdziłem, że to nie może być możliwe. Kiedy okazało się, że jednak może - ciężko było mi pozbierać myśli.

PHP: Zwracanie wartości z pliku.

Rozwój języka PHP był, a właściwie cały czas jest, dosyć ciekawym “procesem technologicznym”, w trakcie którego powstało wiele funkcjonalności, o których statystyczny programista tego języka praktycznie nie wie. Nie są to aż tak kluczowe dla naszej pracy rzeczy, aczkolwiek czasem mogą pomóc w zaprojektowaniu bardzo interesujących rozwiązań, niemożliwych do realizacji w innych językach programowania. W dzisiejszym wpisie chciałbym przedstawić jedną z takich możliwości - zwracanie wartości z… pliku.

Wstęp: zwracanie wartości.

Zwracanie wartości nam, programistom, kojarzy się głównie z funkcjami i metodami, poprzez które możemy istotnie zwiększyć “reużywalność” tworzonego kodu:

PHP: Obsługa wartości typu DWORD.

W komentarzu do wpisu o flagach bitowych zostałem poproszony przez jednego z komentujących, Bartosza Wójcika, o opisanie obsługi wartości typu DWORD w PHP. Wychodząc naprzeciw tej prośbie, rozbiłem temat na pewnego rodzaju wprowadzenie we wpisie o odczytywaniu wartości bajtów w zmiennych liczbowych, a dzisiaj podejmuję temat właściwy. Zapraszam do lektury, a także zgłaszania własnych pomysłów na tematy wpisów, o których chcielibyście przeczytać. Żadne zgłoszenie nie zostanie przeze mnie pozostawione bez echa. ;]

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.

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: Lista stałych zdefiniowanych w klasie.
Programując w dowolnym współcześnie wykorzystywanym języku na pewno zdarzyło Wam się korzystać z tzw. flag. Flaga, to nic innego niż stała wartość zapisana pod odpowiednim identyfikatorem. Jedną z szerzej stosowanych możliwości jest użycie ich jako komunikatów - numerów lub identyfikatorów np. błędów. W dzisiejszym wpisie pokażę pewien ciekawy sposób na przekazywanie bardziej zrozumiałych informacji dla użytkownika końcowego na podstawie tych właśnie elementów języka. Wstęp: Komunikaty o błędach. W języku C i C++ stałe mogły być definiowane na wiele sposobów.