`

Kohana 控制器继承使用技巧一则

    博客分类:
  • PHP
PHP 
阅读更多
Kohana 控制器继承使用技巧一则

在需要对用户进行验证的网站中,我们需要对每一个需要权限验证的页面进行判断,这在 Kohana 中很容易就可以做到。

利用 Kohana 的控制器继承,我们可以很方便对页面的访问权限进行控制,以下就是一个简单的例子。

假设我们有一个页面 A,用户访问页面 A 必须进行登录。

首先,我们构造一个基本控制器 Susan,这个控制器继承于 Kohana 的 Controller,它的作用是对通过该控制器的请求做出分析,判断该请求是否有效:


class Controller_Susan extends Controller {  
  
    public function before()  
    {  
        $this->is_login();  
    }  
  
    public function is_login()  
    {  
        $session = Session::instance();  
        if ( ! $session->get( 'is_login' ) )  
        {  
            $this->request->redirect( 'login' );  
        }  
    }  
  
}  

下面我们来构造页面 A 的控制器 Memo,这个控制器继承刚才我们创建的控制器 Susan:


class Controller_Memo extends Controller_Susan {  
  
    public function before()  
    {  
        parent::before();  
    }  
  
    public function action_index()  
    {  
        echo 'Hello, you can <a href="/login/do">Log out</a> now !';  
    }  
  
}  

接下来就是登录控制器 Login,由于这个控制器不需要对用户是否登录做出判断,所以我们把它继承 Kohan 的 Controller,而不是 Susan:


class Controller_Login extends Controller {  
  
    public function action_index()  
    {  
        $session = Session::instance();  
  
        if($session->get('is_login', false) == 1)  
        {  
            $this->request->redirect('');  
        }  
  
        echo '<a href="/login/do">Login</a>';  
    }  
  
    public function action_do()  
    {  
        $session = Session::instance();  
  
        if($session->get('is_login', false) == 1)  
        {  
            $session->destroy();  
  
            $this->request->redirect('login');  
        }  
        else  
        {  
            $session->set('is_login', TRUE);  
  
            $this->request->redirect('');  
        }  
    }  
}  

这样,一个简单的权限控制就做好了。
分享到:
评论

相关推荐

    kohana一个php框架

    6. **模块化设计**:Kohana支持模块化开发,可以将应用划分为多个独立的功能模块,每个模块有自己的控制器、模型、视图和配置,这增强了代码的复用性和可扩展性。 7. **URL路由**:Kohana 提供了灵活的URL路由功能...

    kohana 3.3.1.zip

    可以从你的系统,程序或者模块路径的任何地方加载控制器,模型,类库,助手和视图。配置参数可以继承或动态声明覆盖。 5、没有名字空间冲突。类前缀和后缀用来保护名字空间冲突。 6、类的自动加载。Kohana里的所有...

    Kohana v2.2 手册

    5. **模型-视图-控制器(MVC)**:Kohana 强调MVC架构,模型处理数据逻辑,视图负责展示,控制器协调两者,确保业务逻辑和表现层分离。 6. **数据库操作**:Kohana 提供了ORM(对象关系映射)系统,通过...

    kohana3.0 文档资料

    4. **MVC 架构**:遵循模型-视图-控制器(Model-View-Controller)模式,使得代码结构清晰,易于维护。 5. **强大的社区支持**:拥有活跃的社区,提供了丰富的文档和技术支持。 6. **兼容性**:Kohana 3.0 支持 ...

    kohana3.3.1框架教程 -

    Kohana 提供级联式的资源管理,允许从不同位置加载控制器、模型、类库、助手和视图,同时配置参数可以继承或动态覆盖,增加了灵活性。通过类前缀和后缀,Kohana 避免了名字空间的冲突,确保了类的唯一性。 类的自动...

    PHP框架Kohana v3.3.1.zip

    可以从你的系统,程序或者模块路径的任何地方加载控制器,模型,类库,助手和视图。配置参数可以继承或动态声明覆盖。 5、没有名字空间冲突。类前缀和后缀用来保护名字空间冲突。 6、类的自动加载。Kohana里的所有...

    Kohana 3.0 Beginner's Guide

    - **MVC架构**:Kohana采用经典的MVC架构,将数据处理逻辑(模型)、用户界面(视图)和用户交互控制(控制器)分离,使开发更加模块化、清晰。 - **路由机制**:Kohana提供了一套灵活的路由系统,可以根据URL自定义...

    kohana3.0教程-高清英文版

    - 模块化的应用程序结构:解释如何组织代码,理解控制器、模型和视图(MVC)的概念。 - 数据库交互:介绍 ORM(对象关系映射)工具的使用方法,以及数据库迁移的实现。 - 路由与 URL 结构:探讨 Kohana 如何处理 ...

    Kohana中文手册

    在阅读《Kohana 中文手册》时,你将学习到如何安装和配置 Kohana,创建和管理控制器、模型和视图,以及如何使用数据库、路由、表单验证等关键功能。此外,手册还将介绍如何扩展框架以满足特定需求,如编写自定义助手...

    kohana-3.2.2

    4. **创建控制器**:编写控制器类,处理用户请求,调用模型进行数据操作,并将结果传递给视图进行渲染。 5. **设计模型**:定义数据模型,封装数据库操作,提供增删改查等方法。 6. **构建视图**:创建视图文件,...

    kohana下分页模块

    1. **实例化分页对象**:在你的控制器中,首先创建一个`Kohana_Pagination`实例,传入数据源(通常是查询语句)和分页配置。 ```php $items_per_page = 20; $pagination = Pagination::factory(array( 'total_items...

    Kohana_3_中文文档手册

    你将学习到如何创建控制器、模型和视图,并理解它们之间的交互。 4. **路由与URL**:Kohana 3 提供了灵活的路由系统,允许开发者自定义URL模式。手册会指导你如何配置路由规则,实现友好的URL。 5. **数据库操作**...

    kohana3手册

    2. **Kohana路由**:路由是Kohana3中连接URL与控制器的重要部分。开发者可以自定义路由规则,将特定的URL映射到对应的控制器方法,实现灵活的URL管理和页面调度。 3. **Kohana模板**:Kohana3使用Template View系统...

    Kohana_v2.2

    Kohana是PHP5的开发框架,基于MVC架构。MVC将应用逻辑分开,让我们的代码更加干净并且更快的找到bug。 ...它的主要特点如下:高安全性很轻巧容易学习使用MVC模式100%UTF-8编码松耦合结构易于扩展。

    KOHANA 2.4 版本

    1. MVC架构:Kohana 遵循模型-视图-控制器(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高代码可读性和可维护性。开发者可以轻松创建和管理不同的控制器来处理HTTP请求,模型用于处理数据,而视图则负责...

    PHP框架Kohana v3.3.1

    3. 创建你的第一个控制器,通常位于`APPPATH/classes/controller`目录下。 4. 设置路由规则,这将在`SYSPATH/classes/kohana/core.php`或`APPPATH/bootstrap.php`中完成。 5. 创建相应的模型和视图文件。 6. 在...

    kohana-3.3.6

    2. **简洁的结构**:Kohana 遵循 MVC 设计模式,将应用程序的逻辑分为模型(Model)、视图(View)和控制器(Controller)。这使得代码组织清晰,易于维护。同时,Kohana 还使用了模块化设计,允许开发者轻松地添加...

    kohana3操作手册

    kohana3 用户手册kohana3 用户手册kohana3 用户手册

    kohana开发文档

    - **自定义构造函数**:可以定义`before()`和`after()`方法来自定义控制器的行为,分别在执行action之前和之后调用。 #### 四、Models **4.1 模型** - **定义**:模型类代表数据库表或数据集,负责处理业务逻辑和...

Global site tag (gtag.js) - Google Analytics