Zend Framework Fórum
30. Červenec 2010, 07:13:44 *
Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
Nedostal jsi svůj aktivační email?

Přihlaš se uživatelským jménem, heslem a délkou sezení
Novinky: Aktuální verze Zend Frameworku je 1.10.6 z 22.6.2010 [oznámení]

http://www.zendframework.cz/.

Veškerý PHP kód dávejte mezi tagy [php] a [/php], aby byl obarvený a přehlednější.
 
   Domů   Nápověda Vyhledávání Přihlásit Registrovat  
Stran: [1]
  Tisk  
Autor Téma: Bootstrap file  (Přečteno 5103 krát)
suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« kdy: 28. Prosinec 2008, 19:21:56 »

Chtel bych otevrit diskuzi a zeptat se, jak resite bootstrap file? K teto otazce me mimo jine prituklo tema, ale predevsim tema na nemeckem ZF foru, kde se to taky celkem resilo. Chtel bych se zeptat na vase nazory.
« Poslední změna: 28. Prosinec 2008, 19:27:15 od suky » Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
Techi
ZF User
*
Offline Offline

Příspěvků: 252


Zend Framework guru


WWW
« Odpověď #1 kdy: 28. Prosinec 2008, 23:28:08 »

Připomíná mi to DOSovskou éru kdy si kluci porovnávali své autoexec.baty a config.sysy Smích
Zaznamenáno

Controlling complexity is the essence of computer programming.
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #2 kdy: 29. Prosinec 2008, 12:31:53 »

zdar tak teda moj zjednoduseny bootstrap je v uz spominanej teme (http://forum.zendframework.cz/index.php?topic=618.msg3086#msg3086) nebudem to tu pastovat znova, tak mozte pozriet tam. Urcite to nie je dokonale, rad by som to vylepsil, teda budem vdacny za akekolvek pripomienky. Pouziva este niekto ako bootstrap  "nekonvencnu" classu? Alebo to mate standardne v jednom file?
Zaznamenáno

suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #3 kdy: 29. Prosinec 2008, 13:15:33 »

Tak jsem se rozhodl taky prispet. Upozornuji, ze jde jen o muj nazor.

Harvejsi, urcite se vyplati pouzit do bootstrapu jednu tridu, ktera se postara o celou inicializaci aplikace. Vyplati se to hlavne programatorovi, a to predevsim pokud pracuje na vice projektech, pak staci vzdy vzit tridu a jen hezky volat metody, ktere chci a vymazat, ktere nechci.

ALE smysl objektove orientovaneho programovani lezi uplne jinde, a tak bych se priklanel k procedurarnimu bootstrap filu. Jelikoz je mych par bootstrap filu stale ve fazi vyvoje, tak je musim nejak poupravit, nez vam je postnu.

Zkus si rict jedinou vyhodu toho, co nekonvencni trida prinasi. Jsem zvedav.

Po tom co vyresime zpusob jakym by to mel bootstrap file provadet, je na case se zeptat, co vsechno by mel provadet?
Co by mel spravny bootstrap file obsahovat?
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #4 kdy: 29. Prosinec 2008, 13:25:51 »

Zdar, no priznavam, ze ta moja Bootstrap trieda je vlastne len nejake zoskupenie funkcii a rozgranulovanie funkcionality. S OOP to samozrejme nema nic spolocne. Jedinu vyhodu ktoru to pre mna ma je prehladnost. Jednoducho sa s tym pracuje, lahko sa  v tom orientuje, hned viem, kde mam ake nastavenie hladat, kde mam co pridat ak potrebujem.
Zaznamenáno

suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #5 kdy: 29. Prosinec 2008, 13:31:47 »

Jo, vzdyt to ti nevyvracim.

Vyhody:
  • prehlednost pro programatora

Nevyhody:
  • nespravnost konceptu (zadne OOP)
  • parsovani tridy je pomalejsi (usuzuji) nez proceduralniho kodu
  • ...

Dospejeme tedy k nazoru, ze je to (nekonvencni trida) zbytecne?
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
mm-marek
ZF User
*
Offline Offline

Příspěvků: 47



WWW
« Odpověď #6 kdy: 29. Prosinec 2008, 20:02:19 »

podobnou funcionalitu měl návrh třídy Zend_Application, nakonec se do frameworku nedostal....

osobně vidím i jako diskutabilní tu přehlednost, kódu tam bude stejně, jen se tam přidá inicializace metod
Zaznamenáno

suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #7 kdy: 29. Prosinec 2008, 20:14:44 »

No diskutabilni... Mel bys jednu tridu a v nejake init-metode bys jen volal potrebne dalsi metody, ktere by tam mohly byt i s temi nepotrebnymi. Ale jak pises proceduralni kod je proceduralni kod.

No a zamysleme se nad obsahem bootstrap filu...
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
jirin_cz
ZF User
*
Offline Offline

Příspěvků: 64


« Odpověď #8 kdy: 29. Prosinec 2008, 21:50:02 »

No a zamysleme se nad obsahem bootstrap filu...

To, co se ti hodi a to co pouzivas vsude ne? Muzes to davat i do pluginu, ale proc to nevznout hned do toho bootstrapu. Nekdo tu psal db do pluginu, ja ji mam v bootstrapu a nevadi mi to:)

