Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu zend_framework Kanał ATOM (tag: zend_framework)

Autor wpisu: Load, dodany: 29.01.2012 22:58, tagi: php, zend_framework

Wstęp

W tym wpisie dowiemy się jak dodawać i usuwać kontrolery i akcje dwoma sposobami „ręcznie” i za pomocą pliku zf.bat, zabieramy się do roboty bez zbędnego gadania.

Tworzymy aplikację testową

Dlaczego kolejną? Nie chcę by kolejne zmiany były wprowadzane na jednym projekcie spowodowało by to zamieszanie więc za każdym razem będziemy tworzyć nowy projekt najlepiej w czystym katalogu www, czyli wypadało by przenieść jego zawartość do innego miejsca tak by nie pomieszać wszystkiego i mieć do czego wrócić w razie niepewności.

Ostatni wpis nadał tak na prawdę całemu kursowi pewien schemat katalogów idę za obietnicą i będę się go trzymać!

W roli przypomnienia dodam, że mój server jest skonfigurowany w następujący sposób, katalog www/public jest głównym katalogiem servera, nowy projekt tworzę w pustym katalogu www, a katalog public jest generowany przy tworzeniu nowego projektu.

Odpalamy cmd, wchodzimy do katalogu www (chyba, że wedle mojej rady mamy plik do odpalania cmd – wtedy mamy jedną komendę z głowy), tworzymy nowy projekt używając znanej nam już komendy z małą zmianą:

zf create project . ZF#o3

Tak komenda tak jak i jej pierwowzór stworzy nam nowy projekt, a od poprzedniczki różni się tylko lokalizacją w jakim zostanie umieszczony, mianowicie nowy projekt pojawi się w katalogu aktualnie wybranym, dzięki czemu efekty stworzenia nowego projektu możemy podziwiać od razu pod adresem lokalnej maszyny w moim przypadku zf.server.

Tworzenie kontrolerów

Nasza aplikacja jak wiecie z poprzedniej części już na strat posiada dwa kontrolery:

  • index
  • error

A w niech odpowiednie akcje, teraz zajmiemy się stworzeniem nowego kontrolera tak by dołączył do tej dwójki, są na to dwa sposoby przedstawione poniżej.

zf.bat

By stworzyć nowy kontroler za pomocą pliku zf.bat musimy odpalić cmd i wejść do katalogu projektu, w tym przypadku jest to katalog www i znów przydaje się nasza magia – korzystając z pliku index.bat i stosując kropkę od razu jesteśmy w dobrym miejscu. Tak by operacje na naszym projekcie za pomocą zf.bat powiodły się plik .zfproject.xml powinien znajdować się w głównym folderze aplikacji, zawiera on informacje o projekcie i jest wymagany.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Load, dodany: 22.01.2012 22:27, tagi: php, framework, zend_framework

Wstęp

W tym wpisie chcę pokazać jak skonfigurować server www na nasze potrzeby, pokażę jakiej konfiguracji używam i będę się starał w następnych wpisach trzymać się  tej konwencji. Do tego wpisu przekonało mnie zamieszanie jakie tworzy się wśród moich wpisów związane z katalogami i konfiguracją servera – nie chcę by to była przeszkoda w zrozumieniu kursu.

Układ plików

Jako że jestem osobą, aż za bardzo poukładaną to nie mogło by być inaczej gdyby server też nie był zainstalowany dokładnie wedle moich upodobań. ;-) Na dysku B:/ zainstaluję server, a katalogiem głównym będzie dysk H:/ dlaczego tak? Pliki z katalogu głównego potrzebują częstego backup’u i są bardzo często używane więc oddzielny dysk jest moim zdaniem idealny, wiem czym są skróty, ale taki układ osobiście mi odpowiada, nic jednak nie stoi na przeszkodzie by w miejscu w którym podaje ścieżkę na dysku dodać inną do własnego katalogu.

Jakie oprogramowanie wybrać

Na rynku jest cała masa oprogramowania jakie można zastosować nie zmuszając się do instalacji wszystkich komponentów od zera, jak że mój komputer jest tylko i wyłącznie środowiskiem dla mnie i nikt inny nie ma do niego dostępu, a ja sam nie wymagam by server był wysoce konfigurowalny „z pod okienka” to wybrałem produkt Zend’a, aczkolwiek kiedyś korzystałem z wielkim zadowoleniem z webserv niestety projekt upadł, a paczki są strasznie przestarzałe. Środowisko otwarte na świat mam na pc przeznaczonym do tego celu i oparte na ręcznej instalacji – kiedyś może powiem coś na ten temat.

Inne dostępne na rynku:

