Zend Framework a renderToPlaceholer view helper
Dnes jsem narazil na nový view helper Zend_View_Helper_RenderToPlaceholder, který se výborně hodí pro skládání layoutu stránky. Umožní vyrenderovat pohled do placeholderu a jeho obsah pak vložit do stránky.
Řekněme, že chceme vytvořit informační systém, který nebude přístupný zvenčí. Jediná přístupná stránka bude přihlašování. V informačním systému pak chceme zobrazovat menu, které nepřihlášený nesmí vidět. Šlo by to řešit lehce třeba podmínkou v šabloně:
if ($this->logged) { //zobrazit menu}
Takových podmínek by mohlo být ale pak v aplikaci značné množství. Později může přijít Váš kolega a proměnnou $logged definovat jinak a vy pak budete hledat hodně dlouho chybu.
Pomocí renderToPlaceholderu helperu to půjde elegantněji.
- vytvoříte si šablonu menu.phtml a do ni vložíte menu.
- vytvoříte si controller plugin, který vloží šablonu do placeholderu:
class Controller_Plugin_RenderMenu extends Zend_Controller_Plugin_Abstract
{
public function postDispatch(Zend_Controller_Request_Abstract $request)
{
$controller = $request->getControllerName();
$action = $request->getActionName();
if ($controller == 'index' && $action == 'login') {
return;
}
$view = Zend_Controller_Action_HelperBroker::getHelper('ViewRenderer')->view;
$view->renderToPlaceholder('menu.phtml', 'menu');
}
}
- pomocí view helperu placeholder menu v layoutu aplikace zobrazíte:
echo $this->placeholder('menu');
- nakonec zaregistrujte plugin controller v bootstrapu.
$frontController->registerPlugin(new Controller_Plugin_RenderMenu());
Takové řešení je mnohem přehlednější. Navíc můžete controller plugin snadno propojit s pluginem pro řešení ACL.
|
27. 1. 2009 Út 15.38 | Zend Framework |
| 485x
Hledáme programátora PHP a kodéra CSS
Pro Shopio a další projekty společnosti w3w hledáme programátora PHP. Hlavním požadavkem je spolehlivost. Nestačí dělat věci, které budou fungovat v 99% případů a spolehat na to, že nějaká situace se nestane. Hledáme někoho, kdo je schopný programovat aplikaci tak, aby ji nebylo nutné dokola opravovat. Dalším požadavkem je "konstruktivní myšlení". Hledáme někoho, kdo nebude dělat něco, o čem ví, že se bude za chvíli předělávat, protože původní návrh zněl hezky, ale v praxi je nepoužitelný. Nutná je znalost MVC frameworku, ideálně Zend Frameworku, pomůže i zkušenosti se subversion.
Máme několik dlouhodobě vyvíjených aplikací pro naše klienty, nejvýznamnější je Shopio.cz. Forma spolupráce může být na ŽL nebo pracovní poměr. Můžete pracovat odkudkoliv, ideální je, abyste byli z Prahy, ale není to podmínkou. Obvykle můžete pracovat kdykoliv chcete, ráno, večer nebo v noci, je to jedno, důležité jsou pro nás výsledky. V našem informačním systému dostanete popis toho, co je potřeba, jakmile věc splníte, odešlete data do svn, odkliknete ticket a napíšete čas, který vám to zabralo.
Nově také hledáme CSS kodéry. Více informaci o nabízených pozicích najdete na našem webu.
Pokud vás nabídka zaujala, napište mi prosím na jakub.mrozek@gmail.com.
A ještě se mrkněte na naše PFko:-)
Nabídka zaměstnání
Pro Shopio a další projekty hledáme 4 nové kolegy. Přehled všech hledaných pozic najdete na stránkách W3W. O práci jsem psal v minulém spotu, tam si můžete najít, jak to u nás chodí.
Freelance vs. práce na plný úvazek
Během let u programování mám zkušenosti s různými druhy pracovních poměrů. Nejprve jsem si zkoušel shánět zakázky zcela sám, pak jsem pracoval na hlavní pracovní poměr u ILIKETHIS! a v současné době dělám jako externista na živnosťák. Jaké jsou výhody a nevýhody každého pracovního poměru?
Shánění vlastních klientů
Tak nejprve práce na živnosťák, kdy si sháníte práci sami a máte vlastní klienty. Takhle jsem se snažil pracovat asi půl roku a bylo to příšerné:-) Sám nerad s klienty jsem, nerad s nimi komunikuji a hlavně mě nebaví překládat jeji nápady do realizovatelné podoby. Téměř každý si vymýšlí spostu hloupostí a fakt nemám chuť se hádat o tom, že animované gify už nejsou in.
Druhá nepříjmná věc je komunikace ohledně peněz. Člověk má tendenci říkat raději méně, než kolik by opravdu chtěl a je trochu nepříjemné hodnotit svojí vlastní práci penězi. Proto je dobré mít pevně stanovené ceníky a necouvnout z nich.
To jsou nevýhody. Mezi výhody pak může patřit velká volnost pracovní doby, i když ne zas tak velká, jak si většina lidí myslí. Máte domluvené schůzky a na ty musíte. Další výhoda jsou peníze. Všechny výdělky jdou k vám, ale vzhledem k tomu, že se těžko shání lukrativní věci, tak je to spíše naopak, to je alespoň moje zkušenost.
Takže jednoznačný result: mít vlastní firmu, pracovat zcela sám nedporučuji.
Práce na hlavní pracovní poměr
Před rokem jsem pracoval pár měsíců v ILIKETHIS. O zkušenostech jsem psal už na dřívějším weblogu history.ronnieweb.net, nechci to znova rozebírat. Faktem je, že moje zkušenosti byly velmi špatné. Práce mě vůbec nebavila, nikdo neměl o nic zájem, všechno zastaralé. Ale tohle není ani zdaleka jen o jedné firmě, tak to chodí v mnoha a mnoha jiných. Takže pokud si myslíte, že půjdete někam do nejvýznamnější firmy u nás a všichni budou nadšení z toho, jak je programování baví, tak se šeredně mýlíte. Je to jako v jiných oborech. Je to odporný stereotyp. Ve velké firmě zakrníte, nic vás nenutí zajimat se o novinky.
Druhá velká nevýhoda jsou peníze. Byl jsem na několika pohovorech a nikde nenabízeli více než 30 tis. V ILIKETHIS! jsem měl 27 tis. hrubého, což znamená v přepočtu přibližně 19 tis. čistého + stravenky a nějaké půlroční odměny. V Praze stojí bydlení min. 10 tis, abyste byli nějak slušně v centru, tak pod 14 tis. téměr nelze nic sehnat. Takže když si to pak spočítáte, je to hodně málo a je to jen o přežívání. Na takové létání, což je můj životní koníček, můžu zapomenout. Co hůře, myslíte, že takové firmy dělají weby za pár tisic?:-) Platí se za všechno a vy většinou víte, kolik je za vás účtováno (za jednu hodinu práce min. 10× více než dostanete na hodinové mzdě), takže to je deprimující úplně. Jistě, mohli bychom si tady říct, že takový učitel s VŠ si může o 27 tis. nechat jen zdát. Jenže cenu práce neurčuje jen vzdělání, ale také pracovní trh a fakt, že programování vás žádná škola nenaučí, ale konkrétní jazyk si musíte nastudovat sami. A není to otázka týdnů ani měsíců, ale let. A za to by se mělo platit.
Další nevýhoda je čas. Zní to strašně, ale musíte chodit pravidelně do práce:-) Myslel jsem si, že si zvyknu, ale nezvyknul. Mám rád, když můžu pracovat tehdy, když se mi chce. Není to fyzická práce, ale psychická, je potřeba přemýšlet. V tom ale musím říct, že mi v ILIKETHIS! vyšli hodně vstříc, nemusel jsem chodit na konkrétní hodinu, ale většinou stačilo přijít mezi 8. a 10. hodinou. Párkrát jsem pracoval i o víkendu místo nějakého dne, ale moc rádi to neviděli.
Jako výhodu zase vidím to, že jsem měl jistotu, že vždycky dostanu peníze v určitý den a že jsem měl kolem sebe lidi. I když to druhé mi příliš nevyhovovalo, protože mě ostatní většinou rušili, každý něco co chvíli potřeboval a to nemám moc rád.
Takže jednoznačný result: pracovní poměr ve velké firmě (nad 30 zaměstnanců) doporučuji jen pro toho, kdo se chce usadit a nemá moc zájem o novinky či potřebuje k životu kolektiv lidí, pro ostatní rozhodně nedoporučuji.
Práce pro menší firmu
Nejdéle jsem pracoval pro nějakou menší firmu. Dříve moje zkušnosti nebyly kdo ví jak dobré (peníze), ale od minulého roku jsem začal pracovat pro W3W a tohle je úplně jiné kafe.
Co mám nejraději je maximální možná míra svobody. Volno můžu mít kdykoliv. Když se dneska blbě vyspím a nebudu mít náladu na práci, tak jen napíšu, že dnes ne a nemusím se dále starat. Nikdo mě nenutí. Můžu chodit na letiště, když je pěkně a ne když mám čas a je tam hodně lidí. Od Prahy bydlím pár set km, mám to vlakem asi 5 hodin, ale za celý rok jsem byl v Praze ve firmě jen 2× a ničemu to nevadí. Tedy…asi by bylo jednodušší, kdybych v Praze bydlel, ale dá se to zvládnout i takhle. Mám absolutní míru svobody, můžu pracovat odkudkoliv a kdykoliv. Stejně tak si můžu vzít dovolenou kdykoliv bych chtěl, to ale nedělám a většinou to ohlásím měsíce dopředu (pokud jde o dovolenou delší než 3 dny). Většinou se snažím, abych měl alespoň dva dny v týdnu volno.
Práce se odvíjí od odpracovaných hodin. Každý den odpracuju nějaké množství času a ten pak vložím do našeho informačního systému a na konci měsíce si ho nechám proplatit. Za celý rok nebyl ani jednou problém s financemi. Naopak, peníze mám vždy hned na začátku měsíce na účtu, lepší to rozhodně nemůže být. A co se týče výše, tak to je úplně v jiných číslech než u ILT.
Komunikace probíha velmi jednoduše. Máme ActiveCollab, kde vždy někdo přidá ticket (opravu bugu nebo novou vlastnost) a já ji během nějaké doby opravím. To je vlasně vše. Přes mail či ICQ se pobavíme o novinkách v Shopiu. Myslím, že taková komunikace je vůbec nejlepší, protože zpětně si pak můžu naši komunikaci vyhledat. Při osobní komunikaci si nikdy nezapamatujete vše, co bylo řečeno, takže na některé věci třeba zapomenete.
Další výhodou je razantní vývoj kupředu. Shopio mimo mě vyvíjí ještě Martin Hujer a oba máme opravdu zájem o to, abychom používali to nejnovější a vedení se tomu nebrání. Začínáme Shopio pokrývat unit testy či v nejbližší době začneme používat Selenium, což vyžaduje hodně času na implementaci a málokdo by ten čas opravdu chtěl zaplatit (je to samozřejmě užitečné a vrátí se to, ale v ILT se mi to prosadit nepodařilo). Vše funguje na nejnovějšim Zendu, brzy budeme dělat upgrade na 1.7. S tím souvisí i rozvoj firmy. Brzy nastane den, kdy budeme otevírat první pobočku v zahraničí (podle plánu někdy na konci 1.poloviny příštího roku) a brzdy budou následovat další. Nebavilo by mě pracovat ve firmě, kde bychom nechtěli být nejlepší v tom, co děláme.
Mám možnost pracovat i na většich projektech než menší eshopy, i když ty mám nejraději. Na začátku roku jsem měl možnost dělat aplikace pro GE Money Bank, spolupracujeme s jednou z nejznámějších českých webdesignerských firem (brzy budeme spouštět první eshop, dám vědět) a snažime se spolupracovat i s H1, která nám navrhla nové uživatelské rozhraní pro Shopio a postupně ho implementujeme. Mimochodem analýza H1 a obzvláště práce M. Snížka pro nás byla velmi užitečná, rozhodně doporučuji.
Teď se snažím přijít na nevýhody…nic mě nenapadá. Tohle vypadá jako PR Shopia, ale tak to vážně není. Shodou okolností budeme v následujících dnech hledat další spolupracovníky na různé posty, takže pokud máte zájem u nás pracovat, tak sledujte weblog Shopia.
Shrnutí
Takže abych to shrnul, rozhodně doporučuji najít si menší webdesignerskou firmu a s ní spolupracovat. Z mého pohledu je to po všech stránkách nejideálnější volba.
Jak probíhá certifikace na Zend Framework?
Dnes jsem absolvoval (úspěšně) cerfikaci pro Zend Framework. Jak taková certifikace probíhá, proč jsem ji absolvoval, co obnáší a kolik to stojí?
Možnost udělat si certifikát na Zend Framework je relativně nová záležitost společnosti Zend. Z ČR ji úspěšně prošel dříve jen Martin Hujer, který se rovněž podílí na vývoji Shopia.
Jak celý proces probíhá?
Na stránkách Zendu si zakoupíte voecher a vyberete si školící středisko. Já si vybral Computer Help v Praze. Rozhodně doporučuji vybrat si CH, těžko se dá něco vytýkat organizaci. Navíc vám bude dělat příjemnou společnost slečna Veronika, která má certifikaci na starost. Domluvíte se na datu certifikace. Certifikace je poměrně drahou záležitostí, stojí kolem $200. Martin ji dostal zdarma jako vývojář Zendu, já ji měl rovněž zdarma, ovšem jako dar od společnosti W3W, která za Shopiem stojí.
V osudný den se pak dostavíte do střediska, dostanete přečíst podmínky, několikrát se podškrábnete a musíte se prokázat dvěma(!) průkazy totožnosti. Pak budete uvedeni do mistnosti, která bude sledována kamerami. Přečtete si podmínky na PC a pustíte se do testování. Otázek je 75 a máte hodinu a půl. Já měl test přibližně za hodinu hotový. Za poslední otázkou se dozvíte výsledek: prošel (passed) nebo neprošel (failded).
Charakter otázek
Dle podmínek nemůžu zveřejňovat žádné konkrétní otázky, ale můžu poskytnout rady, co nastudovat a čemu se vyhnout. Test samotný považuju za velmi obtížný (ze stupnice od 1 do 10 bych dal tak 8). Nedávno jsem jako budoucí majitel piloťáku na ultralehká letadla dělal test na průkaz radioperátora letecké pohyblivé služby. Otázek bylo 90, limit 90 minut. Celý test jsem měl bez chyby a za 3 a půl minuty, tady jsem byl rád, že jsem se vešel s klidem do limitu.
Celý test je v angličtině. Pokud nejste schopni přečíst si manuál bez slovníku, pak na certifikaci nemá smysl chodit.
K přípravě na certifikaci si můžete stáhnout PDF certificate book o 200 stránkách, ale rozhodně se podle ní neučte. Ani zdaleka neobsahuje všechny informace a obsahuje chyby (neexistující třídy). Pro studium bude potřeba prostudovat celý manuál (má asi 1230 stránek v PDF).
Otázky jsou 3 druhů. První je výběr jedné z několika možností, druhý typ je x správných odpovědí z y možností a poslední druh je vepsat přímo odpověď do textového pole.
Jak jsem psal, otázky rozhodně nejsou banální a nejde o základy. Často se ptají třeba na parametry nastavení, v možnostech jsou neexistující konfigurační volby. Nestačí znát pouze práce s instancemi, ale musíte znát i popis jednotlivých tříd. Které SPL rozhraní jaká třída implementuje ap. Zkrátka předpokladem je, že pokud certifikaci uděláte, můžete pracovat se Zendem BEZ koukání do manuálů a zdrojáků, že používáte VŠECHNY knihovny a že si VŠECHNY knihovny rozšiřujete. K úspěšnému absolvování testu tedy nestačí jen běžná denní práce, ale musíte si prostudovat podrobně manuál a ideálně i samotné třídy. Každá odpověď může být pravdivá, je tam spostu chytáků a není žádná odpověď, která by vyvolávala úsměv, jak to obvykle v testech bývá:-)
Proč se nechat certifikovat?
- Certikace potvrdí vaše znalosti Zend Frameworku. Pokud půjdete na pohovor, nemusíte se obhajovat, stačí předložit certifikát. Třeba v ILIKETHIS hledají programátora Zend Frameworku a podmínkou je znalost ZF 1.5. S certifikátem vás nikdo nemusí zkoušet.
- Pro svůj vlastní pocit. Děláte to, co máte rádi a určitě chcete být úspěšní. Certifikát potvrdí to, že své práci dobře rozumíte.
- Budete se muset učit podle manuálu a určitě najdete spostu věcí, o kterých jste dříve nevěděli, rozšíříte tedy své znalosti.
- Rozšiříte si CV. Třeba později s PHP pracovat nebudete, to ale neznamená, že certifikát nemůžete uvést, naopak, je to rozhodně bod pro vás.
- Sbíráte různé certifikáty, kursy ap. jako já:-)
- Budete moci užívat logo se sexy názvem a vaše partnerka si vás bude moci pravdivě dát do mobilu jako Zend certificated engineer for Zend Framework:-))
Nevýhodou je cena, nicméně pokud máte kvalitního zaměstnavatele, určitě je v jeho zájmu, abyste byli certifikováni a měli co nejvyšší vzdělání v oboru. Když se váš zaměstnavatel uchází o zakázky, musí se nějak prezentovat před klientem a argument, že lidé, kteří budou na zakázce pracovat, mají v oboru výborné znalosti potvrzené certifikací je velmi silný. Vzpomínám si, že třeba v ILIKETHIS se zvažovalo, že by všichni programátoři byli certifikování, nějak z toho ale nakonec sešlo.
Good luck u certifikace!
Reagovat můžete na jakub.mrozek@gmail.com
|
10. 11. 2008 Po 21.04 | PHP, Zend Framework |
| 901x
Upozornění!
Články ze staršího weblogu najdete na adrese history.ronnieweb.net