Souhlasim s harvejsem, ze ot je jak ten autoexec.bat apod., proste a jednoduse pouzivej co ti sedi vice.
Zaznamenáno
suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #9 kdy: 29. Prosinec 2008, 21:55:13 »

Lepsi by bylo, kdyby nekdo postnul neco konkretniho, ne stylem "davajte si tam co chcete".  Mrknutí
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
Pacek
Global Moderator
ZF User
*****
Offline Offline

Příspěvků: 76

Gravatar


« Odpověď #10 kdy: 30. Prosinec 2008, 12:02:42 »

Moje adresářová struktura je následující:

Co se adresářové struktury týče, každý si ji zřejmě navrhne podle sebe, proto bych ji nerad v tomto vlákně rozebíral.

A bootstrap file:
<?php
error_reporting
(E_ALL|E_STRICT);
ini_set('display_errors''on');

date_default_timezone_set('Europe/Prague');
set_include_path('.' PATH_SEPARATOR
                     
'./lib/' PATH_SEPARATOR
                     
'./app/models/' PATH_SEPARATOR
                     
'./app/views/forms/' PATH_SEPARATOR
                     
get_include_path());
require_once 
'Zend/Loader.php';
$autoload Zend_Loader::registerAutoload();

$dbConfig = new Zend_Config_Ini('./app/config.ini''db');
$db Zend_Db::factory($dbConfig->database->adapter$dbConfig->database->params->toArray());
$defaultAdapter Zend_Db_Table::setDefaultAdapter($db);
$db->setFetchMode(Zend_Db::FETCH_OBJ);
define('_TABLE_PREFIX''rss_');

$registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS);
Zend_Registry::setInstance($registry);
$registry->db $db;

$session Zend_Session::start();
$registry->session = new Zend_Session_Namespace('session');

$registry->Zend_Translate = new Zend_Translate('csv''./langs'null, array('scan' => Zend_Translate::LOCALE_DIRECTORY));

$frontController Zend_Controller_Front::getInstance();
$frontController->setBaseUrl('/rss/')
                ->
setControllerDirectory(array('default' => './app/modules/default/controllers/',
                                               
'users'   => './app/modules/users/controllers/',
                                               
'admin'   => './app/modules/admin/controllers/'));

$routerConfig = new Zend_Config_Ini('./app/config.ini''routes');
$router $frontController->getRouter();
$router->addConfig($routerConfig'route');

$viewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if(
is_null($viewRenderer->view)) $viewRenderer->init();

$viewRenderer->view->setEncoding('UTF-8');
$viewRenderer->view->baseUrl 'http://localhost/rss/';
$viewRenderer->view->setHelperPath('./lib/Extend/View/Helper/''View_Helper');
$viewRenderer->view->setEscape('htmlspecialchars');

$actionHelpersPrefix Zend_Controller_Action_HelperBroker::addPath('./lib/Extend/Controller/Action/Helper/''Action_Helper');

$layout Zend_Layout::startMvc();
$layout->setLayoutPath('./app/views/layouts/');

$frontController->throwExceptions(true)
                ->
registerPlugin(new Extend_Controller_Plugin_TimeCounter())
                ->
dispatch();

Do lib/Extend ukládám všechny svoje třídy, připadá mi to lepší než je pojmenovávat svým jménem Úsměv.
Zaznamenáno

