PHP 5.4 sprawdzanie kompatybilności kodu

Mamy aplikację napisaną w starym klimacie i chcemy przejść na php 5.4 a nie jesteśmy pewni czy wszystko będzie działać poprawnie? Ręcznie sprawdzać co jest grane to przy większej ilości kodu proszenie się o problemy, dlatego fajnie zautomatyzować proces. Opcja 1 Wykorzystać crawler’a i przeglądać logi z błędami. Jasne, zadziała zakładając, że mamy dobrego crawler’a (trzeba pamiętać o obsłudze JS’a, jeżeli crawl’er jest napisany w php to musimy się pobawić SpiderMonkey - opis biblioteki znajdziecie na DevZone) ...

sierpnia 9, 2012 · paramah

PEAR local config

Aby szybko i bezboleśnie zainstalować sobie PEAR’a w katalogu z projektem możemy zastosować poniższy kod: mkdir `pwd`/vendors pear config-create `pwd`/vendors pear-config pear -c pear-conf channel-discover pear -c pear-config install /

lipca 17, 2011 · paramah

HipHop for FreeBSD | HPHP Playground

Teraz już tylko dzieli mały kroczek od Hip-Hop’a na OSX ;] HipHop for FreeBSD | HPHP Playground

lipca 28, 2010 · paramah

pecl, xampp, osx snow

Domyślna konfiguracja xampp’a niestety powoduje problemy z kompilacją modułów php, jednak żeby wymusić architekturę podczas kompilacji wystarczy ustawić zmienne systemowe: MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET i po bólu.

maja 9, 2010 · paramah

Ereg is deprecated PHP 5.3, migracja kodu.

W PHP 5.3 rodzina ereg jest już deprecated, czyli w kolejnej wersji zniknie zupełnie, lepiej już teraz zacząć zmieniać kod tak aby było kompatybilny z nową wersją. Dzięki migracji będziemy posiadać kod regex’powy kompatybilny z notacją Perl’ową czyli musimy nasze wyrażenie “opakować” w “/”. Dla ereg można to zrobić tak: Było: ereg('\.([^\.]*$)', $v1, $v2); Powinno być: preg_match('/\.([^\.]*$)/', $v1, $v2); Dla ereg_replace można to zrobić tak: Było: ...

marca 21, 2010 · paramah

Steganografia w PHP

Ciekawe czy ktoś to jeszcze pamięta ;) (bo mnie technika deko kurzem zarosła). Dla niewtajemniczonych i tych których szare komórki zawierające informacje na ten temat poumierały z takich czy innych powodów, słów kilka. Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta, czyli deko inaczej niż w kryptografii (gdzie fakt zaistnienia informacji jest jawny, ale treść już nie). Za Wikipedią: Klasyfikacja systemów steganograficznych: steganografia czysta (pure steganography) - siła techniki opiera się na nieznajomości metody przez stronę atakującą. Systemy te nie spełniają Zasady Kerckhoffsa dlatego nie są polecane steganografia z kluczem prywatnym (private key steganography) - metoda jest jawna i powszechnie dostępna, przez rozpoczęciem komunikacji strony uwzględniają klucz steganograficzny wykorzystywany w sposób zależny od metody, istnieje jednek problem przekazania klucza w bezpieczny sposób steganografia z kluczem publicznym (public key steganography) - podobnie jak w asymetrycznych systemach kryptograficznych używane są dwa klucze - publiczny i prywatny. Klucz publiczny (jawny) wykorzystywany jest przy osadzaniu wiadomości w nośnej, natomiast klucz prywatny przy jej wyodrębnianiu ...

marca 12, 2010 · paramah

OSX i kodowanie w PHP

Złammy przerwę ;) Niebawem 4 lata jak używam sprzętów z pod znaku jabłka, muszę pomyśleć jak to uczcić… Niedawno przeszedłem na czyściutką instalację Leoparda Snow na moim wysłużonym już MacBook’u (polecam wszystkim - druga młodość laptopa). Na szybko musiałem strorzyć sobie platformę do klikania w PHP, sami wiecie jak to jest - projekty, projekty i jeszcze raz projekty. Dobrze więc jest mieć wszystko czego tylko dusza zapragnie do szybkiego budowania kodu. ...

stycznia 27, 2010 · paramah

SOAP, PHP i Introspekcja

Tworzę ostatnio parę systemów do których potrzebny jest mechanizm RPC lub SOAP. Wertując google mój wybór padł na nieco bardziej skomplikowany SOAP głównie z faktu, że jest on natywnie wspierany prze PHP5 jest oczywiście dostępny poprzez extensions tak więc wypada sprawdzić czy owe wsparcie mamy if (extension_loaded('soap')) { echo "HURAAA!!!"; } U mnie pokazał się zbawienny HURAA!!!! mogłem zabrać się do pracy z SoapClient oraz SoapServer (w przypadku braku możliwości użycia soap extension na waszym serwerze z php proponuję projekt NuSOAP o której napisano wiele, ale uprzedzam jest pisana pod kątem PHP4, jednak nie wymaga żadnych dodatkowych zewnętrznych bibliotek i też działa oferując dużo możliwości tworzenia serwerów i klientów SOAP ) do pełni szczęścia potrzebny był jeszcze jakiś tool pozwalający na szybkie generowanie WSDL (Web Services Description Language) którego sładnia jest nieco zawiła w szczególności przy większych projektach, tutaj z pomocą przychodzą możliwości PHP5 związane z introspekcją lub jak kto woli reverse engineering. ...

maja 26, 2008 · paramah

Rekursywne wyświetlanie katalogów (PHP SPL)

SPL to dość fajne narzędzie do implementacji szczególnie iteracji w PHP, warte poznania. Za pmocą SPL’a da się pewne uciążliwe funkcje napisać prościej. Poniżej przykład funkcji, która wypisuje drzewo katalogów: class DirectoryAdapter extends RecursiveIteratorIterator { private $dirArray; private $path; public function __construct($path) { $this->path = $path; parent::__construct(new RecursiveDirectoryIterator($path), parent::CHILD_FIRST); } public function getDirs() { foreach($this as $item) { if($item->isDir()) { $current = count($this->dirArray); $mtime = date("Y-m-d H:m", $this->getMTime()); $this->dirArray[$current]['mtime'] = $mtime; $atime = date("Y-m-d H:m", $this->getATime()); $this->dirArray[$current]['atime'] = $atime; $this->dirArray[$current]['dir'] = str_replace($this->path,'', $this->key()); } } return $this->dirArray; } public function deleteDir() { foreach ($this as $item) { if ($item->isDir()) { rmdir($this->key()); } else { unlink($this->key()); } } rmdir($this->path); } } Wykorzystanie: ...

maja 18, 2008 · paramah