Zend_Db a automatické quotování where()

Pokud potřebujete na tabulce zavolat update, tak to v Zend_Db napíšete nějak takto:

$db->update('tabulka', $bind, $where);

S tím že $where se běžně sestavuje dvěma způsoby:

1. ruční sestavení where podmínky

$whereStatements = array(
    $db->quoteInto('name = ?', $name),
    $db->quoteInto('surname = ?', $surname),
);
$where = implode(' AND ', $whereStatements);

2. použití pole oquotovaných podmínek

$where = array(
    $db->quoteInto('name = ?', $name),
    $db->quoteInto('surname = ?', $surname),
);

Od verze 1.8.0 je díky úpravě metody _whereExpr() v rámci issue ZF-1726 možné použít i třetí, ještě elegantnější způsob:

3. podmínky podobné jako u where() v Zend_Db_Select

$where = array(
    'name = ?' => $name,
    'surname = ?' => $surname
);

Všechny výše popsané ukázky vygenerují stejné SQL, takže není důvod nepoužívat ten poslední – nejhezčí. Jeho existenci jsem objevil náhodou – překvapilo mě, že kolega použil první způsob a tak jsem se díval, co to vlastně dělá na pozadí.

WHERE v metodě delete() se generuje stejnou metodou, takže výše uvedené platí i pro ni.

Zend Form – jak na spam ochranu

Dnes si ukážeme, jak jednoduše a elagantně přidávat k vašemu formulaři antispamovou ochranu. Bude se jednat o klasickou otázku a odpověď. Přičemž otázky budou náhodně vybírané z vícero možností.

Potřebujeme tedy vytvořit dvě třídy. Jedna (např. s názvem Captcha) bude zajišťovat přidání samotných formulářových prvků a druhá (ValidCaptcha), která bude tyto prvky validovat a tím oveřovat správnost odpovědí.
Continue reading 

Mhujer_View_Helper_Email

Mhujer_View_Hel­per_Email je jednoduchý helper, který robotům ztěžuje získávání e-mailové adresy ze stránky (adresa je stále použitelná běžnými způsoby – pro kliknutí)

Lze využít i generování mailto linku pomocí druhého volitelného parametru

Více zde

Zend_Controller_Router – vlastní router

Autor článku: Kacko

V dnešním článku se pokusím vyrešit velmi častý problém začínajících uživatelů Zend Frameworku, a to problém s routováním. Vyřešíme ho napsáním si vlastního routeru.

Budeme uvažovat, že máme web, mající prezentační část (frontend) a administrační část (backend). V prezentační části bychom rádi (až na pár vyjímek), aby vše zpracovával IndexController, zatímco v administrační části by bylo rozumné zachovat klasickou strukturu (vlastní Controller – Action) dle url.
Continue reading 

Zend_Session a přihlášení i na subdoménách

Ahoj,

řešil jsem, aby bylo možné být přihlášený na hlavním webu a současně i na subdoménách. Defaultně se SID cookie ukládá pro 'www.domena.tld' (a tudíž není přístupné ze subdomén). Aby to fungovalo, tak se cookie musí nastavit jako '.domena.tld'.

Bez ZF je to jednoduché, stačí použít fci session_set_cookie_params() a nastavit session.cooki­e_domain.

Continue reading