Kilka mi znanych rozwiązań, różnie bywa z aktualnością powyższych, ale wybór jest dość spory i trzeba go przemyśleć, szkoda pracy do przeinstalowywania całości.

Pobieramy i instalujemy wybraną paczkę

Osobiście wybrałem Zend’a, pobrać można go tutaj, wybrałem wersję Zend Server Community Edition jako, że zapewnia podstawowe funkcje i jest darmowa, tutaj trzeba zaznaczyć, że inne paczki mogą posiadać konfigurację w opcjach i zmiana niektórych wartości ręcznie może, ale nie musi zakłócić ich działania nie mniej jednak każda powinna podać się takim zabiegom. ;-)

Wybieram paczkę z php 5.3 logujemy się lub gdy nie posiadamy konta tworzymy je, jest wymagane do pobrania plików, a administratorzy nie są ludźmi bezczelnymi i nie uświadczmy spamu z ich strony.

Instalacja samego oprogramowania jest bardzo prosta i w zasadzie polega na czekaniu i klikaniu dalej, jedyne co przyjdzie nam wybrać to wersja i ścieżka, ja z racji upodobań i podziału systemu umieszczam całość wprost na czystym dysku B:/ przeznaczonym tylko do tego celu. Po zainstalowaniu zostanie odpalona przeglądarka i krótka trzy etapowa konfiguracja, polegająca na zatwierdzeniu regulaminu i podaniu hasła do servera, trudne – nie! Od teraz posiadamy wstępnie skonfigurowany serwer.

Server jest w wersji ograniczonej każdy może wypróbować pełną wersję trzeba tylko kliknąć jeden z napisów „Wypróbuj za darmo” w panelu, dostaniemy kod ważny 30 dni – może komuś się spodoba i będzie miał za dużo $$, produkt kosztuje kilka tysięcy $, komercyjnie i osobiście zostanę na darmowym apache!

Konfiguracja

Server sam w sobie już działa i na dobrą sprawę mógł by już pozostać w tej postaci, ale by  żyło nam się lepiej wymaga kosmetycznych zmian w plikach. ;-) Zabierajmy się do roboty postaram się napisać co i poco modyfikuje.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Load, dodany: 21.01.2012 22:27, tagi: php, framework, zend_framework

Wstęp

W tym wpisie chcę pokazać jak skonfigurować server www na nasze potrzeby, pokażę jakiej konfiguracji używam i będę się starał w następnych wpisach trzymać tej konwencji. Do tego wpisu przekonało mnie zamieszanie jakie tworzy się wśród moich wpisów związane z katalogami i konfiguracją servera – nie chcę by to była przeszkoda w zrozumieniu kursu.

Układ plików

Jako że jestem osobą, aż za bardzo poukładaną to nie mogło by być inaczej gdyby server też nie był zainstalowany dokładnie wedle moich upodobań. ;-) Na dysku B:/ zainstaluję server, a katalogiem głównym będzie dysk H:/ dlaczego tak? Pliki z katalogu głównego potrzebują częstego backup’u i są bardzo często używane więc oddzielny dysk jest moim zdaniem idealny, wiem czym są skróty, ale taki układ osobiście mi odpowiada, nic jednak nie stoi na przeszkodzie by w miejscu w którym podaje ścieżkę na dysku dodać inną do własnego katalogu.

Jakie oprogramowanie wybrać

Na rynku jest cała masa oprogramowania jakie można zastosować nie zmuszając się do instalacji wszystkich komponentów od zera, jak że mój komputer jest tylko i wyłącznie środowiskiem dla mnie i nikt inny nie ma do niego dostępu, a ja sam nie wymagam by server był wysoce konfigurowalny „z pod okienka” to wybrałem produkt Zend’a, aczkolwiek kiedyś korzystałem z wielkim zadowoleniem z webserv niestety projekt upadł, a paczki są strasznie przestarzałe. Środowisko otwarte na świat mam na pc przeznaczonym do tego celu i oparte na ręcznej instalacji – kiedyś może powiem coś na ten temat.

Inne dostępne na rynku:

Kilka mi znanych rozwiązań, różnie bywa z aktualnością powyższych, ale wybór jest dość spory i trzeba go przemyśleć, szkoda pracy do przeinstalowywania całości.

Pobieramy i instalujemy wybraną paczkę

Osobiście wybrałem Zend’a, pobrać można go tutaj, wybrałem wersję Zend Server Community Edition jako, że zapewnia podstawowe funkcje i jest darmowa, tutaj trzeba zaznaczyć, że inne paczki mogą posiadać konfigurację w opcjach i zmiana niektórych wartości ręcznie może, ale nie musi zakłócić ich działania nie mniej jednak każda powinna podać się takim zabiegom. ;-)

