在认识ThinkPHP框架以前,咱们须要了解一个概念一-PHIP 框架javascript
PHP框架就是一种能够在项目开发过程当中, 提升开发效率,建立更为稳定的程序,并减小开发者重复编写代码的基础架构。下面介绍几个主流的PHP框架。php
Zend Framework是由Zend 公司开发的PHP框架,可用于开发Web程序和服务。ZendFramework采用MVC架构模式来分离应用程序中不一样的部分,从而方便程序的开发和维护。css
CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller 和MVC等著名设计模式的快速开发框架。该框架的主要目标是让各类层次的PHP开发人员都能快速灵活地开发健壮的Web应用。html
Ym是一个基于组件的高性能PHP框架。用于开发大型Web应用Yi采用产格的O0P编写,并有着完善的库引用以及全面的教程。Yii几乎提供了现在Web20应用开发所须要的一切功能, 事实上,Yii也是最有效率的PHP框架之一。java
ThinkPHP是一个由国人开发的快速最容并且简单的轻量级PHP开发框架,诞生于2006年初。原名FCS.mysql
2007年元日正式改名为ThinkPHP ThinkPHP 遵循Apache2开源协议发布,从Struts结构移植过来并作了改进和完善,同时也借鉴了国外不少优秀的框架和模式。sql
使用面向对象的开发结构和MVC模式,融合了STrut的思想和TagLib(标签库) RoR的ORM映射和ActiveRecord模式,封装了对数据库的经常使用操做,单一入口模式等。thinkphp
在模板引擎、缓存机制、认证机制和扩展性方面均有独特的表现。因为ThinkPHP的灵活、高效和完善的技术文档,通过多年的发展,已经成为国内最受欢迎的PHP框架。数据库
下面将对ThinkPHP的基本使用进行讲解。apache
咱们能够在http://ww thinkphp.cn页面上下载ThinkPHP 文件压缩包,如下将使用ThinkPHP以前的3.2.3完整版进行讲解,下载页面以下图所示
单击"ThinkPHPXXX完整版”将下载ThinkPHP框架压缩包,压缩包解压后有多个文件及文件夹,其中ThinkPHP文件夹为ThinkPHP框架的核心文件目录。
ThinkPHP不须要安装,只须要将解压的文件放到项目目录下便可,默认状况下,3.3版本的框架已经自带了一个应用入口文件,经过浏览器访问该人口文件便可,具体步骤以下。
在此以前我设置了下多站点 以下图所示
而后在apache服务器站点根目录下建立 名为TP文件夹 做为项目的根目录,将解压后的所有文件移动到该目录下,以下图所示。
注意 个人站点是 TP 这个文件夹哦!
如下是我解压出来的文件 咱们把这些文件拷贝到站点文件夹里面
在这以前我已经在本地给TP这个站点手动设置了一个域名以及以下图所示
(最后一个是哦!)
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以上时才可使用。
咱们如今已经完成了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>
至此,用户登陆功能的代码编写完成。
这时咱们代开浏览器 输入下图地址
显示登陆界面
快输入用户名密码试试看