Zdarza się czasem, że potrzebujemy do aplikacji z użyciem GITa dodać jakąś funkcjonalność, jednak z pewnych powodów nie możemy posłużyć się normalnym commitem. Być może nie chcemy komuś przyznać prawa zapisu w repozytorium, lub nakładamy poprawkę na zewnętrzną aplikację, będącą pod kontrolą systemu wersjonowania. W takim przypadku pomocne będzie stworzenie patcha, a następnie załadowanie go do aplikacji.
Zawarta w tytule nazwa określa implementację wzorca Fluent interface, który odpowiednio zastosowany może uprościć i skrócić tworzony kod. Użycie Method chaining umożliwia cykliczne wywoływanie metod dla obiektu bez jawnego podawania go za każdym razem. Stąd właśnie wzięła się nazwa tej techniki, gdyż wygląda to jak łańcuszek.
Pod koniec zeszłego miesiąca Google wprowadziło zmiany w swoim algorytmie wyszukiwarki. Po poprzednim, nazwanym Panda, wielu osobom zmroził teraz krew w żyłach Pingwin. Dokonane zmiany wpłynęły szczególnie mocno na agresywnych pozycjonerów, nie dbających o jakość. Jak więc bronić się przed spadkami w SERPach?
W ostatnich dniach pojawiło się małe zamieszanie przy okazji aktualizacji PHP. 3 maja wypuszczono wersje 5.4.2 i 5.3.12, poprawiające niewykrytą od 8 lat lukę w bezpieczeństwie, obecną w PHP pracującym w trybie CGI. Jak się jednak szybko okazało, nie rozwiązało to problemu i niektóre systemy nadal pozostały na nią podatne. Najnowsze wersje 5.4.3 oraz 5.3.13 mają już rozwiązywać ten problem całkowicie.
Bardzo często podczas pobierania danych z bazy, zachodzi potrzeba budowania raportu z grupowaniem na okresy: dni, tygodnie, miesiące, itd. Niekiedy dochodzi do tego potrzeba podziału na wybrane grupy. W niniejszym tekście przedstawię kilka przykładowych sposobów na takie zapytania z użyciem dat w MySQL.
PHP nie wymaga precyzowania typu podczas definicji zmiennej. Jest on określany na podstawie kontekstu, w jakim ta zmienna została użyta, z możliwością automatycznych konwersji. Możemy także samodzielnie zmieniać typ zmiennej poprzez rzutowanie lub odpowiednie funkcje. Rodzi to problemy szczególnie przy przekazywaniu parametrów do funkcji, jednak w tym przypadku można dla niektórych stosować podpowiadanie typów (ang. type hinting).