HipHop for FreeBSD | HPHP Playground
Teraz już tylko dzieli mały kroczek od Hip-Hop’a na OSX ;] HipHop for FreeBSD | HPHP Playground
Teraz już tylko dzieli mały kroczek od Hip-Hop’a na OSX ;] HipHop for FreeBSD | HPHP Playground
Dzisiaj z racji chwili wolnego postanowiłem pobawić się czym nowym i pod ostrzał obrałem Lithium, czyli mały lekki i “bogaty” framework w PHP 5.3 i wyższej. Do dzieła. Po rejestracji i wyeksportowaniu kluczy do git’a zassałem snap’a tegoż frameworka. Szybka konfiguracja środowiska, baza i tym podobne zabiegi pojawia sie ekran powitalny: Bardzo przyjemną sprawą jest interface do testów, który jest standartowo zdefiniowany w routerze jako /test: Po klikaniu okazało się że framework korzysta z MongoDB, więc trzeba było doinstalować: ...
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 ...
Prosta acz przydatna funkcja XDEbug’a czyli określenie linku: [xdebug] zend_extension=/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so xdebug.file_link_format = "txmt://open?url=file://%f&line=%l" xdebug.profiler_enable=1 xdebug.profiler_output_dir="/Users/paramah/Sites/Debug" xdebug.trace_format=1 xdebug.trace_output_dir="/Users/paramah/Sites/Debug" xdebug.var_display_max_children=3 xdebug.extended_info=1 xdebug.collect_vars=1 ; cgi.force_redirect = 1
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. ...
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. ...
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: ...
Przy większych projektach wiadomym jest fakt, że głęboka analiza jakości kodu jest podstawą, szczególnie jak pracuje się w grupie i nie zawsze mamy czas na sprawdzanie kto i jak zmienił funkcjonalność. PHP nie jest prosty do debugowania, ale narzędzia które ostatnimi czasy pojawiły się w sieci są naprawdę niezłe, mowa tutaj o rozszerzeniu xdebug 2.0 RC4 najfajniejszym dodatkiem w nowej wersji opisywanego jest dołożenie obsługi DBGp czyli protokołu zdalnego debugowania aplikacji, który jest następcą GDB klika naprawdę fajnie. Klientów jest trochę, na stronie xdebug’a są opisane. ...