* Adding API annotations to classes
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / MVC / View / AbstractView.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
6 * All rights reserved
7 *
8 * This class is a backport of the corresponding class of FLOW3.
9 * All credits go to the v5 team.
10 *
11 * This script is part of the TYPO3 project. The TYPO3 project is
12 * free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * The GNU General Public License can be found at
18 * http://www.gnu.org/copyleft/gpl.html.
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27
28 /**
29 * An abstract View
30 *
31 * @package Extbase
32 * @subpackage MVC\View
33 * @version $ID:$
34 * @api
35 */
36 abstract class Tx_Extbase_MVC_View_AbstractView implements Tx_Extbase_MVC_View_ViewInterface {
37
38 /**
39 * @var Tx_Extbase_MVC_Controller_ControllerContext
40 * @api
41 */
42 protected $controllerContext;
43
44 /**
45 * @var array view data collection.
46 * @see assign()
47 */
48 protected $viewData = array();
49
50 /**
51 * Sets the current controller context
52 *
53 * @param Tx_Extbase_MVC_Controller_ControllerContext $controllerContext
54 * @return void
55 */
56 public function setControllerContext(Tx_Extbase_MVC_Controller_ControllerContext $controllerContext) {
57 $this->controllerContext = $controllerContext;
58 }
59
60 /**
61 * Add a variable to $this->viewData.
62 * Can be chained, so $this->view->assign(..., ...)->assign(..., ...); is possible,
63 *
64 * @param string $key Key of variable
65 * @param object $value Value of object
66 * @return Tx_Extbase_MVC_View_ViewInterface an instance of $this, to enable chaining.
67 * @api
68 */
69 public function assign($key, $value) {
70 $this->viewData[$key] = $value;
71 return $this;
72 }
73
74 /**
75 * Add multiple variables to $this->viewData.
76 *
77 * @param array $values array in the format array(key1 => value1, key2 => value2).
78 * @return void
79 * @api
80 */
81 public function assignMultiple(array $values) {
82 foreach($values as $key => $value) {
83 $this->assign($key, $value);
84 }
85 }
86
87 /**
88 * Initializes this view.
89 *
90 * Override this method for initializing your concrete view implementation.
91 *
92 * @return void
93 * @api
94 */
95 public function initializeView() {
96 }
97 }
98 ?>