normanos 2.0

ostatni heretyk na katolickiej ziemi

Archive for the ‘PHP’ Category

Dzisiaj będzie szybko, krótko, treściwie, niczym po żołniersku ;) Jestem zakręcony z powodu kończenia kolejnego projektu dla klienta oraz poniedziałkowego wylotu do ciepłych krajów; szok, że udało mi się coś nowego napisać (ale o prokrastynacji i GTD będzie innym razem, obiecuję).

Kohana Projects to długo oczekiwany serwis (oparty na popularnym ostatnio (tfu) Railsowym Redmine) mający za zadanie w jednym miejscu zgromadzić wszystkie “okołokohanowe” projekty. Podoba mi się. Może nie sam system (bo trochę bałaganu w nim jest), ale sam fakt zebrania wszystkiego do kupy. Widzę, że ilość dodatków systematycznie wzrasta. Super.

Kohana Debug Toolbar to pierwsza perełka wygrzebana na tym serwisie. Jeżeli ktoś miał styczność z Symfony to z pewnością jest zaznajomiony z tym widokiem:

Symfony Developer Toolbar

KDT to udana próba przerobienia standardowego profilera w ten znany z Symfony. Dodatek jest fantastyczny. Takie proste a tyle radości ;) Profiler często “wykrzaczał” mi layout, wydłużał stronę i w ogóle dostarczał innych niepożądanych wizualnych efektów. Z KDT problem mamy z głowy, dane mamy pod ręką, jedynie trochę więcej musimy się naklikać ;)
Nasza Kohana
Kończąc te “kohane” wiadomości nie sposób pominąć Naszej Kohany czyli inicjatywy osób związanych z polskim forum kohany. NK to odpowiedź na ogromne zapotrzebowanie na jakąkolwiek literaturę o KohanaPHP w naszym języku. Lektura obowiązkowa dla początkujących (których ostatnio jest coraz więcej i którzy reprezentują coraz to niższy poziom wiedzy :/ ).

  • 9 Comments
  • Filed under: PHP
  • KohanaPHP – uwaga na .htaccess!

    Dzisiaj taka mało przyjemna sprawa :/ Jakiś czas temu pewna osoba dostała maila, którego można by streścić słowami: “wasza aplikacja jest dziurawa, mam hasła do bazy, proponuje 150zł i wykonam odpowiednie poprawki bezpieczeństwa”. Śliska sprawa tym bardziej, że napisała to osoba udzielająca się na polskim forum Kohany, notabene także czytelnik tego bloga ;) Nie chce tego komentować, za to proponuje lekturę wpisu Vagli. Skupmy się na samym problemie.

    Problem dotyczy frameworka KohanaPHP od wersji (chyba 2.2) w której dodano internal cache w konfiguracji. Internal cache to solidny kop wydajnościowy uzyskiwany poprzez zbuforowanie na ustalony okres czasu całej konfiguracji frameworka oraz wszystkich ścieżek dostępu. Zserializowane tablice są zapisywane w formie tekstowej w katalogu /application/cache/. Nie jestem teraz w stanie stwierdzić czy złą konstrukcję .htaccess posiadała oficjalna paczka z tego czasu czy to jest kwestia indywidualnych zmian. Ważne jest abyście sprawdzili swoje poprzednie produkcje i mieli to na uwadze zestawiając nowe (jednocześnie zmieniając .htaccess standardowo dostarczany z frameworkiem). W każdym razie zestawienie inne niż kierowanie wszystkiego (z pominięciem np. css/img/js itp.) na index.php może spowodować to, że ów katalog z cache będzie swobodnie dostępny z poziomu przeglądarki, a tym samym dostęp do loginu/hasła do bazy danych stoi otworem ;)

    ps. to też jeden z powodów dla którego zawsze sugeruję przenoszenie katalogów z aplikacją i frameworkiem POZA katalog główny (tzw. webroot) dostępny na zewnątrz. W Kohanie jest to bardzo proste do uzyskania: edytujemy plik index.php zmieniając $kohana_application, $kohana_modules i $kohana_system na odpowiednie ścieżki (np. "../enginemojejstrony/application").

  • 10 Comments
  • Filed under: PHP
  • Do napisania tej notki sprowokowała mnie pewna dyskusja na GoldenLine.pl. Klientka jakiejś firmy narzeka, że dostała aplikację, która nie działa na jej hostinKu (błąd zamierzony).

    Co teraz??? Mam strone, za ktora zaplacilam, ktora jest kompletnie do wywalenia, bo .. firma przyjela, ze php 5 jest obslugiwane. [...] Dostalam wiec produkt z wada.

    PHP4 2000-2008 R.I.P.

    Pierwsza stabilna wersja PHP4 ukazała się 22 maja 2000 roku (!!!). 31 grudnia 2007 roku PHP4 zostało oficjalnie uśmiercone, kilka dni później pojawiła się ostatnia (do dzisiaj ale o tym za chwilkę) wersja 4.4.8 z zastrzeżeniem, że support bezpieczeństwa dla gałęzi 4.x będzie trwał do 8.8.2008 (piękna data, jak widać fascynuje wiele osób ;) ). Jak zapowiedziano tak zrobiono i wczoraj ukazała się ostatnia poprawka bezpieczeństwa PHP 4.4.9:

    This release wraps up all the outstanding patches for the PHP 4.4 series, and is therefore the last PHP 4.4 release. After today there will be no more PHP 4 releases, regardless of whether there are security issues found in PHP 4. It’s time to upgrade now

    Developerzy PHP podkreślają, że rozdział z PHP4 został DEFINITYWNIE zamknięty i nawet jeśli zostaną wykryte nowe dziury to NIE zostanie wydana żadna poprawka bezpieczeństwa.

    Produkt z wadą?

    Ale wróćmy do zirytowanej klientki. Czy w obliczu w/w faktów można mieć JAKIEKOLWIEK pretensje do firmy wykonującej aplikację? PHP4 przestało istnieć pół roku temu, równie dobrze klientka mogła by mieć pretensje, że produkt nie jest kompatybilny z PHP3! (pomijam tutaj sprawę wcześniejszego “dogadania się” oraz odpowiednich zapisów w umowach). Czasy w których wymaganie PHP5 było brane za fanaberię programisty bezpowrotnie minęły. Mam nadzieję, że w przyszłości PHP6 zostanie wprowadzone bardziej zdecydowanie i developerzy PHP nie zafundują nam już kilkuletniego horroru miotania się między wersjami i robienia jakiś dziwacznych hybryd.

    “Bezpieczny” hosting

    serwer, na ktorym jest dotychczasowa strona kliena obsluguje wylacznie php 4. Provider nie rpzewiduje w ciagu najblizszych co najmniej 6 miesiecy przestawienia serwera na php 5. Provider to Rubikon ;) ))

    Nie wiem czy najlepszym wyjściem z sytuacji nie było by wykrycie jakiejś poważnej luki bezpieczeństwa i nie złamanie się developerów PHP w swoim postanowieniu.

    PHP 5.3 alfa

    Przy okazji tego wpisu chciałbym zwrócić waszą uwagę na gotową betę alfę PHP 5.3. Odsyłam do oficjalnej notki, dodam tylko, że wersja ta wprowadza dosyć istotne i postulowane od lat “nowości” (czyli to co w wielu innych językach jest normą) m.in. namespaces, lambda functions and closures i wiele innych.

  • 12 Comments
  • Filed under: PHP
  • Kilka dni temu pojawił się nowy skrypt, który powinien was zainteresować. Pisząc “was” mam na myśli tą część, która wielokrotnie wyrażała chęć obejrzenia czyjegoś projektu napisanego w Kohanie na forum.php.pl czy też na forum.kohanaphp.pl.

    Otóż system wymiany linków e-weblink.com udostępnił skrypt e-webcities służący do kolokwialnie mówiąc nabicia sobie punktów w systemie (czytaj: powiększenia zaplecza, zindeksowania, zwiększenia site: itd.). Pominę cały ten aspekt SEO (zainteresowanych odsyłam do wpisów: “E-WebCities – czyli zaplecze na wyłączność” i “Zaplecze i moje w nim nowe trendy“) i skupię się na samym projekcie.

    e-webcities

    Demo skryptu znajduje się pod adresem ewebcites.info, skrypt wraz z instalacją e-weblinka dostępny jest po zalogowaniu się do systemu. Drobna sugestia: jeżeli przygotowujecie paczkę do masowego rozpowszechniania to zadbajcie o skasowanie zbędnych plików, a tych dostarczanych domyślnie wraz z Kohaną jest sporo (tutaj widać wersję 2.1 gdzie modułów jest kilka, ale już najnowsza wersja ma ich… 11! Swoją drogą developerzy Kohany powinni katalog /modules dołączać opcjonalnie). Poza skasowaniem katalogu /modules (tego czego nie używa się w projekcie, ale to chyba oczywiste :P ). Warto zrobić czystki w /system/libraries (szczególnie /drivers) i /system/i18n (w większości wypadków nie potrzebujemy 14 tłumaczeń). Autor zmodyfikował nieco core frameworka (m.in. widać zmiany w funkcji config::item) więc ostrożnie z adaptacją tego do swoich projektów opartych na oryginalnej Kohanie. I to w zasadzie tyle, nie ma co opisywać, lepiej samemu spojrzeć. Myślę, że ci którzy mają problem z załapaniem MVC i pisaniem w Kohanie będą usatysfakcjonowani nową pomocą ;) Osobiście irytuje mnie używany tam sposób routingu (tyle pisaniny dla każdej akcji, mała elastyczność) ale to są już prywatne przyzwyczajenia – dyskusja na ten temat była by tak samo bez sensu jak przy tej czy stosować camelCase czy under_line ;)

    Jeżeli ktoś ma jakieś pytania to można zostawić w komentarzach – autor pewnie zajrzy i odpowie ;)

  • 6 Comments
  • Filed under: PHP
  • Dzisiaj parę słów o bibliotece Validation i nowym komponencie FORge (Form Generation – na razie w SVN, będzie wraz z 2.1). Może na początek coś na temat “zwykłej” walidacji danych. Jakiś czas temu na jednym z blogów przeczytałem o Kohanie: “głupie zwalidowanie formularza wg oficjalnej strony wymaga jakiejś niesamowitej ilości kodu”. W pierwszej chwili zgłupiałem (bo prościej już chyba być nie może), dopiero po chwili dotarło do mnie, że jeden z poradników (polskie tłumaczenie) robi niedźwiedzią przysługę temu frameworkowi ;) Autor coś tam nakombinował, namęczył się, zamieszał, a wszystko po to aby docelowo było łatwiej :) Nie jestem zwolennikiem takich rozwiązań więc daruje sobie moja ocenę tego, zamiast tego pokaże wam jak to można zrobić w najprostszy z możliwych sposobów.
    (więcej…)

  • 6 Comments
  • Filed under: PHP