Artykuły w archiwum

Razem artykułów: 34

Sunday
7
November
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Kwota słownie - Zend_View_Helper

Znalezione gdzieś w Internecie, dostosowane do współpracy z Zendem.

czytaj dalej »

Tagi: zend_view, kwota słownie
Wednesday
7
April
autor:
Mateusz Tymek
kategorie:

Wydajność Zend Framework - cz. 1

Wiele osób sądzi że Zend Framework jest jednym z najmniej wydajnych rozwiązań tego typu.Tworząc aplikację bazującą na frameworku szybko zauważymy, że działa ona dużo wolniej niż odpowiednik napisany w czystym PHP. Czy powinniśmy się tym przejmować?
Im bardziej rozbudowany projekt, tym proporcjonalnie mniejszy narzut wynikający z zastosowania biblioteki. W większych aplikacjach problemem nie jest framework, lecz (najczęściej) baza danych.

Mimo tego, warto wiedzieć co ma wpływ na tak niską wydajność. A także to, że niewielkim kosztem można ją poprawić.
Dzisiejszy wpis to pierwsza część krótkiej serii artykułów o wydajności frameworku. Zaczniemy od podstaw - pokażę kilka sposobów na pomiar prędkości.

czytaj dalej »

Tagi: apache benchmark, wydajność
Saturday
26
June
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

"Resetujący" CSS i Firebug

Firebug

Używanie "resetującego" arkusza CSS jest dosyć dobrą metodą na uzyskanie identycznego wyglądu we wszystkich przeglądarkach. Niestety, znacznie utrudnia badanie styli przy pomocy Firebuga - w widoku CSS resetujące reguły powtarzają się kilkakrotnie, skutecznie zaciemniając obraz całości.

Spróbuj "zbadać" któryś z odnośników w tym blogu - w zakładce CSS zobaczysz coś takiego:

Usunięcie reguł z pliku reset.css jest proste, jednak wymaga grzebania w kodzie Firebuga - nie da się tego wyklikać.

czytaj dalej »

Tagi: firebug
Sunday
13
June
autor:
Mateusz Tymek
kategoria:

Migracja z Apache do Nginx

Serwer na którym postawiony jest ten blog to "słaby" dedyk z oferty OVH, z zainstalowanym Debianem. Aktualnie obsługuje kilkanaście stron z dość małym natężeniem ruchu (głównie proste, statyczne wizytówki). Całość śmiga na serwerze Apache i mod_php. Ostatnio, spodziewając się zwiększonego ruchu na jednej z tych stron, postanowiłem zwiększyć wydajność poprzez instalację serwera WWW Nginx.

czytaj dalej »

Tagi: fastcgi, nginx, php, apache, dedyk
Wednesday
19
May
autor:
Mateusz Tymek
kategorie:

Przykład zastosowania Zend_Auth i Zend_Acl - cz. 2

W poprzednim wpisie pokazałem jak można zastosować Zend_Auth do obsługi uwierzytelniania. Dzisiaj przykładowa aplikacja zostanie wzbogacona o kontrolę dostępu użytkowników, zrealizowaną z wykorzystaniem Zend_Acl.

czytaj dalej »

Tagi: zend_acl, autoryzacja, zend_tool
Monday
17
May
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Kopiowanie plików z serwera na serwer

Ze zdalnego serwera do bieżącego katalogu, poprzez SSH

rsync -av -e 'ssh -p PORT' uzytkownik@host1:/stara/sciezka/ ./

Tyle w skrócie. Więcej informacji można znaleźć tutaj:

http://www.cyberciti.biz/tips/linux-use-rsync-transfer-mirror-files-directories.html

http://serverfault.com/questions/41317/gzip-piped-to-rsync

Tagi: rsync, bash
Sunday
16
May
autor:
Mateusz Tymek
kategorie:

Przykład zastosowania Zend_Auth i Zend_Acl - cz. 1

