我已經創建了自己的MVC框架,並且很好奇其他框架如何將屬性從「控制器」發送到「視圖」。 Zend公司確實沿$this->view->name = 'value';
我的代碼行的東西是:PHP重載,單例實例
文件:services_hosting.php
class services_hosting extends controller {
function __construct($sMvcName) {
parent::__construct($sMvcName);
$this->setViewSettings();
}
public function setViewSettings() {
$p = new property;
$p->banner = '/path/to/banners/home.jpg';
}
}
文件:Controller.php這樣
class controller {
public $sMvcName = "home";
function __construct($sMvcName) {
if ($sMvcName) {
$this->sMvcName = $sMvcName;
}
include('path/to/views/view.phtml');
}
public function renderContent() {
include('path/to/views/'.$this->sMvcName.'.phtml');
}
}
文件:property.php
class property {
private $data = array();
protected static $_instance = null;
public static function getInstance() {
if (null === self::$_instance) {
self::$_instance = new self();
}
return self::$_instance;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
}
public function __isset($name) {
return isset($this->data[$name]);
}
public function __unset($name) {
unset($this->data[$name]);
}
}
在我的services_hosting.phtml「查看」文件中,我有:
<img src="<?php echo $this->p->banner ?>" />
這只是行不通的。我在做一些根本性的錯誤,或者我的邏輯不正確?目前我似乎正在圈圈。任何幫助將非常感激。
你的前端控制器是什麼樣的?我非常喜歡symfony2用響應對象處理這個問題的方式。請參閱http://symfony.com/doc/2.0/book/http_fundamentals.html – shapeshifter
重載和單例通常是一個衝突的概念。考慮放棄單身人士,看看你的問題是否消失。如果您需要該類的單個對象實例,請立即將它們存儲在全局變量或全局數組中。 – hakre
@hakre最初在我的。PHTML我: '$ P =屬性::的getInstance();' 則: ' jamalali81