Developers, developers, developers, developers, developers, ...
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #11 kdy: 30. Prosinec 2008, 12:09:13 »

zdar, ja som tu toho uz asi napisal dost, len by som sa chcel pozastavit nad vetou "parsovani tridy je pomalejsi (usuzuji) nez proceduralniho kodu", jasne s tym suhlasim, ak by sa tie metody pustali 1000x, ale pri jednom zbehnuti je podla mna rozdiel nemeratelny Úsměv

no este som chcel doplnit moj bootstrap, lebo v predoslom prispevku som ho koli jednoduchosti dost osekal.
mam tam teda okrem ineho este metody:


   
public static function setupEnvironment()
   {
           
error_reporting(E_ALL E_STRICT);  
	
ini_set('display_startup_errors'1);  
	
ini_set('display_errors'1); 
    
	
date_default_timezone_set('Europe/London');
    
	

	
    if(
$_SERVER['SERVER_ADDR'] == 'xxx')
	
    {
	
	
self::$env 'production';
	
    }
	
    else 
	
    {
	
	
self::$env 'development';
	
    }
	
	
	
	

    }

    public static function 
setUpDbCache()
    {
	
	
$frontendOptions = array(
	
	
    
'automatic_serialization' => true
	
	
    );
	
	

	
	
$backendOptions  = array(
	
	
    
'cache_dir'                => 'cache'
	
	
    );
	
	

	
	
$cache Zend_Cache::factory('Core',
	
	
                             
'File',
	
	
                             
$frontendOptions,
	
	
                             
$backendOptions);
	
	
                             
	
	
	

	
	
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
    }

 
    public static function 
setupRoutes()
    {
    
	
$router self::$frontController->getRouter();
          
// nastavenie vsetkych pravidiel, je toho vela, tak to nepastujem,  ale viete si to predstavit :)
    
}


je mozne, ze tie veci nie su tam, kde by mali byt, alebo ze to riesim nekoncepcne Úsměv potom by som bol rad, ak mi poradite, ako to mam spravit koncepcne, resp. ako to spravit lepsie a preco.

este ma napadla dalsia malicka vyhoda. mozno je to len moja nevedomost, ale da sa v eclipse nejakou klavesovou skratkou dostat ku konkretnemu suboru? lebo ku triede sa dostanem ALT + SHIFT + g, nemusim sa preklikavat cez navigator
Zaznamenáno

tomas.fejfar
ZF User
*
Offline Offline

Příspěvků: 631


« Odpověď #12 kdy: 30. Prosinec 2008, 12:24:23 »

První doporučení je přepsat pravidla z kódu do konfigu a pak $router->setConfig($config), k souboru se dostaneš Ctrl + Shift + R Úsměv
Zaznamenáno
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #13 kdy: 30. Prosinec 2008, 12:42:29 »

diki tie routy skusim prepisat do configu a tou skratkou si mi prave usetril 50% mojho pracovneho casu ÚsměvÚsměv nechapem, ako to, ze som to nevedel najst, diki!
Zaznamenáno

suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #14 kdy: 30. Prosinec 2008, 13:28:27 »

Pacek: Pekne Mrknutí

harvejs: Pokud projekt nevyzaduje velkou navstevnost, je to samozrejme zanedbatelne, ale pro velke projekty to vyhodne neni. Tak proc se spolehat na to, ze projekt bude mit nizkou navstevnost?

tomas.fejfar: Muzu se zeptat na duvod, proc presouvat nasteveni rout do configu?
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #15 kdy: 30. Prosinec 2008, 14:13:34 »

opat si dovolim oponovat Úsměv
pri pouzivani zendu frameworku sa pre uplne cokolvek, aj male ulohy, volaju desiatky az stovky roznych metod vytvaraju sa desiatky objektov, teda podla mna to fakt nezavazi ani pri velkej nasvstevnosti. Je to staticke volanie 5-6 metod, podla na je to nemeratelny cas. Jeden partial loop trva 50x dlhsie ako toto Úsměv Ale mozme sa asi natahovat na tom dlho, pokial to nebudeme moct realne otestovat. Ale mozem to skusit zprofilovat a mozno na nieco pridem. 
Zaznamenáno

suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #16 kdy: 30. Prosinec 2008, 14:21:13 »

Dobre, samozrejme s tebou souhlasim. Ale s tim spatnym konceptem me nepresvedcis! Kdyz je neco teoreticky spatne, je to pro me proste spatne. Mrknutí Usud sam. Nechme to uz lezet.
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #17 kdy: 30. Prosinec 2008, 14:26:39 »

jasne, nechajme to, zly koncept si priznavam, a uvedomujem si vsetky nebezpecenstva a nastrahy zivota so zlym konceptom Úsměv diki za vsetky pripomienky a navrhy, urcite nad tym budem rozmyslat
Zaznamenáno

tomas.fejfar
ZF User
*
Offline Offline

Příspěvků: 631


« Odpověď #18 kdy: 30. Prosinec 2008, 14:45:35 »

Do configu proto, že je to přehlednější Úsměv

Kód:
routes.equipment.route               = "/equipment/:eqId/history/*"
routes.equipment.defaults.action     = equipment
routes.equipment.defaults.controller = history
vs.
$router->addRoute(
    
'equipment',
    new 
Zend_Controller_Router_Route('/equipment/:eqId/history/*',
                                     array(
'controller' => 'history ',
                                           
'action' => 'equipment'))
);

Rozdíl v přehlednosti je snad očividný Úsměv
Zaznamenáno
maikis
ZF User
*
Offline Offline

Příspěvků: 22


« Odpověď #19 kdy: 22. Únor 2009, 14:29:50 »

zajímalo by mě jestli je rychlejší (lepší?)  dávat jakékoliv nastavení, hodnoty do configu nebo do bootstrapu , když pominem přehlednost (podle mě se to dá přehledně udělat i php souboru)

přeci jenom to musí nějaký script načíst z toho configu .. nebo jsou to zanedbatelné časy?
Zaznamenáno
Jiří Pospíšil
Global Moderator
ZF User
*****
Offline Offline

Příspěvků: 86

Gravatar


« Odpověď #20 kdy: 22. Únor 2009, 16:15:09 »

Řekl bych, že se k INI configu každý tak nějak sám dostane, jakmile začne dělat na nějakém rozsáhlejším projektu. Z hlediska výkonu bude vždycky čisté PHP rychlejší než INI/XML config, v případě rozsáhlejšího INI/XML configu už ty časy zanedbatelné nejsou, z osobní zkušenosti se může jednat i o stovky ms Mrknutí. Používání cache na config objekt je tedy nutnost.
Zaznamenáno
tomas.fejfar
ZF User
*
Offline Offline

Příspěvků: 631


« Odpověď #21 kdy: 22. Únor 2009, 18:22:34 »

Používání cache na config objekt je tedy nutnost.
Ano, to rozhodně. Ono stačí i primitivní serializování do souboru, který se smaže jednou za čas Úsměv Není nutno se babrat se Zend_Cache. Ale to vytváření toho configu trvá fakt dlouho.

Druhým důvodem pro konfig je, že když se někdo rozhodně, že "konfigurace/:action" bude "nastaveni/:action" tak ti nebude sahat do zdrojáku.
Zaznamenáno
L.V.
ZF User
*
Offline Offline

Příspěvků: 22



« Odpověď #22 kdy: 13. Březen 2009, 19:52:34 »

BTW, Zend_Application je uz v inkubatoru  Úsměv

http://framework.zend.com/wiki/display/ZFPROP/Zend_Application+-+Ben+Scholzen

Vypada to slibně. Těším se jak malé dítě  Smích
Zaznamenáno
suky
ZF User
*
Offline Offline

Příspěvků: 96



WWW
« Odpověď #23 kdy: 22. Březen 2009, 14:07:17 »

harvejs
Rozhodl jsem se na nase probirane tema napsat clanek.
Zaznamenáno

homepage | blog | Život je jen dlouhý algoritmus. Lukáš Kubánek
harvejs
ZF User
*
Offline Offline

Příspěvků: 189


« Odpověď #24 kdy: 23. Březen 2009, 10:52:10 »

Ahoj! Tak to ma tesi Úsměv dik Mrknutí
Zaznamenáno

Stran: [1]
  Tisk  
 
Skočit na:  

Poháněno MySQL Poháněno PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Validní XHTML 1.0! Validní CSS!