[Beeframework-svn] SF.net SVN: beeframework:[51] trunk/framework
Brought to you by:
b_hartmann,
m_plomer
From: <m_p...@us...> - 2013-08-19 12:52:08
|
Revision: 51 http://sourceforge.net/p/beeframework/code/51 Author: m_plomer Date: 2013-08-19 12:52:03 +0000 (Mon, 19 Aug 2013) Log Message: ----------- - committing MVC namespace handler Modified Paths: -------------- trunk/framework/Bee/Context/Xml/HardcodedNamespaceHandlerResolver.php Added Paths: ----------- trunk/framework/Bee/MVC/XmlNamespace/ trunk/framework/Bee/MVC/XmlNamespace/Handler.php trunk/framework/Bee/MVC/XmlNamespace/ViewResolverBeanDefinitionCreator.php trunk/framework/bee-mvc-1.0.xsd Modified: trunk/framework/Bee/Context/Xml/HardcodedNamespaceHandlerResolver.php =================================================================== --- trunk/framework/Bee/Context/Xml/HardcodedNamespaceHandlerResolver.php 2013-08-17 14:55:22 UTC (rev 50) +++ trunk/framework/Bee/Context/Xml/HardcodedNamespaceHandlerResolver.php 2013-08-19 12:52:03 UTC (rev 51) @@ -27,7 +27,8 @@ 'http://www.beeframework.org/schema/security' => 'Bee_Security_Namespace_Handler', 'http://www.beeframework.org/schema/tx' => null, 'http://www.beeframework.org/schema/util' => 'Bee_Context_Util_Namespace_Handler', - 'http://www.beeframework.org/schema/batch' => 'Bee\Tools\Batch\XmlNamespace\Handler' + 'http://www.beeframework.org/schema/batch' => 'Bee\Tools\Batch\XmlNamespace\Handler', + 'http://www.beeframework.org/schema/mvc' => 'Bee\MVC\XmlNamespace\Handler' ); public function resolve($namespaceUri) { Added: trunk/framework/Bee/MVC/XmlNamespace/Handler.php =================================================================== --- trunk/framework/Bee/MVC/XmlNamespace/Handler.php (rev 0) +++ trunk/framework/Bee/MVC/XmlNamespace/Handler.php 2013-08-19 12:52:03 UTC (rev 51) @@ -0,0 +1,13 @@ +<?php +namespace Bee\MVC\XmlNamespace; + +/** + * Class Handler + * @package Bee\MVC\XmlNamespace + */ +class Handler extends \Bee_Context_Xml_Namespace_HandlerSupport { + + function init() { + $this->registerBeanDefinitionParser('viewresolver', new ViewResolverBeanDefinitionCreator()); + } +} Added: trunk/framework/Bee/MVC/XmlNamespace/ViewResolverBeanDefinitionCreator.php =================================================================== --- trunk/framework/Bee/MVC/XmlNamespace/ViewResolverBeanDefinitionCreator.php (rev 0) +++ trunk/framework/Bee/MVC/XmlNamespace/ViewResolverBeanDefinitionCreator.php 2013-08-19 12:52:03 UTC (rev 51) @@ -0,0 +1,48 @@ +<?php +namespace Bee\MVC\XmlNamespace; + +use Bee_Beans_PropertyValue; +use Bee_Context_Config_BeanDefinitionHolder; +use Bee_Context_Config_IBeanDefinition; +use Bee_Context_Config_RuntimeBeanReference; +use Bee_Context_Support_BeanDefinitionReaderUtils; +use Bee_Context_Xml_ParserContext; +use Bee_MVC_Dispatcher; +use DOMElement; + +/** + * Class ViewResolverBeanDefinitionCreator + * @package Bee\MVC\XmlNamespace + */ +class ViewResolverBeanDefinitionCreator implements \Bee_Context_Xml_Namespace_IBeanDefinitionParser { + + const DEFAULT_VIEW_CONTEXT_BEAN_NAME = '__viewContext'; + + const CONTEXT_LOCATION_PROPERTY_NAME = 'contextLocation'; + + /** + * Enter description here... + * + * @param DOMElement $element + * @param Bee_Context_Xml_ParserContext $parserContext + * @return Bee_Context_Config_IBeanDefinition + */ + function parse(DOMElement $element, Bee_Context_Xml_ParserContext $parserContext) { + $contextDefinition = Bee_Context_Support_BeanDefinitionReaderUtils::createBeanDefinition(null, 'Bee_Context_Xml'); + + $contextLoc = $element->hasAttribute(self::CONTEXT_LOCATION_PROPERTY_NAME) ? $element->getAttribute(self::CONTEXT_LOCATION_PROPERTY_NAME) : false; + if(!$contextLoc) { + $contextLoc = 'conf/views.xml'; + } + $contextDefinition->addConstructorArgumentValue(new Bee_Beans_PropertyValue(0, $contextLoc)); + + $contextDefHolder = new Bee_Context_Config_BeanDefinitionHolder($contextDefinition, self::DEFAULT_VIEW_CONTEXT_BEAN_NAME); + $parserContext->getDelegate()->decorateBeanDefinitionIfRequired($element, $contextDefHolder); + Bee_Context_Support_BeanDefinitionReaderUtils::registerBeanDefinition($contextDefHolder, $parserContext->getRegistry()); + + $resolverDefinition = Bee_Context_Support_BeanDefinitionReaderUtils::createBeanDefinition(null, 'Bee_MVC_ViewResolver_Basic'); + $resolverDefinition->addPropertyValue(new Bee_Beans_PropertyValue('context', new Bee_Context_Config_RuntimeBeanReference(array(self::DEFAULT_VIEW_CONTEXT_BEAN_NAME)))); + $resolverDefHolder = new Bee_Context_Config_BeanDefinitionHolder($contextDefinition, Bee_MVC_Dispatcher::VIEW_RESOLVER_BEAN_NAME); + Bee_Context_Support_BeanDefinitionReaderUtils::registerBeanDefinition($resolverDefHolder, $parserContext->getRegistry()); + } +} Added: trunk/framework/bee-mvc-1.0.xsd =================================================================== --- trunk/framework/bee-mvc-1.0.xsd (rev 0) +++ trunk/framework/bee-mvc-1.0.xsd 2013-08-19 12:52:03 UTC (rev 51) @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> + +<xsd:schema xmlns="http://www.beeframework.org/schema/mvc" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:beans="http://www.beeframework.org/schema/beans" + targetNamespace="http://www.beeframework.org/schema/mvc" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xsd:import namespace="http://www.beeframework.org/schema/beans" + schemaLocation="http://www.beeframework.org/schema/beans/bee-beans-1.2.xsd"/> + + <xsd:annotation> + <xsd:documentation> + <![CDATA[Defines standard configuration elements for the MVC framework.]]></xsd:documentation> + </xsd:annotation> + + <xsd:element name="viewresolver"> + <xsd:annotation> + <xsd:documentation><![CDATA[ + Configures a view resolver based on an XML context. + ]]></xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:complexContent> + <xsd:extension base="beans:identifiedType"> + <xsd:attribute name="contextLocation" type="xsd:string"/> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + </xsd:element> + +</xsd:schema> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |