[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.
|