Uwierzytelnianie i autoryzacja w Zend Framework: Zend_Auth i Zend_AclW artykule przedstawię "przepis" na zbudowanie prostej aplikacji wykorzystującej Zend_Auth do logowania, oraz - w drugiej części - Zend_Acl do kontroli dostępu użytkowników.

czytaj dalej »

Tagi: zend_form, zend_tool, zend_acl, uwierzytelnianie, zend_auth
Wednesday
17
February
autor:
Mateusz Tymek
kategorie:

Zend_Mail: wysyłanie poczty w Zend Framework

Zend_Mail: wysyłanie poczty z załącznikami w Zend Framework

Wysyłanie poczty w czystym PHP nigdy nie należało do przyjemności. Funkcja mail() może i sprawdza się gdy chcemy wysłać krótką wiadomość tekstową do jednego odbiorcy, jednak zawodzi w bardziej skomplikowanych zastosowaniach. Wyobraźmy sobie wysyłanie listu z dołączonym plikiem PDF i kilkoma obrazkami wplecionymi w treść. Bez jakiejś dodatkowej biblioteki musielibyśmy utworzyć całą wiadomość ręcznie (przykład). Na szczęście programiści Zenda przygotowali dosyć dobrą klasę którą możemy łatwo wykorzystać w naszej aplikacji: Zend_Mail. W tym tekście pokażę przykłady zastosowania tej klasy. Oprócz tego, zaprezentuję prosty sposób na testowanie wysyłania wiadomości przy pomocy własnego transportu.

czytaj dalej »

Tagi: poczta elektoniczna, zend_mail
Sunday
31
January
autor:
Mateusz Tymek
kategorie:

Zend_Form: walidacja rozbudowanych formularzy

Walidacja rozbudowanych formularzy

Tworząc formularze przy użyciu Zend_From możemy szybko dojść do sytuacji gdzie  standardowy zestaw walidatorów nie spełni naszych potrzeb. Najlepszy przykład to formularz rejestracji i sprawdzanie czy pola "hasło" oraz "powtórz hasło" zawierają identyczne wartości. Albo formularz w którym opisujemy jakieś wydarzenie i wprowadzamy dwie daty: rozpoczęcia i zakończenia. Jak sprawdzić czy pierwsza z dat poprzedza drugą? W takich sytuacjach najczęściej spotykaną sugestią jest "napisz własny walidator". Otóż wbrew pozorom takie rozwiązanie jest skomplikowane i niezbyt przejrzyste. Wynika to z założenia że walidator ma sprawdzać poprawność tylko jednego pola. "Zgodność haseł" czy "poprawna kolejność dat" nie są cechami jednego pola, a raczej całego formularza. Zatem bardziej logiczne wydaje się być rozwiązanie w którym to sam formularz (a nie poszczególne elementy) zajmie się walidacją.

czytaj dalej »

Tagi: zend_framework, zend_form
Saturday
23
January
autor:
Mateusz Tymek
kategorie:

Zend Framework i Doctrine - łatwa integracja

Walidacja rozbudowanych formularzy

Ostatnio zainteresowałem się możliwością zastosowania Doctrine'a w jednym z moich projektów. Znalazłem wiele informacji na ten temat w internecie, niestety w większości zdezaktualizowanych. Okazało się że z wersji na wersję twórcy Doctrine coraz bardziej ułatwiają życie koderom piszącym w ZF. Aktualny przepis znalazłem na stronie ZendCasts. Podczas prób okazało się, że można to wszystko zrobić jeszcze prościej niż proponuje autor, zatem w tym wpisie podam własny przepis, przetestowany z Doctrine 1.2.1 i Zend-em 1.10 beta (1.9 też powinien działać).

czytaj dalej »

Tagi: doctrine, modelowanie
Saturday
28
November
autor:
Mateusz Tymek
kategorie:

Usuwanie niepotrzebnych znaków z kodu HTML

