Přihlásit

Blog

Vývojářský deníček #3

Date 2011-06-06 17:35:33 | napsal Martin Pernica

V tomto díle se podíváme na novinky a princip CMS vrstvy jménem Extensions (bývalé Watchers). Podíváme se na to jak vypadají výjímky ve vývojářském režimu (development) a výjímky v produkčním režimu (productive), který je nastaven jako základní. A poslední věc, kterou jen lehce nakousneme bude VDatabase.



Vision Extensions

Extensions jsou jistou vylepšenou obdobou V_Events, ale v Events se události registrují přímo za běhu aplikace, tzn. že neexistuje jejich pevný seznam či cokoliv podobného.

Vision_Extensions jsou vlastním typem v CMS vrstě, které se ukládají jako klasické třídy dědící od Vision_Object. Mají metody pojmenované dle událostí, které se zavolají právě při dané události. Například při konstrukci objektu Vision_CMS se vytvoří událost onCmsConstruct, které je předán odkaz na vlastní instanci. Tudíž je možné běh CMS ovlivnit ještě dříve, než-li se na řadu dostane Controller (Component).

<?php

final class Extensions_Example extends Vision_Object
{
    public function onCmsConstruct($cmsObj)
    {
    	# You can force whole your router to application
        $cmsObj->router = new MyOwnRouterForCMS($cmsObj->framework->httpRequest);
        
        # Or you can only add your own route
        $cmsObj->setRoute("mask");
        
        # And much more
    }
}

Taktéž mají možnost vlastního konfiguračního souboru ve formátu .XML, ve kterém je možnost napsat jméno, popis a požadavky Extension.

<Extensions>

<Info>
	<Name>Example</Name>
	<Description>Helper for Example component.</Description>
	<Author>John Tester</Author>
	<Version>1.0</Version>
</Info>

<Requirements>
	<!-- This extension will be loaded only if component Example is installed! !-->
	<Component>Example</Component>
	
	<!-- This extension will be loaded only if Framework is on version 1.5 or higher! !-->
	<Framework>lt 1.5</Framework>
	
	<!-- This extension will be loaded only if CMS is on version 1.0 or higher! !-->
	<CMS>lt 1.0</CMS>
</Requirements>

</Extensions>

Výjímky - chyby

Ke každému programování patří neodmyslitelně chyby či chcete-li bugy. Tudíž je potřeba si je trošku zpříjemnit a také aby nám podaly určitou informační hodnotu ze které, můžeme vycházet v opravách. VFramework disponuje dvoumi režimy běhu aplikace a to development a productive. V základním nastavení je celý systém spouštěn v productive prostředí, které je vhodné jak již z názvu vyplývá pro weby, které běží v ostrém provozu. Chybové hlášky v tomto režimu nevypisují zdrojové kódy, back trace či jiné citlivé informace.

Productive režim

Druhý režim development je vhodný pří vývoji rozšíření systému či jiných zasazích do kódu. Vypisuje náhled kódu, kompletní back trace a případně jiné informace, vhodné pro další debug.

Development režim

VDatabase

VDatabase je další knihovnou z naší dílny určenou pro jednotný přístup k datům. Knihovna lze používat i jako stand-alone (stejně jako VFramework), ale je doporučeno ji kombinovat s VFrameworkem.

Hlavním cílem a myšlenkou této knihovny je přinést rychlý, pohodlný a hlavně jednotný přístup k datům z různých databázových zdrojů.

Přistupovat k objektu, této knihovny, lze prakticky z každé části VisionCMS pomocí metody VisionCMS::getDatabaseObject(), která dodá vždy aktuální objekt se spojením k VisionCMS databázi.

VDatabase podporuje v základu několik ovladačů (včetně mysql, mysqli či sqlite) a podporuje takzvané prepare statements či fluent přístup.

Ale o dalších specifikacích této knihovny až v dalším článku.


Váš názor je pro nás směrodatný!

Nebojte se a napište nám Váš názor na naše fórum!

I Vaše nápady se mohou promítnout v nové verzi VisionCMS!

Sdílejte na: