Přeskočit na hlavní obsah

Příspěvky

Nevytvářejte společného předka pro Zend_Controller_Action používejte Zend_Controller_Plugin

Je žádoucí mít jednu implementaci opakující se funkcionality na jednom místě a tu reusovat. Narazil jsem však při vytváření společného předka pro Zend_Controller_Action na jeden problém. Když vytvořím předka pro své controllery, pak nelze použít Zend_Tool pro generování akcí. Nastavení prostředí V projektu mám tuto hiearchii: |--library |--MyLibrary |--Controller |--Action |--Action.php Výše uvedenou knihovnu mám pak zaregistrovanou v Bootstrap.php souboru, potažmo namespace, aby ji Zend_Autoloader našel. Kod.1 public function _initLibraryNamespace(){ $loader = Zend_Loader_Autoloader::getInstance(); $loader->registerNamespace('MyLibrary_'); } Nyní vytvořím pomocí Zend_Tool controller v defaultním modulu. Na problém se však narazil i u controlleru, který byl v modulu. zf create controller Item 1 Nyní změním předka na svou implementaci controlleru. Kod.2 /** * @author...

Zend framework - jak vytvořit modul

Úvod V příspěvku se zmíním o způsobu, jak vytvořit modul v Zend Frameworku. Dále si povíme o jeho registraci v projektu a namapování zdrojů, které bude daný modul používat. Architektura projektu Jak vytvořit modul Namapování adresářové struktury modulu Shrnutí Závěr Případné problémy Zdroje Jednu poznámku hned na začátku, seznam proměnných, které budu používat v textu: %APACHE_HOME% - adresář, v kterém máte nainstalován httpd server %APP_HOME% znamená %APACHE_HOME%/htdocs/zendapp/application , jedná se o lokaci aplikace, na které budu vysvětlovat tento návod Architektura projektu Adresářová struktura ZF projektu hraje klíčovou roli. Základní stavební jednotkou projektu je modul . Základní struktura aplikace, kterou získáváte stažením Zend Frameworku je považována za defaultní modul. Nicméně při implementaci větších projektů se setkáte s tím, že projekt je potřeba rozdělit na několik logických celků (administrace, blog, fotogalerie atd.). ZF nabízí architektům mod...

Zend_Tool - Cannot redeclare class Zend_Loader

V mém případě, když jsem zadal následující příkaz: zf create module admin V konsoli se objevila následujicí hláška Cannot redeclare class Zend_Loader in path/to/library/Zend/Loader on line 31 Řešení je jednochuché - Nakopírujte soubory zf.bat a zf.php z adresáře %ZEND_FRAMEWORK_DIR%/bin do adresáře %PHP_HOME% . V případě, že chcete vědět více – mkrněte na oficiální dokumentaci Zend_Tool .

PHP a Zend Framework autoloading

Úvod V příspěvku se zmíním o způsobu a správě „importů“ (tzv. autoloading) php souborů v samotném PHP a poté se dozvíme, jak autoloading php souborů řeší Zend Framework. Autoloading v PHP Správa importů v PHP Jak "importovat" v PHP soubory Jak funguje mechanismus importů v PHP Autoloading v Zend Framework Autoloading v PHP Základem při psaní aplikací v PHP je nutné si uvědomit, jak funguje tzv. autoloading php souborů. V PHP neexistují importy jako je známe např. z Java. Když například potřebujete konstruhovat třídu jejíž definice je v jiném souboru – je nutné si tento soubor za pomocí konstrukce require nebo require_once ( include , include_once ) “naimportovat“ do svého souboru (předpokladem, je že soubory jsou umístěné na include_path ). Dalším řešením je překrýt funkci autoload . Správa importů v PHP Správa “importů” souborů v php mi přijde neštastná. Jedná se do jisté míry o problém, alespoň pro mne – jsem vývojářem v Java , kde tento mechanismus je zajišt...

How to override (hack) location directories eg. Model in Zend Framework projects

Content At beginning Use Case Standart directory layout Specific directory layout Solvetion Summary At beginning This approach is bad but it is trivial and works. First I thought about a way how to inject/override by my implementation but if I stood before "I need only change location where objects will be generated..." Use Case For example - your project's 'models' directory has different structure and you must remove each generated model's php file to your specific directory. Standart directory layout If you use command "zf create model ItemModel" . ItemModel file will be generated by default in directory 'models' . ----models |--DbTable |--ItemModel.php Specific directory layout We want to generate model class in subdirectory 'Domain' . That's all. ----models |--DbTable |--Domain |--ItemModel.php Solvetion We must find directory '%ZF_HOME%\library\Zend\Tool\Project\Context\Zf\' . T...

Letmý pohled na php frameworky Zend, CakePHP a Prado

Tento článek vyšel původně na blogu derhaa.com, který jsem však zrušil. Abstrakt Tento článek je předvojem seriálu o Zend Framework (u) – dále je tu velmi stručný rozbor,  jak sem nahlédl pod pokličku dalších dvou frameworků –  CakePHP (CP) a Prado (PD).  Mimochodem se zde stručně dozvíme jak frameworky pracují a soupis funkčností, kterými se od sebe odlišují. Cílem článku je povrchně seznámit čtenáře se třemi PHP frameworky, které se staly předmětem mého zájmu – v čem napsat středně veliký projekt.   Idea Když jsem přemýšlel v čem napíšu svůj první větší počin, tj. aplikace typu HRMS , jehož dalším cílem bude nad shromážděnými daty provádět specifické analýzy/statistiky související se sportovní tématikou. Předpokládal jsem, že to nebude malý projekt, který lze napsat na koleni, ale budu potřebovat sofistikovanější nástroje pro práci s databází ( ORM ),  propracovanější návrh doménového modelu , následné rozdělení aplikace na logické celky – vrstvy ...

jQuery není špatná knihovna

Na internetu v různých diskuzích neustále čtu, jak je jQuery knihovna špatná. Její rozšiřitelnost a vývoj jde špatným směrem. Pluginy jsou kus zpackaného balastu a vůbec podpora pro rozšíření je špatně implementováno. Mnoho diskuzí však je stále na jedno "brdo" a končí argumenty - "pluginy psané nad jQuery jsou špatné EQUALS jQuery je špatná ... ". Z těchto diskuzí mi však vyplývá jediné, že filozofie, z které jQuery vzešla je tak triviální, že je opomíjena. Je to již nějaký ten pátek, co jsem v javascriptu napsal nějaký ten řádek, přesto nedám na jQuery dopustit. Podstata jQuery je v tom, že práce s ní je velmi jednoduchá a základním stavebním kamenem je práce s...

XAMPP - problémy s Apache (ServerRoot must be a valid directory, make_sock: could not bind to address)

O instalaci a příspěvek  o spuštění Apache  a MySQL serveru jsem již psal na svém blogu. Při nedávné instalaci, kterou jsem pojal jako kata cvičení, abych nevyšel z formy jsem narazil na problémy, které jsem již řešil a považuji je, za standard a mnohým ušetří to "pátrání". Výčet nemusí být konečný (pakliže se budu dopouštět takových chyb) : ServerRoot must be a valid directory Hlášení - httpd.exe: Syntax error on line xx /path/to/your/apache/conf : ServerRoot must be a valid directory ( %XAMPP_HOME%/apache/logs/error.log ) Popis - máte nekonzistentí namapování adresářové struktury pro server Apache. Ověřte si, co je zapsáno v direktivě ServerRoot v konfiguračním souboru ( %XAMPP_HOME%/apache/cont/httpd.conf)  měla by tam být buď absolutní v lepším případě relativní cesta k adresáři %XAMPP_HOME%/apache . Řešení - nejjednoduší je zapsat absolutní cestu k adresáři Apache serveru. Někdy je pouze znovu-namapovat adresářovou strukturu za pomocí konsole - s...

Zend tool - A project profile was not found

Taky když jste se snažili vytvořit projekt za pomocí Zend tool, tak jste dostali tuto hlášku v konzoli. A jak to vyřešit? Je to prosté: 1. buď spouštíš zf.bat/sh přímo adresáři, kde se naléza, anebo 2. nemáš library adresář Zend Frameworku umísťěný korektně na PATH v php.ini Špatně: include_path = “.;C:\xampp\php\PEAR;C:\xampp\htdocs\zend\library” Dobře: include_path = “.;C:\xampp\htdocs\zend\library;C:\xampp\php\PEAR” Zdroj: 3 common problems when starting with Zend framework and Xampp