ThinkPHP入门
1.0 ThinkPHP人门
1.1 什么是ThinkPHP
在认识ThinkPHP框架之前,我们需要了解一个概念一-PHIP 框架
PHP框架就是一种可以在项目开发过程中, 提高开发效率,创建更为稳定的程序,并减少开发者重复编写代码的基础架构。下面介绍几个主流的PHP框架。
(1) Zend Framework
Zend Framework是由Zend 公司开发的PHP框架,可用于开发Web程序和服务。ZendFramework采用MVC架构模式来分离应用程序中不同的部分,从而方便程序的开发和维护。
(2 ) CakePHP
CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller 和MVC等著名设计模式的快速开发框架。该框架的主要目标是让各种层次的PHP开发人员都能快速灵活地开发健壮的Web应用。
(3) Yii
Ym是一个基于组件的高性能PHP框架。用于开发大型Web应用Yi采用产格的O0P编写,并有着完善的库引用以及全面的教程。Yii几乎提供了如今Web20应用开发所需要的一切功能, 事实上,Yii也是最有效率的PHP框架之一。
(4) ThinkPHP
ThinkPHP是一个由国人开发的快速最容而且简单的轻量级PHP开发框架,诞生于2006年初。原名FCS.
2007年元日正式更名为ThinkPHP ThinkPHP 遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式。
使用面向对象的开发结构和MVC模式,融合了STrut的思想和TagLib(标签库) RoR的ORM映射和ActiveRecord模式,封装了对数据库的常用操作,单一入口模式等。
在模板引擎、缓存机制、认证机制和扩展性方面均有独特的表现。由于ThinkPHP的灵活、高效和完善的技术文档,经过多年的发展,已经成为国内最受欢迎的PHP框架。
下面将对ThinkPHP的基本使用进行讲解。
1.下载ThinkPHP
我们可以在http://ww thinkphp.cn页面上下载ThinkPHP 文件压缩包,以下将使用ThinkPHP之前的3.2.3完整版进行讲解,下载页面如下图所示
单击"ThinkPHPXXX完整版”将下载ThinkPHP框架压缩包,压缩包解压后有多个文件及文件夹,其中ThinkPHP文件夹为ThinkPHP框架的核心文件目录。
2.使用ThinkPHP
ThinkPHP不需要安装,只需要将解压的文件放到项目目录下即可,默认情况下,3.3版本的框架已经自带了一个应用入口文件,通过浏览器访问该人口文件即可,具体步骤如下。
(1)创建项目目录
在此之前我设置了下多站点 如下图所示
然后在apache服务器站点根目录下创建 名为TP文件夹 作为项目的根目录,将解压后的全部文件移动到该目录下,如下图所示。
注意 我的站点是 TP 这个文件夹哦!
以下是我解压出来的文件 我们把这些文件拷贝到站点文件夹里面
在这之前我已经在本地给TP这个站点手动设置了一个域名以及如下图所示
(最后一个是哦!)
(2)访问入口文件index.php
ThinkPHP框架采用单一入口模式进行项目部署和访问,所有应用都是从入口文件开始的。
现在我们打开浏览器,访问http/www.tp.com/index.php 运行结果如下图1-1所示。
如果浏览器出现如下图1-1所示的页面,说明ThinkPHP框架已经可以正常使用。
此时ThinkPHP会在Application目录下自动生成几个目录文件。如下图1-2所示。
图1-1
图1-2
接下来开发者就可以在相应的目录中编写代码文件了。
不过需要注意的是,ThinkPHP 3.3框架要求PHP版本在5.3以上时才可以使用。
1.2 案例一实现用户登录
我们现在已经完成了ThinkPHP 框架的部署,为了更好地理解ThinkPHP 框架。
接下来将通过ThinkPHP框架来开发一个用户登录功能,具体步骤如下。
1.创建测试数据
用户登录功能的关键是用户验证,而用户验证通常是通过在询数据库以判断该用户是否合法。因此首先要创建一个表保存用户信息,代码如下:
/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50617 Source Host : localhost:3306 Source Database : tp_study Target Server Type : MYSQL Target Server Version : 50617 File Encoding : 65001 Date: 2018-10-26 14:53:33 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `pwd` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1001', 'tom', '123456'); INSERT INTO `user` VALUES ('1002', 'lemon', '654321');
在上述代码中,首先创建数据库tp_study然后在此数据库中创建一息的数据表user.最后插人两条测试数据。
2.指定数据库连接信息
因为需要通过查询数据库比对用户信息.所以要提供数据库连接所需的数据库信息。
打开文件 修改代码如下打开文件
修改代码如下:
<?php return array( //'配置项'=>'配置值' 'DB_TYPE'=>'mysql', //数据库类型 'DB_HOST'=>'127.0.0.1', //服务器地址 'DB_NAME'=>'tp_study', //数据库名称 'DB_USER'=>'root', //用户名 'DB_PWD'=>'', //密码 'DB_PORT'=>'3306', //端口号 'DB_PREFIX'=>'', //数据库表前缀 'DB_CHARSET'=>'utf8', //数据库默认编码格式 );
3.创建用户验证方法
为了实现用户的登录功能,需要在IndexController.class.php中添加一个验证登录的方法,这里我们定义这个方法的名称是
checkLogin()。
打开文件
添加checkLogin()方法
代码如下:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); } public function checkLogin(){ if(IS_POST){ $userName = I('post.username');//接收到用户填写的用户名 $passWord = I('post.password');//接收到用户填写的密码 $userObj = M('user'); $where = array('name'=>$userName); $tmp_password = $userObj->where($where)->getField('pwd'); if($tmp_password && $passWord == $tmp_password){ echo '<meta charset="utf-8">'; echo "密码正确,欢迎登录!"; } else{ echo '<meta charset="utf-8">'; echo "密码错误,请重新登录!"; } die; } $this->display('login'); } }
4.创建用户登录页面
打开目录新建 login.html 文件为登录界面
代码如下:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>用户登录</title> 6 </head> 7 8 <body> 9 <form method="post" action=""> 10 用户名:<input name="username" type="text"><br> 11 密码:<input name="password" type="password"><br> 12 <input type="submit" value="登录"> 13 </form> 14 15 16 17 </body> 18 </html>
5.创建其他文件
视图文件通常需要载人css样式文件才可以以显示页面效果,在上面的视图页面代码中如果需要引用 css文件显示样式,就需要创建该文件。
并将其存到
目录下。
这里我们不设置样式啦。。。
引用的css样式文件话 代码如下的第六行
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>用户登录</title> 6 <link rel="stylesheet" href="_PUBLIC_/css/本页样式.css"/> 7 </head> 8 9 <body> 10 <form method="post" action=""> 11 用户名:<input name="username" type="text"><br> 12 密码:<input name="password" type="password"><br> 13 <input type="submit" value="登录"> 14 </form> 15 16 17 18 </body> 19 </html>
至此,用户登录功能的代码编写完成。
这时我们代开浏览器 输入下图地址
显示登录界面
快输入用户名密码试试看