随笔分类 -  PHP框架

摘要:ThinkPHP的底层提供了一些有用的系统调试类:ThinkPHP\Extend\Library\ORG\Util\Debug.class.phpclass Debug { static private $marker = array(); /** +---------------------------------------------------------- * 标记调试位 +---------------------------------------------------------- * @access public +--... 阅读全文
posted @ 2013-07-31 17:06 水月灵心 阅读(1324) 评论(0) 推荐(1)
摘要:和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面,如下图所示:只有在调试模式下面才能显示具体的错误信息,如果在部署模式下面,你可能看到的是一个统一错误的提示文字,如果你试图在部署模式下访问一个不存在的模块或者操作,会发送404错误。调试模式下面一旦系统发生严重错误会自动抛出异常,也可以用ThinkPHP定义的throw_exception方法手动抛出异常。throw_exception 抛出异常用法throw_exception($msg, $type='ThinkException', $code=0)参数msg(必须):要抛出的 阅读全文
posted @ 2013-07-24 15:23 水月灵心 阅读(573) 评论(0) 推荐(0)
摘要:要使用验证码,需要导入扩展类库中的ORG.Util.Image类库和ORG.Util.String类库。我们通过在在模块类中增加一个verify方法来用于显示验证码:Public function verify(){ import('ORG.Util.Image'); Image::buildImageVerify();}Image类的buildImageVerify方法用于生成验证码,buildImageVerify 生成图像验证码用法buildImageVerify($length,$mode,$type,$width,$height,$verifyName)用法lengt 阅读全文
posted @ 2013-04-30 11:20 水月灵心 阅读(270) 评论(0) 推荐(0)
摘要:关联模型的底层在:ThinkPHP包\Extend\Model\RelationModel.class.php关联关系通常我们所说的关联关系包括下面三种:一对一关联 :ONE_TO_ONE,包括HAS_ONE和BELONGS_TO一对多关联 :ONE_TO_MANY,包括HAS_MANY和BELONGS_TO多对多关联 :MANY_TO_MANY关联关系必然有一个参照表,例如:有一个员工档案管理系统项目,这个项目要包括下面的一些数据表:基本信息表、员工档案表、部门表、项目组表、银行卡表(用来记录员工的银行卡资料)。这些数据表之间存在一定的关联关系,我们以员工基本信息表为参照来分析和其他表之间的 阅读全文
posted @ 2013-04-27 17:02 水月灵心 阅读(566) 评论(0) 推荐(0)
摘要:表单令牌ThinkPHP内置了表单令牌验证功能,可以有效防止表单的重复提交等安全防护。表单令牌验证相关的配置参数有:'TOKEN_ON'=>true, // 是否开启令牌验证'TOKEN_NAME'=>'__hash__', // 令牌验证的表单隐藏字段名称'TOKEN_TYPE'=>'md5', //令牌哈希验证规则 默认为MD5'TOKEN_RESET'=>true, //令牌验证出错后是否重置令牌 默认为true如果开启表单令牌验证功能,系统会自动在带有表单的模板文件里 阅读全文
posted @ 2013-04-25 22:25 水月灵心 阅读(770) 评论(0) 推荐(0)
摘要:1 常用布局方法使用前置和后置方法,达到网页分层布局使用多次display来达到网页分层布局includeLAYOUT模板继承2 模版文件引入(包含文件)可以使用Include标签来包含外部的模板文件,使用方法如下: include标签(包含外部模板文件)闭合 闭合标签属性 file(必须):要包含的模板文件,支持变量示例:1、 使用完整文件名包含格式:<include file="完整模板文件名" />例如:<include file="./Tpl/default/Public/header.html" />这种情况下,模板文件 阅读全文
posted @ 2013-04-21 12:02 水月灵心 阅读(857) 评论(0) 推荐(0)
摘要:1.1 模版引擎,模版定义为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:模板目录/[分组名/][模板主题/]模块名/操作名+模板后缀模板目录默认是项目下面的Tpl, 当定义分组的情况下,会按照分组名分开子目录,新版模板主题默认是空(表示不启用模板主题功能),模板主题功能是为了多模板切换而设计的,如果有多个模板主题的话,可以用DEFAULT_THEME参数设置默认的模板主题名。在每个模板主题下面,是以项目的模块名为目录,然后是每个模块的具体操作模板文件,例如:User模块的add操作 对应的模板文件就应该是:Tpl/User/add.html模板 阅读全文
posted @ 2013-04-20 20:28 水月灵心 阅读(1608) 评论(0) 推荐(0)
摘要:1.1 DEBUG模式开启启调试模式很简单,只需要在入口文件中增加一行常量定义代码: define('APP_DEBUG', true);在完成开发阶段部署到生产环境后,只需要删除调试模式定义代码即可切换到部署模式。开启调试模式后,系统会首先加载系统默认的调试配置文件,然后加载项目的调试配置文件,调试模式的优势在于:开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;关闭模板缓存,模板修改可以即时生效;记录SQL日志,方便分析SQL;关闭字段缓存,数据表字段修改不受缓存影响;严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署问题;可以方便用于开 阅读全文
posted @ 2013-04-20 13:38 水月灵心 阅读(783) 评论(0) 推荐(0)
摘要:通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。下面是Apache的配置过程,可以参考下:1、httpd.conf配置文件中加载了mod_rewrite.so模块2、AllowOverride None 将None改为 All(只需要更改项目目录的一个就可以)3、确保URL_MODEL设置为24、把下面的内容保存为.htaccess文件放到入口文件的同级目录下<IfModule mod_rewrite.c>RewriteEngin 阅读全文
posted @ 2013-04-19 22:09 水月灵心 阅读(210) 评论(0) 推荐(0)
摘要:1.1 项目部署方案-需求分析一、了解需求:01、网站是否为动态,还是静态,网站程序语言02、是否对框架有所要求,代码完成的时间确定;03、数据库要求03、对制作的网页的版面,功能进行详细分析商讨二、制定网站建设方案:01、制定网站建设初步方案(功能图表);02、和相关部门主管沟通方案,并提出相关看法及意见、建议等,然后进行协商、修改、补充,以达成共识;三、(如需要完成前端,先提交前端设计):01、提交前端设计,版面修改02、程序员和前端沟通功能问题;四、实现功能:01、根据需求建库02、根据功能构建代码五、后期测试:01、开发完成,上传测试服务器;02、测试并提出相关意见与想法、建议等反馈; 阅读全文
posted @ 2013-04-18 16:32 水月灵心 阅读(631) 评论(0) 推荐(0)
摘要:首先,你需要创建一个可以处理静态内容请求的控制器类。控制器,是一个用来代理完成某项任务的PHP类,它充当基于MVC架构应用程序的“粘合剂”(译者注:控制器用来粘合/协调不同模型和视图。随着教程的深入,你会更深刻的理解这一点)。举例来说,假设存在某个针对如下URL的请求: http://example.com/news/latest/10 仔细观察此URL地址,我们可以猜测它所完成的任务:存在某个类名为"news"的控制器,调用此类下的"latest"方法用来提取10条最新新闻,然后解析显示在最终浏览器页面上。在基于MVC架构思想的应用程序中,我们经常会见 阅读全文
posted @ 2013-04-17 11:21 水月灵心 阅读(936) 评论(0) 推荐(1)
摘要:用到的基本东西:1.修改配置文件config.php$config['encryption_key']2.加载session类$this->load->library('session');3.创建session$this->session->set_userdata($array);4.查看session$this->session->userdata('session名');5.删除session$this->session->unset_userdata('session名') 阅读全文
posted @ 2013-04-16 17:07 水月灵心 阅读(396) 评论(0) 推荐(1)
摘要:一. PHP上传原理view/up.php<html><form action="/ci/index.php/upload/up" method="post" enctype="multipart/form-data"> <input type="file" name="upfile"><input type="submit" name="sub" value="提交"></form 阅读全文
posted @ 2013-04-15 22:25 水月灵心 阅读(1677) 评论(0) 推荐(1)
摘要:利用CI创建模型1、模型的存放目录项目目录/models/2、创建目录就是创建一个类文件必须继承数据核心类CI_Model,同时重载父类中的构造方法class Model_name extends CI_Model{ function __construct() { parent::__construct(); }}3. CI为我们提供了一个非常强大和简单的数据库函数类Active Record 类\system\database\DB_active_rec.php如何在模型中使用Active Record 类中的方法呢$this->db->方法名()例如:$t... 阅读全文
posted @ 2013-04-15 16:20 水月灵心 阅读(528) 评论(0) 推荐(0)
摘要:视图与控制器的关系:控制器:·调用视图控制器需要根据用户访问的不同方法,去调用相关的视图·传送数据控制器需要向视图中传送需要展示给用户的业务数据2. 视图:简而言之,一个视图就是一个网页,或是网页的部分,如头部,底部,侧边栏等等CI中的视图存放在:\application\views\创建一个视图:找到目录: 项目目录/view/创建文件:文件后缀:一般用.php写代码:HTML代码调用一个视图:调用一个视图$this->load->view('视图文件名');//如果视图文件是.PHP结尾的,可以不写后缀,否则要加后缀2. 调用多个视图$thi 阅读全文
posted @ 2013-04-11 21:41 水月灵心 阅读(440) 评论(0) 推荐(0)
摘要:控制器:1、到底什么是控制器简而言之,一个控制器就是一个类文件用户通过URL访问的就是某个控制器类中的具体成员方法并由这个方法中的代码去做某些操作2、如何创建控制器a.创建文件夹\application\controllersb.类名必须以大写字母开头c.继承核心的控制器类CI_Controller3、创建方法a.就是创建一个成员方法function()b.默认访问的是index方法4、URL如何传递参数给方法方法段后的按次序传入方法中的形式参数 阅读全文
posted @ 2013-04-11 17:12 水月灵心 阅读(273) 评论(0) 推荐(0)
摘要:•MVC的组成部分模型 (Model)代表你的数据结构。通常来说,你的模型类将包含取出、插入、更新你的数据库资料这些功能。视图 (View)是展示给用户的信息。一个视图通常是一个网页,但是在 CodeIgniter 中,一个视图也可以是一个页面片段,如页头、页尾。它还可以是一个 RSS 页面,或任何其它类型的“页面”。控制器 (Controller)是模型、视图以及其他任何处理 HTTP 请求所必须的资源之间的中介,并生成网页。目录结构:application :项目目录cache :存放数据或模板缓存文件config :配置文件目录controllers :MVC的控制器,继承CI_Cont 阅读全文
posted @ 2013-04-10 22:07 水月灵心 阅读(1141) 评论(0) 推荐(0)