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 HomeController;
use ThinkController;
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>

至此,用户登录功能的代码编写完成。

这时我们代开浏览器 输入下图地址

显示登录界面

快输入用户名密码试试看

原文地址:https://www.cnblogs.com/lemon-Net-Skill/p/9856510.html