meloniasty schrieb:
Matthew Weier O'Phinney-3 wrote:-- meloniasty <dawid.melewski@gmail.com> wrote (on Friday, 24 April 2009, 07:04 AM -0700):Matthew Weier O'Phinney-3 wrote:-- meloniasty <dawid.melewski@gmail.com> wrote (on Friday, 24 April 2009, 03:47 AM -0700):Stefan Gehrig wrote:-----Ursprüngliche Nachricht----- Von: Matthew Weier O'Phinney [mailto:matthew@zend.com] Gesendet: Donnerstag, 16. April 2009 13:07 An: fw-core@lists.zend.com Betreff: Re: [fw-core] Bootstrapping modules with Zend_Application -- Stefan Gehrig <gehrig@ishd.de> wrote (on Thursday, 16 April 2009, 12:25 PM +0200):I'm currently developing the core structure for a newmodule-basedZendFramework MVC application. In general Zend_Application provides provisions for simple module bootstrapping with its Zend_Application_Resource_Modules and Zend_Application_Module_Bootstrap. But as Zend_Application_Resource_Modules bootstraps all availablemodulesonthe application bootstrap I coded my own front-controller-plugintodo amodule bootstrapping on preDispatch(). The module bootstraps areallsubclassed Zend_Application_Module_Bootstrap classes (I thinkthat'swhatthis class is supposed to do). To cut a long story short: Why do I have to implement Zend_Application_Bootstrap_Bootstrapper::run() in my modulebootstrapclasses? I think this is somehow needless as Zend_Application_Resource_Modules (on which I based mybootstrappingplugin)only calls Zend_Application_Bootstrap_Bootstrapper::bootstrap().Arun()-call wouldn't make much sense. Perhaps it's possible toimplementZend_Application_Module_Bootstrap::run() as an empty method toallowformore simple modules bootstraps. Just a thought...This is fixed in trunk. -- Matthew Weier O'Phinney Project Lead | matthew@zend.com Zend Framework | http://framework.zend.com/hi, i have similar problem with Zend_Application_Resource_Modules (i think so) i'm using ZF 1.80dev my config.ini has: ... resources.View.encoding = "UTF-8" resources.Layout.layout = "default" resources.Layout.layoutPath = APPLICATION_PATH "/layouts" resources.Modules= Cms.resources.Layout.layout="cms" Cms.resources.FrontController= Cms.resources.View.title="CMS " Cms.resources.View.encoding="utf-8" Api.resources.Layout.layout="api" Api.resources.FrontController= Api.resources.View.title="Api" Api.resources.View.encoding="ISO-8859-1" for each module (default, cms, and api) i want to load differentlayout,but my application initializates 3 layouts and load only cms for anymodule,and i dont know why? in Zend_Application_Module_Bootstrap is <qoute> if ($application-> hasOption($key)) { // Don't run via setOptions() to prevent duplicate initialization $this-> setOptions($application-> getOption($key)); } </qoute> when i extends Zend_Application_Module_Bootstrap to own Meloniasty_Application_Module_Bootstrap and only i've deleted codeabovethis didnt help because then its load only default so, is there any solution for this problem?Looking at your config file, you're missing the moduleDirectory directive -- so no modules are being found.this is only part of my config file, i have moduleDirectory autoloadernamespaces.0 = "Zend_" autoloadernamespaces.1 = "Meloniasty_" phpsettings.display_errors = 0 phpsettings.error_reporting = 8191 phpsettings.date.timezone = "Europe/Warsaw" bootstrap.path = APPLICATION_PATH"/../library/Meloniasty/Bootstrap.php" bootstrap.class = "Meloniasty_Bootstrap" pluginPaths.Meloniasty_Bootstrap_Resource="Meloniasty/Bootstrap/Resource" resources.FrontController.throwexceptions = false resources.FrontController.params.prefixdefaultmodule = true resources.FrontController.moduledirectory = APPLICATION_PATH"/modules" resources.FrontController.defaultModule = "default" resources.Layout.layout = "default" resources.Layout.layoutPath = APPLICATION_PATH "/layouts" resources.Modules= Cms.pluginPaths.Meloniasty_Bootstrap_Resource="Meloniasty/Bootstrap/Resource" Cms.resources.Layout.layout="cms" Cms.resources.FrontController= Cms.resources.View.title="CMS " Cms.resources.View.encoding="utf-8" Api.pluginPaths.Meloniasty_Bootstrap_Resource="Meloniasty/Bootstrap/Resource" Api.resources.Layout.layout="api" Api.resources.FrontController= Api.resources.View.title="Api" Api.resources.View.encoding="ISO-8859-1" application works fine with modules but all modules load all settings i have Cms_Bootstrap, and Api_Bootstrap class i.e. http://app.localhost/ - with settings above app load layout 'cms', but i think it should 'default' http://app.localhost/cms/ - load layout 'cms' - its ok http://app.localhost/api/ - load layout 'cms' - itsn't ok, it should 'api' i dont know, maybe zend_application works like that?This shouldn't matter, but... what happens if you lowercase the configuration keys: cms.pluginpaths.... api.pluginpaths.... -- Matthew Weier O'Phinney Project Lead | matthew@zend.com Zend Framework | http://framework.zend.com/no, its still doesnt work why in Zend_Application_Resource_Modules all modules are initialized? i think it should only initialize only current module, when i run cms module its should bootsraping only Cms_Bootstrap and load settings from cms, am i right?
It initalized all modules, because some modules maybe need other modules to work, depending on your design. And it seems, that 'cms' is simply executed later and so overwrites settings from 'api'. You can write a frontcontroller-plugin to change your layout depending on request. Is that a solution?
没有评论:
发表评论