Protoss/控制器/动作

来自Blueidea
跳转至: 导航搜索
<?php
class defaultController extends controller_abstract
{
    public function __constract()
    {
        parent::__constract();
    }
 
    // 这个是 可以 被浏览器访问的动作
    public function indexAction()
    {
        echo 'Hello world!';
    }
 
    // 这个是 不能 被浏览器访问 的过程方法
    public function index()
    {
 
    }
 
    private function privatemethod()
    {
    }
 
    protect function protectmethod()
    {
    }
}

从上面的这段代码我们可以看到,可以提供前台访问的动作,方法名为“动作名Action”的形式。

例如www.example.com/?c=default&a=index,访问的即是default这个控制器中的index动作。index的动作写作indexAction。

然而,没有带后缀Action的方法,是浏览器所无法访问到的方法,这些方法可以为其他方法或动作提供一些公共的逻辑操作。

我们再来看下面这段代码,这个代码片段演示的是index和hello这两个动作如何利用hello这个方法来进行输出的。是不是有点绕?我们这里说的“hello这个动作”与“hello这个方法是有区别”,“hello这个动作”写作“function helloAction”,“hello这个方法”写作“function hello”。好了,来看代码:
snakezero protosshelloworld.png
上面这段代码中:

  • indexAction和helloAction是可以通过在URI中指定"a=index"和"a=hello"来访问得到的
  • hello是无法通过浏览器访问的,但是却可以在当前控制器中被其他方法所调用


我们如果在相应的templates目录中建立对应的文件,则会载入模板文件,请继续浏览:很给力!自动引入模板