fix travis build
[GitHub/Stricted/Domain-Control-Panel.git] / vendor / Zend / Mvc / View / Console / CreateViewModelListener.php
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10 namespace Zend\Mvc\View\Console;
11
12 use Zend\EventManager\AbstractListenerAggregate;
13 use Zend\EventManager\EventManagerInterface as Events;
14 use Zend\Mvc\MvcEvent;
15 use Zend\Stdlib\ArrayUtils;
16 use Zend\View\Model\ConsoleModel;
17
18 class CreateViewModelListener extends AbstractListenerAggregate
19 {
20 /**
21 * {@inheritDoc}
22 */
23 public function attach(Events $events, $priority = 1)
24 {
25 $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH, [$this, 'createViewModelFromString'], -80);
26 $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH, [$this, 'createViewModelFromArray'], -80);
27 $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH, [$this, 'createViewModelFromNull'], -80);
28 }
29
30 /**
31 * Inspect the result, and cast it to a ViewModel if a string is detected
32 *
33 * @param MvcEvent $e
34 * @return void
35 */
36 public function createViewModelFromString(MvcEvent $e)
37 {
38 $result = $e->getResult();
39 if (!is_string($result)) {
40 return;
41 }
42
43 // create Console model
44 $model = new ConsoleModel;
45
46 // store the result in a model variable
47 $model->setVariable(ConsoleModel::RESULT, $result);
48 $e->setResult($model);
49 }
50
51 /**
52 * Inspect the result, and cast it to a ViewModel if an assoc array is detected
53 *
54 * @param MvcEvent $e
55 * @return void
56 */
57 public function createViewModelFromArray(MvcEvent $e)
58 {
59 $result = $e->getResult();
60 if (!ArrayUtils::hasStringKeys($result, true)) {
61 return;
62 }
63
64 $model = new ConsoleModel($result);
65 $e->setResult($model);
66 }
67
68 /**
69 * Inspect the result, and cast it to a ViewModel if null is detected
70 *
71 * @param MvcEvent $e
72 * @return void
73 */
74 public function createViewModelFromNull(MvcEvent $e)
75 {
76 $result = $e->getResult();
77 if (null !== $result) {
78 return;
79 }
80
81 $model = new ConsoleModel;
82 $e->setResult($model);
83 }
84 }