200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Web开发 | ThinkPHP 3.2.3 - 01.初步认识TP框架与基本使用方法

Web开发 | ThinkPHP 3.2.3 - 01.初步认识TP框架与基本使用方法

时间:2021-04-04 06:35:11

相关推荐

Web开发 | ThinkPHP 3.2.3 - 01.初步认识TP框架与基本使用方法

1.介绍

项目开发步骤

  1、多人同时开发项目,协作开发项目、分工合理、效率有提高(代码风格不一样、分工不好)。

  2、测试阶段。

  3、上线运行。

  4、对项目进行维护、修改、升级(单个人维护项目,十分困难,代码风格不一样)。

  5、项目稳定的运行阶段。

  6、项目停止运行(旧项目的人员已经全部离职,新人开发新项目)。

存在的问题

  1、多人开发项目,分工不合理。

  2、代码风格不一样,后期维护十分困难。

  3、项目生命周期十分短,项目生命没有延续性,造成资源浪费、人员浪费。

  4、项目不能很好适应客户需求,牵一发而动全身。

相关框架

  1、Zend Framework:Zend php语言公司发布的官方框架,重量级(功能多)。

  2、Yii:美国华人开发的框架,重量级框架,纯OOP框架。

  3、CI CodeIgniter:轻量级框架,开发速度快,部署灵活。

  4、Symfony:外国重量级框架。

  5、ThinkPHP:轻量级框架,国人框架,入门容易。

什么是框架

  一堆代码的集合,里面有变量、函数、类、常量,里面也有很多设计模式MVC、AR数据库、单例等。

  框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。

为什么使用框架?

  框架可以帮助我们快速、稳定、高效搭建程序系统。

  该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。

  使用框架的过程中可以使得我们的注意力全部集中在业务层面,而无需关心程序的底层架构。

2.框架目录文件介绍

  官网:/

  下载版本ThinkPHP3.2.3完整版(thinkphp_3.2.3_full.zip)

目录架构

主目录

ThinkPHP目录

ThinkPHP/Conf目录

ThinkPHP/Library目录

ThinkPHP/Library/Think目录

3.创建应用

步骤:

  1、将thinkphp_3.2.3_full.zip解压出来的ThinkPHP目录拷贝出来,放在项目发布目录下(自定义目录,案例用的是ThinkPHP)。

拷贝ThinkPHP目录

  2、与ThinkPHP目录中同级创建shop项目文件夹。

创建shop项目文件夹

  3、在shop文件夹下创建一个入口文件index.php并引入框架核心程序

创建一个入口文件index.php

  程序代码如下:

<?php//引入框架核心程序require "../ThinkPHP/ThinkPHP.php";

  4、运行http://localhost/ThinkPHP/shop项目自动创建目录

运行项目

自动创建目录

Home目录相关介绍

4.控制器和方法创建

  运行项目默认的页面对应的是shop/Home/Controller/IndexController.class.php里面的index方法。

  程序代码如下:

<?phpnamespace 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="/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="/stats?sId=9347272" charset="UTF-8"></script>','utf-8');}}

可自行修改

  程序代码如下:

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {public function index(){echo "study ThinkPHP";} }

运行效果 同一个控制器下可以写各种方法

  程序代码如下:

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {public function index(){echo "Study ThinkPHP";}public function hello(){echo "你好";}}

  运行http://localhost/ThinkPHP/shop/index.php/Home/Index/hello

运行效果

  在shop/Home/Controller目录中新建UserController.class.php文件并编写代码

新建控制器

  程序代码如下:

<?phpnamespace Home\Controller;use Think\Controller;Class UserController extends Controller{function login(){echo " Login ";}function register(){echo " Register ";}}

  分别运行

  http://localhost/ThinkPHP/shop/index.php/Home/User/login

  http://localhost/ThinkPHP/shop/index.php/Home/User/register

运行效果

注意:

  1、控制器在Controller目录下创建,文件名均为XxxController.class.php

  2、注意命名空间的书写

  3、访问时对应上相关的模块/控制器/操作方法

5.路由解析

  通过url地址get参数找到指定的控制器,并进行对应方法调用请求。

    Http://网址/index.php?m=Home&c=Index&a=index

    以上url地址信息代码不够优雅、不安全。

