Doctrine + NestedSet + Ajax + Smarty + ZF

Na pewno nie raz okazuje się, że na stronie czy w innej aplikacji trzeba umieszczać i zarządzać danymi hierarchicznymi. Jeżeli korzystamy z Doctrine’a to mamy do dyspozycji NestedSet - bardzo przydatne narzędzie Zaczynamy Po pierwsze określamy strukturę tabeli dla danych hierarchicznych: App_Menus: actAs: NestedSet: hasManyRoots: true rootColumnName: parent_id tableName: menus columns: id: type: integer primary: true autoincrement: true name: string(64) type: integer Powyżej mamy definicję tabeli w której może występować wiele drzeni drzewa, a pole określające dane drzewo nazwane zostało parent_id (w dokumentacji Doctrine, używają root_id jednak w moim przypadku z racji zaszłości historychnych wolę parent_id) ...

stycznia 30, 2010 · paramah

Wyciąganie akcji Zend_Controller w modułach systemu

Czasami w przypadku tworzenia systemu kontroli dostępu do zasobów aplikacji chcemy mieć wszystko np. w bazie danych. W przypadku kiedy aplikacja jest spora to niestety okazuje się ze ręczne prowadzanie elementów systemu do bazy jest zwyczajnie męczące, a fixtures np. w Doctrine to zbędny wysiłek można posilić się prostą funkcją parsującą nasze pliki. Oczywiście kod poniżej jest przystosowany do mojej aplikacji, ale myślę że nie trudno go zmienić pod Wasze potrzeby. ...

stycznia 30, 2010 · paramah

Debugowanie PHP i TextMate...

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

stycznia 29, 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

Telemarketing

listopada 10, 2009 · paramah

Old school Atari poster.

Źródło: http://cargocollective.com/erikjonsson

września 5, 2009 · paramah

Pomysły Tesli wprowadzane w życie.

Źródło: www.ted.com Świetna sprawa, szczególnie kiedy okablowanie jest jedyną rzeczą, która tak naprawdę ogranicza.

września 1, 2009 · paramah

Font’s for programmers

To co widzisz w swoim ulubionym edytorze jest ważne i to nie tylko dlatego, że ma działać, ale też dlatego żeby “łagodziło oko”. Nuda jest straszna to prawda, dlatego zmieniłem sobie font’y w TextMate na Inconsolata jest naprawdę świetna i wygląda doskonale w małych jak i dużych rozmiarach:

lipca 16, 2009 · paramah

ctags i TextMate

Dostałem dość spory kawałek kodu do analizy, jestem leniwy, a jakoże kiedyś (jeszcze za czasów korzystania głównie i przede wszystkich z vim) klikałem ctags stwierdziłem, że teraz mi to będzie potrzebne i to baardzo. google w dłoń i rezultat: http://github.com/sbenhaim/tm-ctags-tmbundle/ Działa świetnie (no prawie idealnie) - parę małych zmian i będzie git (he he he jak sama nazwa wskazuje git-hub :P )

lipca 15, 2009 · paramah

Java, GUI i thread’s

Klasycznie tworząc aplikacje GUI musimy mieć na uwadze jej wielowątkowątkowość. W ActionListener implementować prywatne klasy runnable, thread etc.. metoda sprawdzona i działająca jednak w Java 6 mamy coś nowego, co pozwala na szybkie “oblikanie” wątków. Mowa tutaj o SwingWorker, świetna funkcjonalność - zajmuje się pbsługą wątków za nas, np: Przykład ActionPerformed: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { if(praca != null && !praca.isDone()) return; praca = new pracuje(); praca.execute(); } Implementacja klasy pracuje: ...

czerwca 29, 2009 · paramah