• Permalink for 'Mateusz_Kami__ski/2010/08/02/Zend_Framework_1.10.7'

    Zend Framework 1.10.7

    Dodany: sierpieñ 2, 2010, 8:42am CEST przez matipl

    Bardzo mi odpowiada to regularne i częste wydawanie kolejnych wersji Zend Frameworka.
    Dzięki temu mamy potwierdzenie, że ZF się rozwija i społeczności zależy na poprawianiu jego funkcjonalności.

    Co przynosi nam piątkowe wydanie ZF 1.10.7? Ponad 60 załatanych błędów. Ciekawsze poprawki tej wersji:

    • Zend_Db_Adapter_Pdo_Pgsql (lastInsertId)
    • Zend_Db_Table_Rowset_Abstract akceptowaÅ‚ niepoprawne indeksy
    • nieskoÅ„czona pÄ™tla w StripTags
    • PowiÄ™kszenie funkcjonalnoÅ›ci dla Google Apps -> Groups (Email Lists)
    • Metoda removePrefixPath w Zend_Loader_PluginLoader.php usuwaÅ‚a Å›cieżkÄ™ z kluczem 0
    • poprawki w Zend_Log::_constructFilterFromConfig()
    • Popsuta implementacja S3_Stream
    • problem z iconv_set_encoding() –> Zend_Service_Flickr
    • Zend_Translate – poprawienie zarzÄ…dzanie cachem

    Download: Zend Framework 1.10.7

    Zend Framework 1.11.0

    A przed nami kolejna duża wersja ZF – 1.11. Powinna ukazać siÄ™ pod koniec wrzeÅ›nia 2010. Poza poprawieniem stabilnoÅ›ci (wszelkie 1.10.X), kilka aktualizacji, normalizacjÄ™ tÅ‚umaczeÅ„ tekstów w walidatorach i kilka nowoÅ›ci.

    Lada dzień zostanie wydany 1. milestone developerski ZF 2.0. Będzie już zmigrowany na przestrzenie nazw z PHP 5.3.

  • Permalink for 'Mateusz_Kami__ski/2010/05/27/Zend_Framework_coraz_stabilniejsze___1.10.5'

    Zend Framework coraz stabilniejsze ? 1.10.5

    Dodany: maj 27, 2010, 9:52am CEST przez matipl

    W miniony weekend zakończyła się kolejna akcja The Bug Hunt Days w ramach projektu Zend Framework.

    Jest to fantastyczna, spontaniczna akcja wśród programistów PHP. Tym razem zapaleńcy zamknęli 60 błędów. Obecnie linia 1.10 wygląda bardzo stabilnie.
    Poprawiono m.in. Zend_Date::_getLocalizedToken, Zend_Paginator (problem z cachowaniem),  Zend_Filter_StripTags, Zend_Db_Table_Row_Abstract, Zend_Form_Element_Radio i wiele innych.
    Pełna lista zmian.

    Download: Zend Framework 1.10.5

  • Permalink for 'Mateusz_Kami__ski/2010/04/29/Zend_Framework_1.10.4'

    Zend Framework 1.10.4

    Dodany: kwiecieñ 29, 2010, 8:04am CEST przez matipl

    Kwiecień programiści PHP korzystający z Zend Framework będą mile wspominać.

    Na początku miesiąca przywitaliśmy wersję 1.10.3, a kończymy miesiąc z wersją 1.10.4. Najnowszą wersje, podobnie jak 1.10.2, zawdzięczamy Bug Hunt Days organizowanemu przez społeczność Zend Framework od kilku miesięcy.

    Tym razem naprawiono aż 50 błędów. Dzięki poprawkom linia 1.10 stała się bezpieczniejsza i stabilniejsza.
    Koordynator akcji Matthew Weier O’Phinney zwraca uwagÄ™ na 3, najważniejsze jego zdaniem poprawki:

    • ZF-7493 – istotna poprawa w wydajnoÅ›ci serializacji Zend_Amf (wzrost szybkoÅ›ci do 200-300% w dużych zbiorach)
    • ZF-9263 – poprawka w Zend_Loader::isReadable() (eliminacja wiÄ™kszoÅ›ci ostrzeżeÅ„ przy Å‚adowaniu strony i wtyczek pod platformami Windows)
    • ZF-9504 –  bardziej wydajne generowanie wartoÅ›ci w Zend_XmlRpc_Value

    Download: Zend Framework 1.10.4

  • Permalink for 'Mateusz_Kami__ski/2010/04/02/Zend_Framework_1.10.3'

    Zend Framework 1.10.3

    Dodany: kwiecieñ 2, 2010, 8:48pm CEST przez matipl

    Cóż za świąteczny prezent.
    1 kwietnia opublikowano kolejną wersję Zend Frameworka. Tak szybkie kolejne wydanie spowodowane było wykryciem błędu bezpieczeństwa w Dojo Toolkit.
    Z tego powodu pojawiła się wersja 1.9.8 oraz 1.10.3.

    W gałęzi 1.10 poza poprawieniem wspomnianego błędu naprawiono 80 zgłoszonych błędów. W większości są to drobne poprawki nie wpływające na funkcjonowanie całego frameworka.

    Poza tak błahymi zmianami jak dodanie opisów metod lub literówki, poprawki znalazły się w:
    Zend_Currency, Zend_Validate_CreditCard, Zend_Validate_EmailAddress, Zend_Validate_Float/Int, Zend_File_Transfer, a także usprawnienia w Zend_Validate_Sitemap_*

    Zapraszam do zapoznania się z pełną lista zmian.

    Download: Zend Framework 1.10.3

  • Permalink for 'Mateusz_Kami__ski/2010/03/10/Zend_Framework__SQLSTATE_HY000___2002__Invalid_argument'

    Zend Framework: SQLSTATE[HY000] [2002] Invalid argument

    Dodany: marzec 10, 2010, 9:25am CET przez matipl

    Tym razem krótko i banalnie, ale może komuś się przyda.
    Kilka dni temu po ręcznej instalacji PHP 5.3.2 na jednej z maszyn z Debianem i podpięciu aplikacji opartej o Zend Framework jedyne co było widać to strona błędu z wpisem w logach serwisu:

    SQLSTATE[HY000] [2002] Invalid argument

    Super, konkretny komunikat :/ A jakże, nie ma jak PHP ;) Na poczÄ…tku pomyÅ›laÅ‚em, że to może wina wersji (aktualizacja php 5.2 -> 5.3) – nie, to nie byÅ‚o to.

    RozwiÄ…zanie okazaÅ‚o siÄ™ banalne. Wspomniany błąd generuje PDO, a jest wynikiem błędnie okreÅ›lonej lokalizacji socketu MySQL przez PHP podczas kompilacji (czÄ™sto PHP uważa, że to /tmp/mysql.sock – ?).
    Wystarczy dodać w naszym php.ini informację o lokalizacji:

    ; najpierw sprawdź, gdzie jest Twój mysql.sock
    pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
    

    Może i bezpośrednio Zend Frameworka nie dotyczy, lecz PHP+PDO. Ale jeśli już da się złapać taki wyjątek, to Zend Framework powinien go zamienić na coś konkretnego.

  • Permalink for 'Mateusz_Kami__ski/2010/02/25/Zend_Framework_1.10.2'

    Zend Framework 1.10.2

    Dodany: luty 25, 2010, 9:43am CET przez matipl

    Zespół Zend Frameworka załatał kolejne 50 błędów i tym samym wydał wersję ZF 1.10.2

    Akcja została przeprowadzona w minionym tygodniu w ramach kolejnego Bug Hunt Days mająca na celu poprawę stabilności frameworka.

    Nie są to krytyczne błędy, ale niektóre bardzo uciążliwe w specyficznych sytuacjach. Poprawki, na które warto zwrócić uwagę:

    • obsÅ‚uga IDN dla .EU w Zend_Validate_Hostname
    • fetchRow() ignorowaÅ‚ limit offset
    • problem z komunikatem błędu w Zend_Validate_PostCode
    • opcja „mx” byÅ‚a ignorowana w Zend_Validate_EmailAddress
    • Zend_Validate_File_isImage obsÅ‚uguje teraz wszystkie typy obrazków
    • Zend_XmlRpc_Value_Double zaokrÄ…glaÅ‚ do 6 miejsc po przecinku

    Zapraszam do aktualizacji i zobaczenia innych poprawek w wersji 1.10.2.

    Download: Zend Framework 1.10.2 Full

  • Permalink for 'Mateusz_Kami__ski/2010/01/28/Zend_Framework_1.10.0_wydane'

    Zend Framework 1.10.0 wydane

    Dodany: styczeñ 28, 2010, 9:00am CET przez matipl

    Wczoraj odbyÅ‚a siÄ™ nie tylko premiera nowego produktu Apple (iPad), ale również Zend w koÅ„cu zamknÄ…Å‚ kolejnÄ… wersjÄ™ swojego frameworka dla PHP – ZF w wersji 1.10.0.

    ListÄ™ nowoÅ›ci opisaÅ‚em przy okazji ukazania siÄ™ wersji beta 1, dlatego nie bÄ™dÄ™ tego powtarzaÅ‚. Dodatkowo zmieniona zostaÅ‚a strona pobraÅ„ – teraz jeszcze bardziej zachÄ™ca siÄ™ nas do skorzystania z Zend Server.

    Aktualizacji nie ominęła dokumentacji projektu. Wprowadzono w końcu jasny podział na poszczególne wersje. Wprowadzono sekcję Learning Zend Framework oraz naniesiono poprawki w Reference Guide.

    Download: ZF 1.10.0

  • Permalink for 'Mateusz_Kami__ski/2010/01/26/Zend_Framework_na_hostingu_wsp%c3%b3%c5%82dzielonym'

    Zend Framework na hostingu współdzielonym

    Dodany: styczeñ 26, 2010, 1:04pm CET przez matipl

    Większość ofert hostingowych w Polsce od zawsze udostępnia nam jeden katalog, ew. możliwość wskazania dla danej domeny katalogu gdzie przechowujemy nasz projekt.
    Dzięki temu wystarczy do niego wgrać aplikację i wszystko działa.
    Kiedyś nie stanowiło to problemu, gdy cała aplikacja była w jednym worku, a za pomocą odpowiednich sztuczek nie pozwalało się na bezpośredni dostęp do plików źródłowych PHP lub konfiguracyjnych.

    Obecnie, np. z punktu widzenia osoby tworzącej z wykorzystaniem Zend Framework stanowi to problem, ponieważ domyślny układ projektu wygląda tak:

       application/
          controllers/
          views/
             scripts/
       library/
       public/
       tests/
    

    Ze wzglÄ™dów m.in. bezpieczeÅ„stwa w ZF jest wydzielony jeden katalog publiczny (public), który jest domyÅ›lnym katalogiem dostÄ™pnym z Sieci. Gdy takÄ… aplikacjÄ™ umieÅ›cimy np. na hostingu w home.pl aplikacja nam siÄ™ nie uruchomi, a każda osoba z Internetu bÄ™dzie miaÅ‚a dostÄ™p do wszystkich plików (pliki PHP nie stanowiÄ… problemu, ale już pliki INI, SQL tak). Wiele osób przegrywa plik index.php do katalogu nadrzÄ™dnego odpowiednio go modyfikujÄ…c – to błąd. Owszem, aplikacja zadziaÅ‚a, ale nie poprawi to wzglÄ™dów bezpieczeÅ„stwa.

    Problem można bardzo łatwo rozwiązać jeśli nasz usługodawca daje możliwość umieszczania plików .htaccess:

    RewriteEngine On
    
    RewriteRule ^\.htaccess$ - [F]
    
    RewriteCond %{REQUEST_URI} =""
    RewriteRule ^.*$ /public/index.php [NC,L]
    
    RewriteCond %{REQUEST_URI} !^/public/.*$
    RewriteRule ^(.*)$ /public/$1
    
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^.*$ - [NC,L]
    
    RewriteRule ^public/.*$ /public/index.php [NC,L]
    

    Wystarczy go umieścić w katalogu głównym, a on załatwi już odpowiednie przekierowania poszczególnych wywołań.
    Oczywiście jeśli mamy możliwość konfiguracji vhost-ów lub ustawienia katalogu aplikacji w inny sposób powinniśmy z niego skorzystać, zamiast cudować z htaccess.

  • Permalink for 'Mateusz_Kami__ski/2010/01/22/PHP_APC___czy_warto_korzysta%c4%87_z_opcode_caching_'

    PHP APC ? czy warto korzystać z opcode caching?

    Dodany: styczeñ 22, 2010, 8:49am CET przez matipl

    Dawno na blogu nie pisaÅ‚em nic o optymalizacji – postanowiÅ‚em odÅ›wieżyć temat.
    Obecnie bardzo wiele osób korzystających z PHP używa do tego standardowego zestawu LAMP (Linux + Apache + MySQL + PHP) i dla nich będzie ten wpis.

    W używaniu LAMP nie ma w tym nic złego. I nie zamierzam nikomu kazać zmieniać przyzwyczajeń lub uczyć się nowego oprogramowania. Za to pokażę jak łatwo można zmniejszyć zużycie zasobów naszej maszyny (szczególnie pamięci RAM) korzystając z opcode caching, czyli tzw. akceleratorów do PHP.

    Jednym z rodziny opcode caching jest APC, gdzie o sposobie jego używania już Wam pisałem. Dzisiaj chciałbym pokazać Wam, że w wypadku gdy korzystamy z frameworka powinniśmy zawsze korzystać z APC. W moim przykładzie oprę się o wyniki dla Zend Frameworka.

    Postawiłem LAMP w oparciu o aktualną wersję Debiana. Stworzyłem za pomocą Zend_Tool pustą aplikację w oparciu o ZF.
    W bazie stworzyłem jedną pustą tabelę user z polem id i name. W IndexController::indexAction w prosty sposób z niej skorzystałem i dodałem prostą metodę zliczającą zajętość pamięci w taki oto sposób:

    public function indexAction() {
        $start = $this->_memoryUsage();
        $userModel = new Model_User(); //klasa dziedziczÄ…ca po Zend_Db_Table
    
        $this->view->start = $start;
        $this->view->users = $userModel->fetchAll();
        $this->view->end   = $this->_memoryUsage();
    }
    
    protected function _memoryUsage() {
        $mem_usage = memory_get_usage(true);
        $usage = '';
    
        if ($mem_usage < 1024)
            $usage = $mem_usage . ' bytes';
        elseif ($mem_usage < 1048576)
            $usage = round($mem_usage/1024,2) . ' kilobytes';
        else
            $usage = round($mem_usage/1048576,2) . ' megabytes';
    
        return $usage;
    }
    

    Przy braku korzystania z APC na mojej maszynie developerskiej uzyskałem wynik:

    MEM start: 5.5 megabytes
    MEM end: 6 megabytes
    

    Wynika z tego, że skorzystanie z ZF wymaga 5.5 MB, i użycie dodatku w postaci  Zend_DB zjada dodatkowo 0.5 MB RAM. Czy to dużo?
    Aplikacja, która korzysta ze średniej ilości dodatków ZF w postaci helperów, bazy, formularzy, validatorów zużywa już około 30 MB pamięci

    Po tym gdy aktywowałem APC, w taki sposób jak opisywałem we wcześniejszych postach zużycie dla całej naszej aplikacji spada 3-krotnie:

    MEM start: 1.75 megabytes
    MEM end: 2 megabytes
    

    Dla wspomnianej Å›redniej aplikacji ZF owe zużycie również spada trzykrotnie do okoÅ‚o 10 MB. Jest to bardzo duży zysk. W naszym przypadku zauważcie, że posÅ‚ugujemy siÄ™ „jednÄ… instancjÄ… aplikacji”.

    PodsumowujÄ…c – warto – oszczÄ™dzamy pamięć, jak również mamy zysk na czasie wykonywania siÄ™ aplikacji.
    Każdy framework ma to do siebie, że jest zbudowany z wielu klocków (duża zaleta), ale wiąże się to również z dużą ilością plików do przeczytania i wykonania (w przypadku PHP) co opcode caching jest w stanie bardzo przyspieszyć.

  • Permalink for 'Mateusz_Kami__ski/2010/01/15/Zend_Framework_1.10.0beta1'

    Zend Framework 1.10.0beta1

    Dodany: styczeñ 15, 2010, 4:49pm CET przez matipl

    Koniec piątku przywitał nas pojawieniem się wersji beta frameworka PHP.
    Niecały miesiąc po ukazaniu się wersji alpha możemy w pełni przetestować możliwości, które przyniesienie wersja Zend Frameworka 1.10, dlaczego? Ponieważ wydanie wersji beta oznacza, że w API frameworka nie dojdzie już do żadnych zmian i lista nowości jest już zamknięta. O nowościach już pisałem, ale powtórzmy dla potomnych co pojawi się w wersji 1.10.0:

    • Zend_Barcode
    • cache: Zend_Cache_Backend_Static, Zend_Cache_Manager
    • feed: Zend_Feed_Pubsubhubbub, Zend_Feed_Writer
    • filtry: Zend_Filter_Boolean, Zend_Filter_Compress/Decompress, Zend_Filter_Null
    • logi: Zend_Log::factory(), Zend_Log_Writer_ZendMonitor
    • Zend_Markup
    • Zend_Oauth
    • Zend_Serializer
    • usÅ‚ugi: Zend_Service_DeveloperGarden, Zend_Service_LiveDocx, Zend_Service_WindowsAzure
    • walidatory: Zend_Validate_Barcode, Zend_Validate_Callback, Zend_Validate_CreditCard, Zend_Validate_PostCode
    • dodatkowe zasoby w Zend_Application zawierajÄ…ce m.in. Cachemanager, Dojo, Jquery, Layout, Log, Mail, and Multidb
    • dokonano refactoringu Zend_Loader::loadClass() (m.in. obsÅ‚uga namespaców przy autoloadingu)

    Nie będę tłumaczył co dane klasy robią, ponieważ są bardzo logicznie nazwane (no z jednym wyjątkiem, o którym pisałem). Dodatkowo przepisano Zend_Tool rozszerzając o nowe funkcje tj.

    • nowy CLI runner z obsÅ‚ugÄ… katalogu domowego i konfiguracji
    • nowi dostawcy: generowanie modeli(!), ustawienia dla DbAdapter, generator layoutów i formularzy(!)
    • domyÅ›lny projekt bÄ™dzie posiadaÅ‚ wsparcie dla logowania błędów z poziomu ErrorController

    20 stycznia ukaże się wersja RC1, a 26 stycznia ujrzymy pełną wersją 1.10.0!

    Download: Zend Framework 1.10.0 Beta 1 Full