Wybieram paczkę z php 5.3 logujemy się lub gdy nie posiadamy konta tworzymy je, jest wymagane do pobrania plików, a administratorzy nie są ludźmi bezczelnymi i nie uświadczmy spamu z ich strony.

Instalacja samego oprogramowania jest bardzo prosta i w zasadzie polega na czekaniu i klikaniu dalej, jedyne co przyjdzie nam wybrać to wersja i ścieżka, ja z racji upodobań i podziału systemu umieszczam całość wprost na czystym dysku B:/ przeznaczonym tylko do tego celu. Po zainstalowaniu zostanie odpalona przeglądarka i krótka trzy etapowa konfiguracja, polegająca na zatwierdzeniu regulaminu i podaniu hasła do servera, trudne – nie! Od teraz posiadamy wstępnie skonfigurowany serwer.

Server jest w wersji ograniczonej każdy może wypróbować pełną wersję trzeba tylko kliknąć jeden z napisów „Wypróbuj za darmo” w panelu, dostaniemy kod ważny 30 dni – może komuś się spodoba i będzie miał za dużo $$, produkt kosztuje kilka tysięcy $, komercyjnie i osobiście zostanę na darmowym apache!

Konfiguracja

Server sam w sobie już działa i na dobrą sprawę mógł by już pozostać w tej postaci, ale by  żyło nam się lepiej wymaga kosmetycznych zmian w plikach. ;-) Zabierajmy się do roboty postaram się napisać co i poco modyfikuje.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: zleek, dodany: 15.01.2012 18:51, tagi: php, zend_framework

Podczas pisania testów z wykorzystaniem PHPUnit często pojawia się zagadnienie związane z przekazywaniem zmiennych pomiędzy poszczególnymi testami. Załóżmy bowiem sytuację, gdy mamy test, w którym tworzymy sobie instancję jakiegoś obiektu i sprawdzamy działanie jednej z metod. W kolejnym teście chcemy przetestować kolejną z metod. Prześledźmy to może na przykładzie. Testowana klasa: Klasa testowa dla powyższej [...]

Autor wpisu: Load, dodany: 15.01.2012 00:31, tagi: php, zend_framework

Wstęp

Odpalimy naszą pierwszą aplikację i na jej podstawie powiem coś o strukturze katalogów, plikach i kodzie w nich zawartym – same podstawowe informacje o funkcjonowaniu Zenda. Na ich podstawie każdy powinien umieć uruchomić swoją pierwszą stronę opartą o Zend.

 Pobieramy Framweork

Pierwszą czynnością jaką musimy wykonać jest pobranie samego frameworka, możemy pobrać go tutaj, klikamy na wielki napis „Download New” i pobieramy interesującą nas paczkę, do wyboru mamy sam fw jak i z serverem lub dokumentacją. Jeśli nie chcemy żadnych dodatków klikamy na Zip lub tar.gz obok „Zend Framework 1.11.11 Minimal”, wersja oczywiście może się różnić od tej opisywanej tutaj. :-)

Co dalej?

W paczce znajdziemy kilka folderów i plików, najważniejszym jest katalog library zawiera on wszystkie biblioteki Zend’a i na dobrą sprawę wystarczył by nam do wszystkiego, ale po co utrudniać sobie życie? Wrócimy do niego w dalszej części, katalog bin zawiera plik zf.bat dzięki niemu możemy wykonywać pewne operacje na naszej aplikacji nie odpalając naszego ide. Proponuję całą zawartość katalogu bin wrzucić do C:\Windows dzięki czemu korzystając w przyszłości z niego nie będziemy zmuszeni podawać całej ścieżki do pliku a tylko nazwę pliku zf.

Server

Jak pewnie wiecie (a jeśli nie, to czas przeczytać pierwszy wpis) aplikacje php potrzebują servera, tutaj jest kilka możliwości:

  • Server w sieci
  • Server na naszym Pc
    • Gotowe rozwiązanie
    • Ręczna instalacja

Osobiście polecam w etapie produkcyjnym rozwiązanie drugie, nie jest istotne czy zainstalujecie całą paczkę ręcznie czy użyjecie jakiejś gotowej. Jeśli nie masz jeszcze servera powinieneś się w niego zaopatrzyć. W dalszym etapie będę opisywać poczynania na maszynie lokalnej – tak jest wygodniej i oszczędzamy na opóźnieniach ftp.

Gdy mamy już server

