PHP: Kategoria poświęcona w całości technologiom server-side, a w szczególności PHP. Uwaga: starsze wpisy o tej tematyce znaleźć można także w "Programowaniu", ponieważ ta kategoria jest relatywnie nowa.
PHP: Kategoria poświęcona w całości technologiom server-side, a w szczególności PHP. Uwaga: starsze wpisy o tej tematyce znaleźć można także w "Programowaniu", ponieważ ta kategoria jest relatywnie nowa.
Kupując konto na potrzeby witryny internetowej, firma hostingowa informuje nas, ile w ramach tegoż konta otrzymamy transferu, tj. jak dużo danych będą mogli pobrać nasi internauci w ciągu miesiąca (łącznie), zanim nie ujrzą komunikatu o przekroczeniu limitu transferu. Oczywiste jest, że im bardziej zoptymalizujemy kod HTML strony oraz elementy graficzne, tym lepiej dla nas. Jednak zabiegi te można trochę wspomóc od strony PHP oraz protokołu HTTP.
A więc stało się. Twoje skrypty buforują wszystkie czasożerne operacje. Zarwałeś cały tydzień, by obliczyć złożoność obliczeniową wszystkich algorytmów, a drugi tydzień, by przerobić te, które kiepsko wypadły. Cała komunikacja z bazą jest cache'owana, a indeksy aż dymią i buczą. Jednak ty pragniesz więcej.
Tablica jest w PHP bardzo uniwersalną strukturą, która w większości przypadków sprawnie potrafi zastąpić wszystkie inne. Duży zestaw funkcji, które możemy na niej stosować sprawia, że typowy programista akurat ten element języka z pewnością ma nieźle opanowany nawet, gdy jest fanatycznym bojownikiem programowania obiektowego :). Tablica w naturalny sposób może pełnić rolę listy, gdyż sama w sobie posiada jej cechy: dynamicznie zmienia rozmiar, dostosowując go do ilości danych. Nietrudno za jej pomocą wykonać stos. W przypływie natchnienia nawet kolejki nie stanowią dużego kłopotu.
Splatch napisał do swoich czytelników wpis "7 grzechów głównych PHP, inwokacja". Zamierzałem go pierwotnie uraczyć paroma krótkimi spostrzeżeniami i nieścisłościami w kilku miejscach, ale ostatecznie rozrósł się on tak bardzo, iż mój komentarz postanowiłem opublikować na własnych śmieciach. Zainteresowanych najpierw zachęcam do zapoznania się z oryginałem: Siedem grzechów głównych PHP - inwokacja.
Mały suplement do mojego ostatniego wpisu o dobrym kodzie. Trafiłem dziś na php.pl na tłumaczenie artykułu z Zend.com poświęcone właśnie temu problemowi: Programowanie proceduralne kontra OO w PHP. Autor dość celnie charakteryzuje tam fanatyków zarówno pisania ciurkiem, jak i OOP, a końcowy wniosek nie pozostawia wiele złudzeń: prawda leży pośrodku.
Moja ostatnia nieobecność w Dziennikach wynikała z tworzenia pierwszego od długiego czasu większego projektu w C++, a mianowicie części multimedialnej prezentacji na Diversity. Choć z racji pośpiechu kod jej na pewno nie jest spełnieniem marzeń wielbiciela dobrego rozplanowania i elastyczności (efekty dokładane były na bieżąco i zwyczajnie nie było czasu), ale mimo wszystko jakiś poziom starałem się utrzymać, cały czas myśląc, że gdybym miał wolną chwilę, z pewnością zrobiłbym to lepiej. Dokonałem przy tym pewnych spostrzeżeń dotyczących przenoszenia praktyk programistycznych z C++ do języków interpretowanych (np. PHP).
Dzisiaj mija jedenaście lat od ukazania się Personal Home Page Tools 1.0, zbioru skryptów Perla, które dały początek oraz nazwę językowi PHP. Pisałem o tym już rok temu, w okrągłą rocznicę. Zobaczmy zatem, jak się z perspektywy tego czasu prezentują ostatnie dokonania programistów z Zend.
Podczas ostatnich dwóch miesięcy miałem okazję robić już dwa projekty, w których trzeba było renderować za pomocą systemu szablonów drzewa. Standardowe sekcje nie bardzo się w takim wypadku sprawdzają, gdyż wymaga to dodatkowych zabiegów zarówno po stronie kodu PHP (umieszczenie informacji dla renderera o każdym węźle), jak i po stronie szablonów (trzy dodatkowe ify i pętla for). Sprawa została poruszona również na forum projektu, więc w wolnych chwilach myślę, jak by ułatwić to zadanie i nieco je zautomatyzować.
Wzdłuż werandy ciągnął się rząd identycznych, brązowych drzwi. Nieliczni zgromadzeni tu ludzie spoglądali na otaczający ich las, kontemplując się nocnym widokiem. Dyskusje były bardzo ciche. Zgodnie z poznanym przed chwilą algorytmem Zyx zahaszował SHA1 zapisaną słownie liczbę drzwi i wyciągnął z otrzymanego ciągu znaków trzecią cyfrę, która miała ukazać mu pokój z centrum dowodzenia. Zbliżył się do niego, jak gdyby nigdy nic i udawał, że wszystko jest w najlepszym porządku. Przez drzwi dobiegały podniesione głosy.
Zyx rozejrzał się nerwowo na boki. Korytarz był pusty, jedynie podwieszone pod sufitem lampy przemysłowe rzucały ciemne, migotliwe światło na betonowe ściany. Trzeba było ruszyć dalej, cel wędrówki niewątpliwie był już niedaleko, prawie na wyciągnięcie ręki. Zza kolejnego zakrętu wyłoniły się masywne, stalowe drzwi zamknięte na dwie zasuwy. Miniaturowy terminal komputerowy z lewej strony uprzejmym, zgniłozielonym napisem witał przybysza: "Podaj hasło: ". Zyx przyjrzał się urządzeniu spod oka. Palcami odnalazł uchwyt i wysunął ze ściany klawiaturę. Klawisze były brudne od setek dłoni je obsługujących. Symboli na niektórych nie dawało się prawie odczytać. Zyx spokojnie wprowadził jedno, proste słowo: "HASŁO", które następnie zatwierdził enterem. Drzwi zaczęły się otwierać.