Rajout d'une aide d'action MessageGetter
[zf2.biz/application_blanche.git] / vendor / zf2biz / Custom / Mvc / Controller / Plugin / MessageGetter.php
diff --git a/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter.php b/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter.php
new file mode 100644 (file)
index 0000000..01d8afa
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+namespace Custom\Mvc\Controller\Plugin;
+
+use Zend\Mvc\Controller\Plugin\AbstractPlugin;
+
+use Zend\Session\Container;
+use Zend\Session\SessionManager;
+use Zend\ServiceManager\ServiceManagerAwareInterface;
+use Zend\ServiceManager\ServiceManager;
+
+
+class MessageGetter extends AbstractPlugin implements ServiceManagerAwareInterface
+{
+
+    /**
+     * @var ServiceManager
+     */
+    protected $serviceManager;
+    
+    protected $messages = array();
+
+
+    public function __invoke()
+    {
+        $manager = new SessionManager();
+        $container = new Container('FlashMessenger', $manager);
+        $namespaces = array();
+
+        foreach ($container as $namespace => $messages) {
+            $this->messages[$namespace] = $messages->toArray();
+            $namespaces[] = $namespace;
+        }
+        foreach ($namespaces as $namespace) {
+            unset($container->{$namespace});
+        }
+
+        return $this->messages;
+    }
+
+    /**
+     * Retrieve service manager instance
+     *
+     * @return ServiceManager
+     */
+    public function getServiceManager()
+    {
+        return $this->serviceManager->getServiceLocator();
+    }
+
+    /**
+     * Set service manager instance
+     *
+     * @param ServiceManager $locator
+     * @return void
+     */
+    public function setServiceManager(ServiceManager $serviceManager)
+    {
+        $this->serviceManager = $serviceManager;
+    }
+
+}
+