Otwieramy konsolę cmd, standardowo znajdujemy się C:\User\nazwa_użytkownika używając komendy cd .. wychodzimy katalog do góry, a wpisując ścieżkę cd C:\Users\nazwa_użytkownika\Desktop dostaniemy się na pulpit (Windows 7) dla xp będzie to inna ścieżka – krótkie przypomnienie dla osób nie korzystających na codzie z konsoli.

Teraz możemy stworzyć nasz pierwszy projekt, wydajemy polecenie zf create project nazwa_projektu, jeśli wcześniej nie wkleiłeś pliku zf.bat do katalogu C:/Windows musisz podać pełną ścieżkę do pliku zf.bat np. C:/katalog/zf create project nazwa_projektu lub wejść do niego za pomocą komendy cd. ;-)

W oknie cmd powinniśmy dostać komunikat z ścieżką do nowo stworzonego projektu w moim przypadku jest to C:\Users\nazwa_użytkownika\Desktop\nazwa_projektu. Najlepiej wykonywać te operacje od razu w katalogu www naszego servera tym samym zaoszczędzimy sobie przenoszenia plików.

Co zawiera magiczny katalog nazwa_projektu

Zawartość katalogu nazwa_projektu powinna wyglądać tak:

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: batman, dodany: 09.01.2012 08:00, tagi: zend_framework

Duże aplikacje napisane w oparciu o Zend Framework zazwyczaj zawierają duży plik konfiguracyjny, niejednokrotnie zapisany w postaci XML. Im większy plik konfiguracyjny, tym wolniej jest on tłumaczony do postaci rozumianej przez PHP. Z tego właśnie względu warto zastosować cache’owanie konfiguracji naszej aplikacji.

Wbrew pozorom nie jest to proces skomplikowany i wymaga jedynie kosmetycznych poprawek w projekcie. Wystarczy utworzyć klasę dziedziczącą po Zend_Application, a w niej przesłonić metodę odpowiedzialną za wczytanie pliku konfiguracyjnego.

class Batman_Application extends Zend_Application
{
    /**
     * @var null|Zend_Cache_Core
     */
    private $_cache = null;

    /**
     * @param Zend_Cache_Core $cache
     */
    public function setCache(Zend_Cache_Core $cache)
    {
        $this->_cache = $cache;
    }

    /**
     * @return null|Zend_Cache_Core
     */
    public function getCache()
    {
        if($this->_cache === null) {
            $this->_cache = Zend_Cache::factory(
                'File',
                'File',
                array(
                    'master_files' => array(APPLICATION_PATH . '/configs/application.ini'),
                    'automatic_serialization' => true,
                    'lifetime' => null
                ),
                array(
                    'cache_dir' => APPLICATION_PATH . '/data/cache'
                )
            );
        }
        return $this->_cache;
    }

    protected function _loadConfig($file)
    {
        $cache = $this->getCache();
        $config = $cache->load('config_cache');
        if(!$config) {
            $config = parent::_loadConfig($file);
            $cache->save($config, 'config_cache');
        }

        return $config;
    }

Powyższy przykład korzysta z cache’u File, który automatycznie się odświeża, gdy w pliku konfiguracyjnym zostaną wprowadzone zmiany. Nic nie stoi na przeszkodzie aby to zmienić na dowolny inny cache, podobnie z resztą jak backend. Jeśli mamy dostęp do Memcached lub APC, o wiele lepiej będzie tam przechowywać cache, niż w pliku.

Jedyną zmianę jaką należy wprowadzić w już istniejącym kodzie, to modyfikacja pliku index.php, w którym zmieniamy nazwę klasy Zend_Application, na klasę przez nas utworzoną.

// reszta pliku index.php

require_once 'Zend/Application.php';
require_once 'Batman/Application.php';

// Create application, bootstrap, and run
$application = new Batman_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

Zanim jednak zdecydujemy się na cache’owanie konfiguracji, lepiej upewnić się, że taka zmiana nam się opłaci. Może się bowiem tak zdarzyć, iż parsowanie pliku z konfiguracją jest szybsze niż sprawdzenie czy cache jest aktualny.

Pliki z kodem źródłowym znajdziecie na Githubie.

Autor wpisu: zleek, dodany: 07.01.2012 23:32, tagi: php, zend_framework

W jednym z poprzednich wpisów przedstawiałem instrukcję instalacji PHPUnit oraz Xdebug w naszym środowisku. Dzisiaj przedstawię sposób konfiguracji Zend Framework, aby możliwe było testowanie aplikacji. Po stworzeniu nowej aplikacji Zend Framework z wykorzystaniem Zend_Tool otrzymamy standardową strukturę poszczególnych elementów aplikacji, wśród których można między innymi znaleźć folder “tests”, który zawierał będzie elementy takie, jak na [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.