CI/THINKPHP
文章平均质量分 89
ci thinkphp
zhexiao27
Keep going.
展开
-
CodeIgniter笔记1
URI路由一个典型的通配符路由看起来是这样的:$route['product/(:num)'] = "catalog/product_lookup";在一个路由中,数组的键包含着被匹配的URI,而数组的值包含着路由将被重定向的目的地.在上面的例子中,如果单词“product”出现在URL的第一个部分中,而且数字(:num)出现在URI的第二个部分中,"catalog"类和"product原创 2013-03-28 21:56:33 · 521 阅读 · 0 评论 -
ThinkPHP3.1新特性:页面压缩输出…
现在大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,由于3.0版本没有内置页面压缩输出功能,所以一般来说,需要自己在入口文件中添加: ob_start('ob_gzhandler'); 但是由于服务器环境的不同,有时候这个配置会和php.ini文件中的zlib压缩配置冲突。3.1新版则内置了页面压缩输出功能,不需要再手动添加 ob_gzhandler代码,增加原创 2013-03-28 21:57:20 · 509 阅读 · 0 评论 -
ThinkPHP3.1新特性:Action参数绑…
Action参数绑定功能提供了URL变量和操作方法的参数绑定支持,这一功能可以使得你的操作方法定义和参数获取更加清晰,也便于跨模块调用操作方法了。这一新特性对以往的操作方法使用没有任何影响,你也可以用新的方式来改造以往的操作方法定义。 Action 参数绑定的原理是把URL中的参数(不包括分组、模块和操作地址)和控制器的操作方法中的参数进行绑定。例如,我们给Blog模块定义了两个操作方法 re原创 2013-03-28 21:57:37 · 610 阅读 · 0 评论 -
ThinkPHP3.1新特性: 多层MVC支持
ThinkPHP基于MVC(Model-View-Controller,模型-视图-控制器)模式,不过均支持多层(multi-Layer)设计。 模型(Model)层:默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要求,从3.1开始 推出了多层Model的支持,设计思路很简单,不同的模型层仍然都继承自系统的Model类,但是在目录结构和命名规范上做了原创 2013-03-28 21:57:41 · 587 阅读 · 0 评论 -
ThinkPHP3.1快速入门(13)自动完…
自动完成是ThinkPHP提供用来完成数据自动处理和过滤的方法,使用create方法创建数据对象的时候会自动完成数据处理。因此,在ThinkPHP使用create方法来创建数据对象是更加安全的方式,而不是直接通过add或者save方法实现数据写入。规则定义自动完成通常用来完成默认字段写入,安全字段过滤以及业务逻辑的自动处理等,和自动验证的定义方式类似,自动完成的定义也支持静态定义和原创 2013-03-28 21:58:35 · 672 阅读 · 0 评论 -
ThinkPHP3.1快速入门(16)安全
应用部署建议首先,我们建议在条件允许的情况下,把框架目录和项目目录都部署在非WEB访问目录下面,ThinkPHP的访问机制完全支持框架和项目的非WEB目录访问,你只需要把入口文件和资源(主要是指JS、样式和图片文件)目录放置于WEB目录下面即可。因此,建议的部署目录如下:index.php 项目入口文件Public/ 项目资源文件目录 Js/ JS目录 Css/原创 2013-03-28 21:59:34 · 656 阅读 · 0 评论 -
模块和操作映射
模板和操作映射功能是3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助。因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错。尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动原创 2013-03-28 21:59:37 · 1287 阅读 · 0 评论 -
MAC自定义域名访问nginx服务器的thinkphp项目
1.首先,我们编辑mac系统的hosts文件:sudo vim /etc/hosts在里面增加一个自定义域名,比如:192.168.1.13(本机ubuntu服务器的IP) www.ubuntublog.com2.我nginx安装在 /usr/local/nginx . 然后我们修改配置文件:/usr/local/nginx/conf/nginx.conf 。 部分配置原创 2013-03-29 11:46:06 · 1852 阅读 · 0 评论 -
CodeIgniter笔记3
Cookie Helper装载这个 helper,这个 helper 可以通过下面的方法来装载:$this->load->helper('cookie');可以加载库后直接使用函数:set_cookie().get_cookie().delete_cookie() Email 辅助函数本辅助函数的装载通过如下代码完成: $this->load->help原创 2013-03-28 21:56:38 · 545 阅读 · 0 评论 -
CodeIgniter笔记4
自动连接数据库在使用数据库之前,我们最好将数据库进行自动连接:config/autoload.php自动加载 $autoload['libraries'] = array('database'); 一些常用函数选择数据$this->db->select();允许你在SQL查询中写 SELECT 部分。$this->db->where();$this->db原创 2013-03-28 21:56:40 · 482 阅读 · 0 评论 -
ThinkPHP函数详解:cache方法
cache方法是3.0版本开始新增的缓存管理方法。 cache 用于缓存设置、获取、删除操作用法cache($name, $value='',$expire=0)参数name(必须):如果传入数组 则表示进行缓存初始化,如果是字符串则表示缓存赋值、获取或者删除操作。Value(可选):要设置的缓存值,如果传入null表示删除缓存,默认为空字符原创 2013-03-28 21:57:12 · 1764 阅读 · 0 评论 -
ThinkPHP函数详解:C方法
C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的。ThinkPHP的配置文件采用PHP数组格式定义。由于采用了函数重载设计,所以用法较多,我们来一一说明下。设置参数 C('DB_NAME','thinkphp');表示设置DB_NAME配置参数的值为thinkphp,原创 2013-03-28 21:57:17 · 431 阅读 · 0 评论 -
ThinkPHP3.1快速入门(12)自动验…
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。验证规则数据验证可以进行数据类型、业务规则、安全判断等方面的验证操作。数据验证有两种方式:静态方式:在模型类里面通过$_validate属性定义验证规则。动态方式:使用模型类的validate方法动态创建自动验证规则。无论是什么方式,验证规则的定义是统一的规则,定原创 2013-03-28 21:58:07 · 662 阅读 · 0 评论 -
1.Symfony2 and HTTP Fundamentals
Step1: The Client sends a Request一个HTTP请求如下所示:GET / HTTP/1.1Host: xkcd.comAccept: text/htmlUser-Agent: Mozilla/5.0 (Macintosh)第一行包含2个信息:URI和HTTP Method。HTTP Method有如下几种:GET原创 2013-04-24 02:12:56 · 788 阅读 · 0 评论 -
ThinkPHP函数详解:cookie方法
cookie函数也是一个多元化操作函数,完成cookie的设置、获取和删除操作。 Cookie 用于Cookie 设置、获取、删除操作用法cookie($name, $value='', $option=null)参数name(必须):要操作的cookie变量value(可选):要设置的cookie值option(可选):传入的cookie设原创 2013-03-28 21:57:15 · 566 阅读 · 0 评论 -
field方法的用法总结,或许还有你…
ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来。 1、用于查询在查询操作中field方法是使用最频繁的。 $Model->field('id,title,content')->select();这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值。执行的SQL原创 2013-03-28 21:57:07 · 2839 阅读 · 0 评论 -
CodeIgniter笔记2
Email 类在配置文件中设置 Email 参数如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件。创建一个新文件称为email.php ,添加$config数组在该文件中。然后将该文件保存为config/email.php 它将自动的被使用。如果您保存了一个参数配置文件,就不需要使用$this->email->initialize()函数来初始化参数了. ftp类原创 2013-03-28 21:56:36 · 536 阅读 · 0 评论 -
模板引擎使用详解:包含公共模板
ThinkPHP内置了一个基于XML的编译型模板引擎,本篇开始对其内置的标签做深入的讲解,如果你使用的是Smarty等第三方模板引擎,请忽略。变量的输出我们已经在快速入门的变量输出中做了详细的描述,后面主要讲解变量的输出判断、循环和控制,以及包含公共模板和资源文件等。 包含公共模板include标签使用include标签在当前模板中包含公共模板,例如常见的header和foote原创 2013-03-28 21:57:04 · 1144 阅读 · 0 评论 -
ThinkPHP函数详解:N方法
N方法属于计数器方法,被用于核心的查询、缓存统计的计数和统计。但是其实可以用于应用的其他计数用途,用法比较简单,调用格式: N('计数位置'[,'步进值']) 例如,我们要统计页面中的查询次数,可以用 N('read',1);表示每次执行到该位置都会引起计数器加1,到页面结束之前,我们就可以用 $count = N('read');来统计当前页面执行的查询数目。 如原创 2013-03-28 21:57:10 · 459 阅读 · 0 评论 -
ThinkPHP3.1新特性:多数据库操作…
正常情况下,如果应用只是操作同一个数据库(或者分布式数据库)的话,你只需要在项目配置文件中定义数据库连接信息即可。这里说的多数据库操作一般指的是在一个应用中会操作不同的数据库(包括同类型的和不同类型的数据库),甚至包括动态切换多数据库的情况。早期版本的ThinkPHP切换数据库需要使用高级模型,现在可以更加轻松的解决了。新版对多数据库的支持有下面几种方式,开发人员可以根据实际情况选择合适的原创 2013-03-28 21:57:22 · 844 阅读 · 0 评论 -
ThinkPHP3.1新特性:字段合法性检…
3.1增加了表单提交的字段合法性检测,更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。表单字段合法性检测需要使用create方法创建数据对象的时候才能生效,有两种方式: 一、属性定义可以给模型配置insertFields 和 updateFields属性用于新增和编辑表单设置,使用create方法创建数据对象的时候,不在定义范围内的属性将直接丢弃,避免表单提交非法原创 2013-03-28 21:57:24 · 1115 阅读 · 0 评论 -
3.1的Widget有新玩法啦
3.0版本的Widget对Action和View的支持力度是不够的,虽然能够实现基本的模板渲染输出。3.1版本的发布带来的多层MVC功能,给我们实现Widget的方式带来了新的思路,且看是如何实现吧。 看过ThinkPHP3.1新特性详解:多层MVC的朋友们一定了解,3.1版本可以支持多层的控制器功能,因此我们可以在控制器层增加一层:Widget层。 首先,还是在项目的Lib目录下面创建一原创 2013-03-28 21:57:32 · 511 阅读 · 0 评论 -
ThinkPHP3.1新特性:命名范围
概述命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据。我们来具体了解下这一用法。 定义属性要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。我们首先定义_scope属性: 1 class NewsModel extends Model {2 protected $_scope = array原创 2013-03-28 21:57:34 · 380 阅读 · 0 评论 -
ThinkPHP3.1 常量参考
预定义常量常量说明URL_COMMON=0普通模式 URLURL_PATHINFO=1PATHINFO URLURL_REWRITE=2REWRITE URLURL_COMPAT=3兼容模式 URLHAS_ONE=1HAS_ONE 关联定义B原创 2013-03-28 21:57:39 · 519 阅读 · 0 评论 -
ThinkPHP3.1快速入门(10)缓存
ThinkPHP3.1快速入门(10)缓存在项目中,合理的使用缓存对性能有较大的帮助。ThinkPHP提供了方便的缓存方式,包括数据缓存、静态缓存和查询缓存等,支持包括文件方式、APC、Db、Memcache、Shmop、Sqlite、Redis、Eaccelerator和Xcache在内的动态数据缓存类型,以及可定制的静态缓存规则,并提供了快捷方法进行存取操作。数据缓存在Th原创 2013-03-28 21:57:44 · 609 阅读 · 0 评论 -
模板引擎详解:导入资源文件
传统方式的导入外部JS和CSS等资源文件的方法是直接在模板文件使用:1 type='text/javascript' src='/Public/Js/Util/Array.js'>2 rel="stylesheet" type="text/css" href="/App/Tpl/default/Public/css/style.css" />ThinkPHP的模板引擎提供了专原创 2013-03-28 21:57:46 · 592 阅读 · 0 评论 -
ThinkPHP中结果唯一性的作法
代码如下: $financelist =$finance->relation(true)->where($map)->distinct(true)->field('sid')->order('iddesc')->limit($page->firstRow.','.$page->listRows)->select(); 红色部分就是关键代码,使用这段代码标示在sid这个字段原创 2013-03-28 21:58:39 · 607 阅读 · 0 评论 -
ThinkPHP示例:模板继承
模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换原创 2013-03-28 21:59:31 · 1093 阅读 · 0 评论 -
揭秘ThinkPHP3.1.2版本的独立分组…
ThinkPHP的分组功能是广为开发者使用的一个功能,可以解决中大型项目情况中MVC分层文件过多导致不易管理的问题。而3.1.2版本添加的独立分组功能则为此类问题提出了新的解决思路,更加适合组件化的开发模式。虽然目前3.1.2版本还未正式发布,不过我们可以先了解下这一功能。概述独立分组功能不影响原有分组模式的运行,并且原有分组模式仅需移动目录结构即可完成独立分组模式的升级,无需任原创 2013-03-28 21:59:49 · 816 阅读 · 0 评论 -
Thinkphp在Nginx上的配置
Thinkphp配置文件:如果在Nginx服务器上,最好还是把 'URL_MODEL' => 2, 设置上,不然出现的问题奇奇怪怪。最新更新,在看Nginx文档的时候,发现它自带有pathinfo的处理方法:syntax:fastcgi_split_path_info regex;default:—context:lo原创 2013-03-27 01:55:44 · 3457 阅读 · 0 评论 -
第二章:入门(YII)
创建一个新的应用程序要创建一个新的应用程序,我们将使用框架附带的一个小工具yiic,这是一个命令行工具,可以使你快速的建立一个全新的Yii应用。你不是必须要用此工具才能创建Yii应用,但使用它将节省你大量的时间,并保证文件及目录的结构。要使用此工用创建Yii应用,需要打开一个shell窗口,并进入到系统的一个位置来创建应用程序的目录结构。为了这个演示程序, 我们将确保如下要求:原创 2013-04-27 04:54:59 · 655 阅读 · 0 评论