Prostym sposobem na ograniczenie transferu jest usunięcie niepotrzebnych białych znaków i komentarzy z kodu HTML. W dokumentacji funkcji ob_start znajduje się bardzo ładny przykład, który możemy przystosować do współpracy z naszą aplikacją.

Dla aplikacji opartej o Zend Framework najlepiej będzie umieścić ten kod w pluginie kontrolera, w metodzie dispatchLoopShutdown().

czytaj dalej »

Tagi: tidy, zend_controller_plugin, html
Tuesday
17
November
autor:
Mateusz Tymek
kategorie:
brak komentarzy skomentuj

Drzewko katalogów oparte na jsTree i SPL

Czasem aplikacja wymaga aby zaprezentować użytkownikowi drzewko  odzwierciedlające strukturę katalogów na serwerze. Zaprezentuję więc przykładowe rozwiązanie, oparte na jsTree (wyświetli drzewko po stronie klienta) oraz klasie DirectoryIterator z biblioteki SPL (wygeneruje drzewko po stronie serwera).

czytaj dalej »

Tagi: spl, jquery, jstree
Friday
13
November
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Aktualizacja openSUSE 11.1 do 11.2

W dniu wczorajszym wydano nową wersję Susełka. Jako zadowolony użytkownik tego systemu postanowiłem niezwłocznie dokonać aktualizacji. Myślę, że nie ma sensu po raz kolejny opisywać nowych funkcji czy ulepszeń - te informacje są już dostępne w wielu serwisach. Jednak to wydanie przynosi coś bardzo ciekawego: umożliwia łatwą migrację z edycji 11.1 do 11.2, bez potrzeby dokonywania reinstalacji. Ze względu na moją niecierpliwość połączoną z ciekawością postanowiłem wykorzystać właśnie tę opcję.

czytaj dalej »

Tagi: linux, wydania, opensuse
Wednesday
11
November
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Wysyłanie plików na serwer - rsync

RSYNC musi być zainstalowany po stronie klienta i na serwerze.

strona/scripts/upload.sh

	#!/bin/sh

SRC='/home/mateusz/projekty/strona/'

rsync -ave 'ssh' \
        --filter='merge .rsync-filter' \
        $SRC \
        USER@DOMAIN:DIRECTORY

strona/scripts/.rsync-filter

	- /scripts
- /tests
- /nbproject
- /.hg
- /.hgignore
- /.zfproject.xml
- /application/configs/site.xml
- /application/configs/application.ini
- /public/media
- /public/images/captcha
- /public/index.php
- /data/cache
- /library/Zend
- /library/ZendX

użycie:

	cd /home/mateusz/projekty/strona/
./upload.sh
Tagi: bash, wysyłanie plików, rsync
Wednesday
11
November
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

.htaccess dla aplikacji ZF

Co ma robić?

  • ustawiać zmienną określającą środowisko pracy (produkcyjne, testowe, deweloperskie)
  • przekierowywać ze strony z "www" w adresie na adres bez "www"
  • kierować wszystkie żądania do pliku index.php...
  • ... chyba że żądany plik istnieje

 

	SetEnv APPLICATION_ENV development

RewriteCond %{HTTP_HOST} ^www.mateusztymek.pl [NC]
RewriteRule ^(.*)$ http://mateusztymek.pl/$1 [R=301,L]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Tagi: apache
Wednesday
11
November
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Co to jest Paste Bin?

Paste Bin to nowa kategoria. Będą tutaj wrzucane fragmenty kodów, bez specjalnego rozpisywania się. Po co robić coś takiego? Głównie na moje potrzeby, tak żebym miał te kody łatwo dostępne w jednym miejscu. A być może przydadzą się komuś jeszcze.

 

Treści z tej kategorii nie pojawią się na stronie głównej ani w RSS.

Tagi: paste bin, blog
Wednesday
11
November
autor:
Mateusz Tymek
kategoria:

jQuery Tools

