- 浏览: 563573 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (233)
- CSS (12)
- J2SE学习 (16)
- J2EE (6)
- JavaScript (38)
- Struts 1.x (2)
- SQL (9)
- Hibernate (5)
- TYPO3 (1)
- Mysql (10)
- Drupal (14)
- 生活 (10)
- PHP (40)
- Linux (15)
- 口语 (2)
- Magento (8)
- Dotnet (2)
- 正则 (2)
- Android ADB shell (1)
- Android (7)
- HTTP (4)
- Android API (2)
- eclipse (1)
- JAVA (4)
- 数据结构 (3)
- 集合 (1)
- IoC(反向控制) (2)
- 设计模式 (3)
- WebView (2)
- 算法 (6)
- smsniff (1)
- VIM (7)
- iOS (4)
- gcc (2)
- xcode (1)
- Mac (5)
- opencv (3)
- cmake (2)
- git (1)
- html5 (1)
- audio (1)
- apache (3)
- shell (1)
- 工作感悟 (1)
最新评论
-
jiyilee:
的确,不少命令都不能用,不方便啊。。
Apple:如何在iphone、ipad上安装一些常用命令行命令 -
idong杨:
[url][url][url][url][url][/url] ...
php中将SimpleXMLElement Object数组转化为普通数组 -
idong杨:
...
php中将SimpleXMLElement Object数组转化为普通数组 -
wcily123:
递归删除指定目录下的.git文件find . -name .g ...
Linux上批量删除.svn目录 -
yilinsitian:
受教了,好像Socket通信超时机制 还没有说吧
Android·HTTP超时机制
Kohana 控制器继承使用技巧一则
在需要对用户进行验证的网站中,我们需要对每一个需要权限验证的页面进行判断,这在 Kohana 中很容易就可以做到。
利用 Kohana 的控制器继承,我们可以很方便对页面的访问权限进行控制,以下就是一个简单的例子。
假设我们有一个页面 A,用户访问页面 A 必须进行登录。
首先,我们构造一个基本控制器 Susan,这个控制器继承于 Kohana 的 Controller,它的作用是对通过该控制器的请求做出分析,判断该请求是否有效:
下面我们来构造页面 A 的控制器 Memo,这个控制器继承刚才我们创建的控制器 Susan:
接下来就是登录控制器 Login,由于这个控制器不需要对用户是否登录做出判断,所以我们把它继承 Kohan 的 Controller,而不是 Susan:
这样,一个简单的权限控制就做好了。
在需要对用户进行验证的网站中,我们需要对每一个需要权限验证的页面进行判断,这在 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(''); } } }
这样,一个简单的权限控制就做好了。
发表评论
-
UTF-8编码问题编码长度问题
2013-07-22 11:46 5720UTF-8编码问题编码长度问题 UTF-8经常被用于文本文 ... -
Linux 快速安装 LAMP环境
2012-08-20 11:47 5059Linux 快速安装 LAMP环境 #检查一下系统更新 ... -
在命令行下运行 PHP 脚本
2012-08-10 19:06 1054<?php fwrite(STDOUT, &quo ... -
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2012-08-10 15:26 1359POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的 ... -
深入理解ob_flush和flush的区别
2012-08-09 15:45 1126[转] http://www.laruence.com/201 ... -
[转]OS X Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程
2012-08-09 11:49 1199OS X Mountain Lion 系统配置 ... -
PHP file_get_contents 获取请求返回头信息
2012-07-06 19:57 4587PHP file_get_contents 获取请求返回头信息 ... -
vim lookupfile插件tagfile 生成
2012-06-04 09:29 2310<?php /** 命令 :l ... -
php中将SimpleXMLElement Object数组转化为普通数组
2012-02-27 18:22 33420php中将SimpleXMLElement Object数组转 ... -
PHP 修改HTTP头 --Modify HTTP Headers
2011-11-25 11:50 1735Modify HTTP Headers // See rel ... -
Redis 常用命令 (php)
2011-05-28 13:25 2575Redis常用命令一 2011年05 ... -
一道很纠结的php面试题
2011-04-27 14:22 999$a = 1; $b = 'a'; $a = ... -
PHP的小技巧[转]
2011-04-26 14:00 874PHP的小技巧 好象,大多时候,我们对于字符串的比较都是采用 ... -
服务器状态代码含义
2011-04-25 01:36 841服务器状态代码含义 ... -
$_SERVER变量的中文翻译
2011-04-25 00:59 1037服务器变量 $_SERVER 详解: 1、$_SESSION ... -
何为RBAC
2011-04-24 22:18 1350角色访问控制(RBAC)引入了Role的概念,目的是为了隔离U ... -
PHP负载均衡
2011-04-24 22:07 911过去当运行一个大的web应用时候意味着运行一个大型的web服务 ... -
PHP去除数组中的空值
2011-04-24 21:17 1208foreach( $arr as $k=>$v){ ... -
PHP 中的stdClass概述
2011-04-24 20:43 858很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一 ... -
PHP字符串三种定义方式
2011-04-24 20:12 6904PHP的字符串有三种定义方式:单引号 、双引号 、定界符 ...
相关推荐
6. **模块化设计**:Kohana支持模块化开发,可以将应用划分为多个独立的功能模块,每个模块有自己的控制器、模型、视图和配置,这增强了代码的复用性和可扩展性。 7. **URL路由**:Kohana 提供了灵活的URL路由功能...
可以从你的系统,程序或者模块路径的任何地方加载控制器,模型,类库,助手和视图。配置参数可以继承或动态声明覆盖。 5、没有名字空间冲突。类前缀和后缀用来保护名字空间冲突。 6、类的自动加载。Kohana里的所有...
5. **模型-视图-控制器(MVC)**:Kohana 强调MVC架构,模型处理数据逻辑,视图负责展示,控制器协调两者,确保业务逻辑和表现层分离。 6. **数据库操作**:Kohana 提供了ORM(对象关系映射)系统,通过...
4. **MVC 架构**:遵循模型-视图-控制器(Model-View-Controller)模式,使得代码结构清晰,易于维护。 5. **强大的社区支持**:拥有活跃的社区,提供了丰富的文档和技术支持。 6. **兼容性**:Kohana 3.0 支持 ...
Kohana 提供级联式的资源管理,允许从不同位置加载控制器、模型、类库、助手和视图,同时配置参数可以继承或动态覆盖,增加了灵活性。通过类前缀和后缀,Kohana 避免了名字空间的冲突,确保了类的唯一性。 类的自动...
可以从你的系统,程序或者模块路径的任何地方加载控制器,模型,类库,助手和视图。配置参数可以继承或动态声明覆盖。 5、没有名字空间冲突。类前缀和后缀用来保护名字空间冲突。 6、类的自动加载。Kohana里的所有...
- **MVC架构**:Kohana采用经典的MVC架构,将数据处理逻辑(模型)、用户界面(视图)和用户交互控制(控制器)分离,使开发更加模块化、清晰。 - **路由机制**:Kohana提供了一套灵活的路由系统,可以根据URL自定义...
- 模块化的应用程序结构:解释如何组织代码,理解控制器、模型和视图(MVC)的概念。 - 数据库交互:介绍 ORM(对象关系映射)工具的使用方法,以及数据库迁移的实现。 - 路由与 URL 结构:探讨 Kohana 如何处理 ...
在阅读《Kohana 中文手册》时,你将学习到如何安装和配置 Kohana,创建和管理控制器、模型和视图,以及如何使用数据库、路由、表单验证等关键功能。此外,手册还将介绍如何扩展框架以满足特定需求,如编写自定义助手...
4. **创建控制器**:编写控制器类,处理用户请求,调用模型进行数据操作,并将结果传递给视图进行渲染。 5. **设计模型**:定义数据模型,封装数据库操作,提供增删改查等方法。 6. **构建视图**:创建视图文件,...
1. **实例化分页对象**:在你的控制器中,首先创建一个`Kohana_Pagination`实例,传入数据源(通常是查询语句)和分页配置。 ```php $items_per_page = 20; $pagination = Pagination::factory(array( 'total_items...
你将学习到如何创建控制器、模型和视图,并理解它们之间的交互。 4. **路由与URL**:Kohana 3 提供了灵活的路由系统,允许开发者自定义URL模式。手册会指导你如何配置路由规则,实现友好的URL。 5. **数据库操作**...
2. **Kohana路由**:路由是Kohana3中连接URL与控制器的重要部分。开发者可以自定义路由规则,将特定的URL映射到对应的控制器方法,实现灵活的URL管理和页面调度。 3. **Kohana模板**:Kohana3使用Template View系统...
Kohana是PHP5的开发框架,基于MVC架构。MVC将应用逻辑分开,让我们的代码更加干净并且更快的找到bug。 ...它的主要特点如下:高安全性很轻巧容易学习使用MVC模式100%UTF-8编码松耦合结构易于扩展。
1. MVC架构:Kohana 遵循模型-视图-控制器(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高代码可读性和可维护性。开发者可以轻松创建和管理不同的控制器来处理HTTP请求,模型用于处理数据,而视图则负责...
3. 创建你的第一个控制器,通常位于`APPPATH/classes/controller`目录下。 4. 设置路由规则,这将在`SYSPATH/classes/kohana/core.php`或`APPPATH/bootstrap.php`中完成。 5. 创建相应的模型和视图文件。 6. 在...
2. **简洁的结构**:Kohana 遵循 MVC 设计模式,将应用程序的逻辑分为模型(Model)、视图(View)和控制器(Controller)。这使得代码组织清晰,易于维护。同时,Kohana 还使用了模块化设计,允许开发者轻松地添加...
kohana3 用户手册kohana3 用户手册kohana3 用户手册
- **自定义构造函数**:可以定义`before()`和`after()`方法来自定义控制器的行为,分别在执行action之前和之后调用。 #### 四、Models **4.1 模型** - **定义**:模型类代表数据库表或数据集,负责处理业务逻辑和...