zoukankan      html  css  js  c++  java
  • 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>

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

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

    显示登录界面

    快输入用户名密码试试看

  • 相关阅读:
    ab并发负载压力测试
    在vmware里运行qcow2镜像
    nginx root alias
    速成制作rpm包
    oracle分区表按时间自动创建
    Some network Tools
    python中defaultdict用法详解
    CENTOS7 安装telnet
    H3C 交换机配置
    H3C
  • 原文地址:https://www.cnblogs.com/lemon-Net-Skill/p/9856510.html
Copyright © 2011-2022 走看看