Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[php|zend] Biblioteka obsługi plików CSV - przykład.
Ponad dwa miesiące temu (ale ten czas leci…) przedstawiłem Wam propozycję klasy ułatwiającą pracę z plikami CSV - obiecałem wówczas, iż przedstawię bardziej zaawansowany przykład jej wykorzystania. Dotrzymuje więc obietnicy ;).
Przypomnę, iż poprzednio zaprezentowałem ogólne możliwości biblioteki Fasic_Csv, które między innymi skupiały się na:
- pobraniu następnej (lub dowolnie wybranej) linii z pliku CSV w postaci napisu oraz tablicy komórek
- pobraniu wybranej komórki, dla której można było określać jej typ (patrz biblioteka
Fasic_Forcetype)
Programista Zend Framework - poziomy wtajemniczenia.
System Zend Framework stał się ostatnimi czasy bardzo popularny, w związku z czym jego znajomość jest bardzo mile widziana wśród pracodawców (czasami wręcz wymagana)… zastanawia mnie jednak co się kryje pod pojęciem “umiejętność ZF”.
Osoby, które chociaż trochę liznęły systemu Zend Framework wiedzą, iż serwisy oparte na ZF mogą być stworzone na 1001 sposobów (co w tym przypadku jest dużym plusem), przy czym każdy z nich będzie inny.. jedynie co może być stałe to zbiór podstawowych klas, takich jak Zend_Controller_Front, Zend_Controller_Action, itp…
[php|zend] Przykłady dla biblioteki Fasic_Mail + nowa wersja biblioteki.
Dwa miesiące temu przedstawiłem system szablonów e-maili oraz najprostszy przykład jego użycia. Tym razem chciałbym podać bardziej zaawansowane przykłady (niektóre z nich były już wspomniane) wraz z kodem źródłowym, w tym: obsługa wielu managerów, wielojęzyczność, treść e-maili w formacie HTML i obsługa załączników.
[php|zend] Szablony emaili.
Biblioteka wysyłania e-maili w systemie Zend Framework jest bardzo fajnie zaprojektowana i zaimplementowana (patrz Zend_Mail). Niestety brakowało mi w niej obsługi szablonów, które spełniałyby następujące kryteria:
- Treść e-maila jest poza kodem PHP (patrz też pkt 3)
- Sparametryzowanie e-maili, czyli możliwość wysyłania tych samych e-maili różniących się tylko niektórymi wartościami (np e-mail aktywacyjny może różnić się tylko adresem aktywacyjnym)
- Wybór między źródłem treści szablonów (na przykład pliki xml, baza danych)
- Możliwość ustawiania domyślnych wartości dla pól takich jak: temat, adresat, załączniki.
Tak bardzo mi tego brakowało, iż postanowiłem tą ideę przelać na kod.. oto wynik.
[php] Prosta obsługa stronicowania - część 1.
W artykule “[sql] Trik w MySQL” przedstawiłem sposób na obsługę stronicowania w SQL. Teraz chciałbym przedstawić pozostałe części aplikacji - czyli Model, Controller i View - które z tego korzystają. W tej części opisze sam model, w części drugiej skupie się na kontrolerze i widoku.
[zend|smarty] System szablonów kontra szablony w PHP
Ponad 2 lata temu przeczytałem wpis na blogu (niestety nie pamiętam jakiego), w którym autor przekonywał, iż systemy szablonów nie są takie dobre jak się je maluje. Wtedy mu nie wierzyłem.. ale może jednak coś w tym jest?
[zend] Rzut oka na Zend Framework
Oto moje pierwsze podejście do omówienia systemu Zend Framework z bliska - a trzeba przyznać, iż to zadanie nie należy do najłatwiejszych ;).
[zend] Poznaj Zend Framework
Już niebawem cykl artykułów poświęconych systemowi Zend Framework - prawdopodobnie najlepszemu frameworkowi w rodzinie PHP. Cykl zaczniemy od ogólnego spojrzenia na framework, po czym omówimy szczegółowo takie komponenty jak tłumaczenie adresów (routing), cache, obsługę baz danych.
Jeżeli ciekawi Cię konkretny temat napisz propozycję w komentarzu.
[php|zend] Sprytne tłumaczenie adresów url.
Przyglądając się wielojęzycznym serwisom zauważyłem, iż żaden z nich nie tłumaczy adresów url (oczywiście treść samej strony jest ładnie przetłumaczona). Innymi słowy niezależnie od wyboru języka adresy stron są takie same - na przykład dostęp do wiadomości kryje się pod adresem /messages/show/1/, a przecież mogłoby to wyglądać tak /wiadomosci/wyswietl/1/ - czyż nie bardziej czytelnie (szczególnie dla osób nie znających języka angielskiego).
Zamiast rozmyślać wziąłem się za implementacje - tak też narodziła się wtyczka do Zend Framework o nazwie Fancyurl.
[zend] Bardziej funkcjonalne autoload.
Każdy programista PHP 5 zna i lubi magiczną funkcję __autoload(). Z jej dobroci korzysta oczywiście system Zend Framework, który według mnie bardzo ciekawie rozwiązał problem ładowania plików/klas PHP. Dla niewtajemniczonych napisze tylko, iż w/w system określa ścieżkę na podstawie nazwy klasy według wzoru: klasa Zend_Db_Select jest przekształcana na ścieżkę /Zend/Db/Select.php - naszym zadaniem jest tylko ustawić odpowiednio ścieżki przeszukiwań (include_path).
Nie o tym jednak chciałem pisać. Moim celem na dzisiejszy wieczór jest przedstawienie rozszerzenia klasy Zend_Loader umożliwiającą “dorzucanie” nowych bibliotek, które nie są dostosowane do systemu Zend Framework (czyli nazwy klas nie są w odpowiednim formacie), a chciałyby skorzystać z dobroci funkcji __autoload().