Chciałbym gorąco polecić pewną stronę na którą ostatnio się natknąłem: jQuery Tools. Serwis (jak wskazuje jego nazwa) prezentuje kilka rozszerzeń biblioteki jQuery. I to nie byle jakich!

Przykładowe komponenty to tooltip (wyświetla okienko informacyjne np w formularzach), overlay (wyskakujące okienka) czy scrollable (można nim opakować wszelkiego rodzaju przesuwane treści). Co wyróżnia jQuery Tools na tle innych, podobnych rozwiązań? Przede wszystkim jakość wykonania - efekty są ładne, działają poprawnie we wszystkich przeglądarkach i łatwo je wdrożyć. Dodatkowo serwis wypełniony jest przykładami dzięki którym szybko i bezboleśnie postawimy pierwsze kroki.

Praktycznie od ręki udało mi się dodać kilka efektów do bloga: tooltipy przy formularzach i wyszukiwarce, oraz wyskakujące okienko z formularzem kontaktowym.

Tagi: efekty, jquery
Sunday
11
October
autor:
Mateusz Tymek
kategoria:
brak komentarzy skomentuj

Typografia stosowana: wygładzanie czcionek

Lorem ipsum dolor...Dobry projektant zwraca uwagę aby jego strona wyglądała podobnie (a najlepiej tak samo) w każdej przeglądarce. Jest jednak pewien aspekt na który nie można mieć wpływu: wygładzanie czcionek. Twórcy przeglądarek podchodzą do tego tematu na różne sposoby. Najczęściej przeglądarka dopasowuje się do ustawień systemu, ale czasem autorzy danego programu implementują własne metody wygładzania.

Aby mieć jakieś porównanie pobrałem szablon ze strony freecsstemplates.org, poddałem go niewielkiej edycji, uruchomiłem kilka przeglądarek i wykonałem zrzuty ekranu.

czytaj dalej »

Tagi: zgodność, przeglądarki, typografia
Friday
11
September
autor:
Mateusz Tymek
kategorie:
brak komentarzy skomentuj

Zend_Form i wysyłanie plików - cz. 3

Oto trzeci artykuł dotyczący wysłania plików na serwer przy użyciu komponentu Zend_Form. Tym razem pokażę jak wyświetlić użytkownikowi pasek postępu.

Pasek nie zadziała przy standardowej konfiguracji PHP. Wymagane jest jedno z dwóch rozszerzeń: APC lub uploadprogress. Zend Framework automatycznie wykryje które z nich jest dostępne i użyje go.

Założenia

Chcemy uzyskać prosty pasek pokazujący postęp wysyłania pliku w tle. Niech strona w określonym odstępie czasu (np 1/10 sekundy) wysyła zapytania do serwera, który zwróci żądaną informację.

Podobnie jak w poprzednim artykule przedstawione rozwiązanie musi być elastyczne - niech zadziała także gdy serwer nie obsługuje paska postępu lub gdy użytkownik wyłączy obsługę Java Script.

Podstawą będzie aplikacja napisana w poprzednim artykule.

czytaj dalej »

Tagi: pasek postępu, apc, jquery, wysyłanie plików, zend_form
Wednesday
11
February
autor:
Mateusz Tymek
kategorie:

Przyśpieszyć Zend_Captcha_Image

Ogromną wadą komponentu Zend_Captcha_Image jest jego niska wydajność. Główną przyczyną jest użycie biblioteki GD i czystego PHP do utworzenia i zdeformowania obrazka. Jak obejść ten problem?

Interesującym rozwiązaniem będzie zastosowanie ImageMagick. Rozszerzenie to dostarcza zestaw klas manipulujących obrazkami, a bogaty zestaw funkcji pozwoli na uzyskanie efektu podobnego do Zend_Captcha_Image. Ta ostatnia klasa zostanie wykorzystana jako baza, co bardzo ułatwi proces kodowania.

czytaj dalej »

Tagi: imagick, zend_captcha, zend_form
Idź do strony: 1 2