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.
[ant|eclipse] Kopiowanie plików na konta FTP.
Tworząc serwis najczęściej pracujemy na lokalnym serwerze www/mysql - dzięki czemu dużo szybciej możemy zobaczyć rezultat naszej pracy (w 99% przypadków wystarczy odświeżyć stronę ;)). Wcześniej, czy później jednak musimy wrzucić wynik naszej ciężkej pracy na serwer FTP (np klienta) - jeżeli to jest po raz pierwszy to nie ma większego problemu - uruchamiamy klienta FTP i kopiujemy pliki. Problem jednak zaczyna się, gdy musimy wdrażać kolejne poprawki. Jak sobie z tym poradzić?
[php|zend] Biblioteka obsługi plików CSV.
Już ładne kilkanaście miesięcy temu pracowałem nad projektem, w którym ważną częścią był import plików CSV (zapis z plików Excel). Przyznaje się bez bicia, iż wówczas zrobiłem to dość “nieładnie” - pomieszałem logikę importu z samym parsowaniem pliku i walidacją. Postanowiłem, więc że napiszę taki parser jeszcze raz - tym razem wg zasad naszego rzemiosła (standardowo bazuję na języku PHP i systemie Zend Framework).
[eclipse|php] Tworzenie szablonów.
Zapewne nikt nie lubi robić nudnych, często powtarzających się czynności. Do nich niewątpliwie można zaliczyć (i to niezależnie od wykorzystywanego frameworka i języka) tworzenie klas odpowiedzialnych za konkretną rzecz (np klasy modeli, widoku, itp).
Całe szczęście Eclipse (a dokładniej PDT 1.0.3) dostarcza nam mechanizmu szablonów (ang. Templates), które umożliwiają stworzenie szkieletu danej klasy w kilka kliknięć.
[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.
Przeglądarki różnych wersji na jednym komputerze.
Jak powszechnie wiadomo web developer jest nijako zmuszony testować swoje dzieła pod różnymi przeglądarkami - standardem są oczywiście testy pod Internet Explorer 6 i 7 (a niebawem zapewne dojdzie do tej listy numerek “osiem”) oraz FireFox - zarówno dla wersji 2.x jak i 3.x (obie wersje różnią się znacznie, w szczególności w implementacji silnika JavaScript). Jak sobie z tym poradzić mając do dyspozycji tylko jeden komputer?
Postulat odnośnie pojęcia “informatyk”.
Witam po dłużej przerwie - na rozgrzewkę zaproponuje Wam artykuł z kategorii “przemyślenia”, oto on:
Chciałbym zaproponować wniesienie postulatu o upowszechnienie bardziej stosownych pojęć określających pracę związaną z komputerami - czyli postuluje o zastąpienie słowa “informatyk” kilkoma innymi, które bardziej określałyby, czym dana osoba się zajmuje.
[firebug] Ciekawy plugin dla programistów AJAX - FirePHP.
Szybka notka o bardzo ciekawej wtyczce, na którą natknąłem się jakiś czas temu, ale dopiero najnowsza wersja jest naprawdę godna uwagi. Mowa tutaj o wtyczce FirePHP, która umożliwia wyświetlanie informacji w konsoli Firebug przesyłanych z poziomu serwera (czyli z poziomu PHP).
[IT] Motto pracodawców?
Zapewne większość z Was słyszała stwierdzenie ?Każdego programistę można zastąpić skończoną liczbą studentów? - bywa, że jest ono powiedziane żartobliwie, ale niestety tylko czasami jest się z czego śmiać. Zapraszam do krótkiej analizy.
[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.
[sql] Budowa forum - dodatek.
Mała uwaga do idei budowy forum, która została przedstawiona w artykule “Budowa forum“. Chcąc wyświetlić wszystkie komentarze (drzewko) dla danego komentarza (w naszym przypadku dla #1) nie wystarczy posortować wyników po path - możemy wtedy otrzymać listę w złej kolejności, na przykład dla danych:
| id | parent_id | title | …. | path |
| 1 | 0 | Wątek główny | …. | |
| 2 | 1 | Wiadomość pierwsza | …. | 0001| |
| 3 | 2 | Wiadomość pod pierwszą | …. | 0001|0002| |
| 4 | 1 | Wiadomość druga | …. | 0001| |
Sortowanie tylko po path spowoduje, iż pozycja #4 znajdzie się pod #3, a powinna się znaleźć pod #2. Aby tego uniknąć wystarczy posortować według (CONST_SLC to maksymalna liczba cyfr):
-
CONCAT(path, LPAD(id, CONST_SLC, "0"), "|") ASC
Dzięki temu uzyskujemy w łatwy sposób kolejność pozycji jak w drzewku - bez konieczności generowania rekurencyjnego.