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: 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: 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.
PHP: Dynamiczne tworzenie zmiennych na podstawie indeksów tablicy.

Podczas pisania kodu czasami natrafiamy na sytuację, gdzie potrzebne informacje znajdują się w mało wygodnym dla nas kontenerze. O ile tablice w języku PHP są jednym z najprostszych w wykorzystaniu kontenerów, jakie do tej pory widziałem, ciągłe wykorzystywanie konstrukcji $arr[‘sth’] potrafi zmęczyć nawet bardzo wytrwałego programistę. W dzisiejszym wpisie chciałbym przedstawić dwie techniki pozwalające na uniknięcie tego typu utrudnień.

Problem: $arr[‘index0’], $arr[‘index1’]…

Problem polega na tym, że podczas odwoływania się do informacji zawartych w tablicy… musimy odwołać się do tablicy:

PHP: Sprawdzanie, czy plik został włączony do kodu.

Ci, którzy śledzą stronę niniejszego blogu na Facebooku, na pewno zauważyli status, jakim się z nimi podzieliłem w środę. Strasznie się wtedy zdenerwowałem, bo straciłem kilka godzin życia, a popełniony błąd był trywialny. Podczas analizy działania zwyczajnie skupiłem się na bardziej zaawansowanych częściach kodu, zapominając o podstawach, co odbiło się niestety na procesie “debugowania”. Skoro powstał problem, to na pewno istnieje dla niego rozwiązanie, dlatego w niniejszym wpisie chciałbym przedstawić Wam sposób na zabezpieczenie się przed tym “błędem”.

Funkcja require_once() działa… tylko “once”.

O co chodziło w całym problemie? Otóż, moja praca inżynierska, w ramach której piszę framework w języku PHP w pewnym momencie przekazuje sterowanie do modułu widoku [View]. Widok ten, pomijając całą abstrakcję, jaka za nim stoi, w pewnym momencie wykonuje zwyczajną instrukcję require_once(), włączając plik z kodem szablonu.

[PHP] Zwracanie wielu wartości z funkcji.

Zaczynając przygodę z programowaniem każdy z nas otrzymał od swoich mentorów kilka informacji, które należało przyjąć za podstawę i z jako takimi aksjomatami po prostu nie dyskutować. Z reguły na początku kariery nikogo nie zastanawiają ani nie denerwują takie ograniczenia, stąd trwamy w naszym przeświadczeniu, że to, co robimy jest zgodne z jak najlepszymi technikami programowania. W dzisiejszym wpisie chciałbym nieco nagiąć jedną z tych reguł i pokazać Wam pewną sztuczkę czasem istotnie ułatwiającą życie, szczególnie podczas tworzenia kodu w języku PHP.

Wstęp.

Jedną z takich “niedyskutowalnych” rzeczy była dla mnie przekazywana od początku informacja o tym, że wynik funkcji / metody to zawsze jedna wartość / zmienna. Nawet brak tej wartości można było uznać za wartość, ponieważ w Pascalu [który był pierwszym językiem programowania jaki poznałem] paradygmat proceduralny był realizowany za pomocą dwóch elementów - procedur [nie zwracających wartości, odpowiednik funkcji zwracających void w C / C++] i funkcji [które “coś” zwracały], także nawet było to podzielone na dwa oddzielne byty.

[(My)SQL] Sortowanie wyników według własnej listy wartości.

Język SQL kryje w sobie wiele różnych tajemnic, których znajomość może bardzo ułatwić życie programisty. Nawet podczas korzystania z jego zwykłych - “nieprogramowalnych” elementów, takich jak podstawowe zapytania CRUD [mówiąc “programowalne”, mam na myśli wszelkiego rodzaju procedury składowane i im podobne] możemy dowiedzieć się o wielu sztuczkach, które potrafią przeobrazić zwracane wyniki w gotowy zestaw danych gotowy do użycia. Mając w pamięci jeden z moich niedawnych wpisów o zwracaniu numeru rekordu, dzisiaj także chciałbym przedstawić Wam jedną z takich sztuczek.

Wstęp.

Niecałe dwa tygodnie temu stanąłem przed niemałą zagwozdką - pobierałem z tabel rekordy, których dane miały tworzyć listę w odpowiedniej kolejności. Uprzedzam pytania - w zbiorze wynikowym nie było żadnego pola “ordering”, według którego można by uszeregować te dane, a wprowadzenie go i oprogramowanie w panelu administracyjnym nie było aż tak istotne, żeby się tym zająć na poważnie. Potrzebne było rozwiązanie “na szybko”, które jednak nie powodowałoby istotnego wzrostu współczynnika WTF/min dla ewentualnych przyszłych programistów, którzy zajrzeliby do tego projektu:

[Linkdump #5] $('#blog .linkdump').append('jQuery');

Witajcie! Zapewne z wypiekami na twarzy każdy z Was czekał na kolejny Linkdump zastanawiając się o czym opowiem Wam tym razem. ;] Mając na uwadze ostatnie wpisy dotyczące języków programowania [no dobra, nie wszystkie ;]] pewnie spodziewaliście się “wzięcia na warsztat” jeszcze jednego z nich. Tymczasem dzisiaj postanowiłem pokazać Wam ciekawe materiały dotyczące jednej z bibliotek / frameworków języka JavaScript. Panie i panowie - przed Wami jQuery!

Linkdump.

1. PluginQuery. Wyszukiwarka pluginów do biblioteki. Nigdy wcześniej znalezienie ciekawego skryptu nie było tak proste. ;]