1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。
2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。 门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。
++++++++++++++++++++++++++++++++++++++++
Invalid controller specified (zframework.zhjp) ——>ZFramework.zhjp
备注:注意大小写
./须同时出现
++++++++++++++++++++++++++++++++++++++++
一. render
render使用来调视图用的,不会调用ACTION内部代码
不指定render
$this->render() ;
结果: {当前Module}/{当前Controller}/{当前Action}.phtml
$this->render('bar') ;
结果: {当前Module}/{当前Controller}/bar.phtml
二. forward
$this->_forward('bar') ;
结果: {当前Module}/{当前Controller}/bar
$this->_forward('bar', 'foo') ;
结果: {当前Module}/foo/bar
$this->_forward('bar', 'foo', 'hoge') ;
结果: hoge/foo/bar
$params = array(
'a' => '1',
'b' => '2'
) ;
$this->_forward('bar', 'foo', 'hoge', $params) ;
结果: /hoge/foo/bar/a/1/b/2
三. redirect
$this->_redirect('/hoge') ;
结果: /hoge
$this->_redirect('/hoge/foo') ;
结果: /hoge/foo
$this->_redirect('/hoge/foo/bar') ;
结果: /hoge/foo/bar
$this->_redirect('http://localhost/hoge/foo/bar') ;
结果: http://localhost/hoge/foo/bar
$this->_redirect('http://localhost/hoge/foo/bar?a=1&b=2') ;
结果: http://localhost/hoge/foo/bar?a=1&b=2
四. 特殊情况
不使用 layout
结果: $this->_helper->layout()->disableLayout() ;
不使用 view
结果: $this->_helper->viewRenderer->setNoRender() ;