TP框架url地址可以有:

  1、http://网址/index.php?m=XX&c=XX&a=XX—— 基本get模式

    http://localhost/ThinkPHP/shop/index.php?m=Home&c=Index&a=index

  2、http://网址/index.php/模块/控制器/操作方法—— 路径模式pathinfo

    http://localhost/ThinkPHP/shop/index.php/Home/Index/index

  3、http://网址/模块/控制器/操作方法—— rewrite重写模式

  4、http://网址/index.php?s/模块/控制器/操作方法—— 兼容模式

    http://localhost/ThinkPHP/shop/index.php?s=Home/Index/index

  具体url地址模式设置(系统配置文件ThinkPHP/Conf/convention.php

url地址模式设置

  如要修改,不能在该文件中直接修改,必须到自己项目文件中修改(项目配置文件shop/Home/Conf/config.php)。config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目的。

  这个文件在系统运行过程中覆盖convention.php的配置变量

include "convention.php";include "convention.php"; //后引入的文件要把先引入的文件配置变量给覆盖掉

  1、我们先在入口文件index.php调整当前模式为调试模式(以便实时查看代码变动后的效果)

程序代码如下:

<?php//开启调试模式define("APP_DEBUG", true);//引入框架核心程序require "../ThinkPHP/ThinkPHP.php";

  2、修改项目配置文件shop/Home/Conf/config.php

程序代码如下:

<?phpreturn array(//'配置项'=>'配置值''URL_MODEL' => 0,);

  3、修改控制器shop/Home/Controller/UserController.class.php

程序代码如下:

<?phpnamespace Home\Controller;use Think\Controller;Class UserController extends Controller{function login(){// U() 当前模式下的url地址echo U();echo "<br/>";//快捷函数U("模块/控制器/方法") 根据参数和url模式创建对应的url地址,具体使用方法看文档echo U("User/login/php");echo "<br/>";echo "Login";}function register(){echo "Register";}}

  4、分别运行

    http://localhost/ThinkPHP/shop/index.php?m=Home&c=User&a=login

    http://localhost/ThinkPHP/shop/index.php/Home/User/login

    http://localhost/ThinkPHP/shop/Home/User/login.html

    http://localhost/ThinkPHP/shop/index.php?s=Home/User/login

运行效果

  在项目Common/Conf/config.php中分别配置'URL_MODEL' => 0/1/2/3,

运行不同配置模式的运行效果

6.开发模式和生产模式

  在入口文件index.php调整当前模式

生产模式

  生产模式时,即define("APP_DEBUG", false);系统运行将会在Runtime文件夹下生成common~runtime.php,

  系统优先加载该文件包含的缓存信息,对于其他文件则加载较少,节省许多文件的打开、关闭的系统开销,即是开发时的效果不会立刻呈现,不利于开发。

生产模式

开发模式

  开发调试模式时,即define("APP_DEBUG", true);将不会生成common~runtime.php文件,故系统运行时会加载更多的其他文件,但利于开发。

开发模式

  观察系统运行过程中生成的日志信息:

    1、做变量配置。在系统配置文件ThinkPHP/Conf/convention.php中找到该变量,到项目配置文件shop/Home/Conf/config.php中修改。

    2、tp框架配置变量:ThinkPHP/Conf/convention.php,Behavior行为文件,程序灵活设置(此时我们需要修改的是Behavior行为文件:ThinkPHP/Library/Behavior/*)。

追踪日志信息1

  修改项目配置文件shop/Home/Conf/config.php

程序代码如下:

<?phpreturn array(//'配置项'=>'配置值''URL_MODEL' => 3,'SHOW_PAGE_TRACE' => true,);

  运行项目

    http://localhost/ThinkPHP/shop/index.php?m=Home&c=Index&a=hello浏览器页面右下角有图标出现,即有日志追踪信息,并可以点击查看。

追踪日志信息2

  解决乱码,修改入口文件index.php

程序代码如下:

<?phpheader("Content-type:text/html;charset=utf-8");//开启调试模式define("APP_DEBUG", true);//引入框架核心程序require "../ThinkPHP/ThinkPHP.php";

追踪日志信息3

7.控制器调用模板

  修改控制器shop/Home/Controller/UserController.class.php

程序代码如下:

<?phpnamespace Home\Controller;use Think\Controller;Class UserController extends Controller{function login(){//调用视图模板display();$this -> display();}function register(){//调用视图模板display();$this -> display();}}

  运行http://localhost/ThinkPHP/shop/index.php/Home/User/login效果如下:

运行效果

  此时需要创建相应的视图模板,在View目录下新建User文件夹,并在里面创建login.html

创建视图模板

  再次运行http://localhost/ThinkPHP/shop/index.php/Home/User/login

运行效果

  控制器和模板的关系:

    通常,在View目录下都会有一个与控制器标志一样的目录,里面有具体模板文件。

    例如控制器shop/Home/Controller/UserController.class.phpshop/Home/View/User目录下,里边都是该控制器对应的模板文件。

8.模板与框架整合

  步骤:

    1、引入静态代码

    2、引入css、img、js文件

    3、在入口文件地方把css、img、js的路径设置为常量

    4、在模板中通过常量获取具体的css、img、js等文件信息

    5、把css文件本身的图片路径设置正确

    shop/Home/View/User/login.html用一个登陆界面替换上去并运行http://localhost/ThinkPHP/shop/index.php/Home/User/login

未整合的页面

  在shop目录下新建Public文件夹然后分别创建css、img、js文件夹,然后将登陆界面所引用的全部css、img、js文件归类放入。

  在index.php页面给系统资源文件路径定义成常量。

程序代码如下:

<?php//给系统资源文件路径定义成常量define("SITE_URL","http://localhost/");define("CSS_URL",SITE_URL."../ThinkPHP/shop/Public/css/");define("IMG_URL",SITE_URL."../ThinkPHP/shop/Public/img/");define("JS_URL",SITE_URL."../ThinkPHP/shop/Public/js/");//开启调试模式define("APP_DEBUG", true);//引入框架核心程序require "../ThinkPHP/ThinkPHP.php";

TP框架默认引擎的常量使用

  将shop/Home/View/User/login.html文件中的css、js、img等的引用路径改成相应的常量{$Think.const.CSS_URL}{$Think.const.JS_URL}{$Think.const.IMG_URL}

程序代码如下:

<link rel="stylesheet" type="text/css" href="{$Think.const.JS_URL}bootstrap/css/bootstrap.min.css" media="all"><link rel="stylesheet" type="text/css" href="{$Think.const.CSS_URL}login.css"><img src="{$Think.const.IMG_URL}verify.jpg" class="verifyimg reloadverify"/>

  运行

    http://localhost/ThinkPHP/shop/index.php/Home/User/login

运行效果

  调用浏览器F12控制台,解决出现的异常(css文件本身的图片路径)

9.url地址大小写问题

  系统配置文件ThinkPHP/Conf/convention.php中有一个变量

URL大小写

  修改项目配置文件shop/Home/Conf/config.php

程序代码如下:

<?phpreturn array(//'配置项'=>'配置值''URL_MODEL' => 3,'SHOW_PAGE_TRACE' => true,'URL_CASE_INSENSITIVE' => true,);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。