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>

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

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

    显示登录界面

    快输入用户名密码试试看

  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/lemon-Net-Skill/p/9856510.html
Copyright © 2011-2022 走看看