精华内容
下载资源
问答
  • thinkphp5和thinkphp3区别

    2021-02-27 08:19:16
    thinkphp5和thinkphp3区别官方说过了,不要用3的思维去用5。这样说吧算是官方出的俩个产品,并非版本迭代的关系。目录结构不一样,有些函数名不一样。如果是传统的mvc网站,用tp3.2。如果是做接口,就用tp5。前后...

    d0c588c7158dfb592da859c3508930df.png

    thinkphp5和thinkphp3区别

    官方说过了,不要用3的思维去用5。这样说吧算是官方出的俩个产品,并非版本迭代的关系。目录结构不一样,有些函数名不一样。如果是传统的mvc网站,用tp3.2。如果是做接口,就用tp5。前后主要差别应该就是对于view的处理。

    模型实例化

    TP5取消了自动实例化模型的M方法,转而使用了新的实例化模型方法。没有自动实例化则必须自己新建模型类,然后自己实例化,这就有点类似D方法。这里与D方法的功能类似的有一个model的方法,功能上完全可以替换使用

    U方法

    U方法是TP中的生成路由的内置方法,现在这个方法可以完全使用url方法替换

    TP5中取消了IS_GET和IS_POST方法

    如果想继续使用可以在项目中自定义一下,如下:define('IS_GET',Request::instance()->isGet());

    define('IS_POST', Request::instance()->isPost());

    原来的TP的I方法

    之前的TP有个I方法用来接收请求参数,目前可以使用input方法替代

    需要注意的是新增方法

    现在的单条新增方法改为了save方法,这个是以前的更新方法,而且需要注意的是更新的方式也有区别。新增可以直接用save,而更新则需要加isUpdate(true)model("")->isUpdate(true)->save($data);

    TP5和原来版本TP差距最大的功能性的地方在返回,现在几乎所有的数据库查询都会返回对象$menuurl->find($menu_id);//此方法返回一个对象,可以使用->toArray()方法转换为数组

    $this->where($condition)->order($order)->select();//此方法返回一个对象数组,所以要使用数据也必须转换,当然可以直接用对象

    C方法被config方法替换

    数据库配置单独在database.php中,想获取参数使用config('database.prefix')

    页面中目前有自定义常量的方法,使用配置的方法类似之前版本

    如果需要全局替换的话,可以直接在配置文件中添加:'view_replace_str' => [

    '__PUBLIC__'=>'/public/',

    '__ROOT__' => '/',

    ]

    或者直接使用常量配置{$Think.config.PUBLIC}

    默认的引擎标签可修改,也就是之前的<>这种可以继续用// 模板引擎普通标签开始标记

    'tpl_begin' => '{',

    // 模板引擎普通标签结束标记

    'tpl_end' => '}',

    // 标签库标签开始标记

    'taglib_begin' => '{',

    // 标签库标签结束标记

    'taglib_end' => '}',

    展开全文
  • 我主要讲解 tp5 和 tp3 的一些区别,如下一、控制器 1、tp5 控制器的类名默认不携带了 Controller 后缀,tp3 需要携带 Controller 后缀 2、tp5 控制器的方法中用 return 返回内容二、函数 1、tp5 单字母函数废弃了,...

    我主要讲解 tp5 和 tp3 的一些区别,如下

    一、控制器 1、tp5 控制器的类名默认不携带了 Controller 后缀,tp3 需要携带 Controller 后缀 2、tp5 控制器的方法中用 return 返回内容

    二、函数 1、tp5 单字母函数废弃了,比如 C M D 方法,默认系统加载助手(helper.php)函数 。

    三、默认返回值 1、tp5 模型查询的时候返回默认是个‘对象’,系统默认增加了'toArray'方法来转换。

    四、数据库 1、tp5 的数据库查询功能非常强大,tp3 需要通过模型才能使用的链式查询,现在 tp5 可以直接通过 Db 类调用,原来的 M 函数调用可以改用 db 函数 等 2、tp5 的模型查询增加了静态方法

    五、异常 1、tp5 对错误级别是零容忍,默认情况下会对任何级别的错误抛出异常,当然新版本重新设计了异常页面,页面也比之前好看多了,展示了详尽的错误信息,便于调试,非常方便

    六、tp5 完全支持惰性加载,这点性能较比之前好多了。

    当然还有很多不一样的地方,您可以查阅 tp5 的源码看看。

    Q:请问我们这种小白如何快速的成为技术牛人呢?希望给我一些建议。

    第一:熟练掌握 PHP 的基础知识

    第二:学好一个框架,比如 thinkphp YII 等,切记一定要熟练的掌握一个框架,要非常清楚的理解框架的原理,核心。那么这方面如何去学习呢?

    1、先看看框架的文档,然后边看边去操作;

    2、通过框架做一个实战的项目,如果前期没有项目经验的可以看看慕课网的实战课程;

    3、在实战完成后,要多去看看框架的源码,这有利于您理解框架的思想,这个是很有必要去学的,在这过程当中你会对 PHP 有更高的认知,对你的技术当然是一个质的飞跃,前提是你需要坚持。

    第三:到公司后才是您技术提升的关键因素,这个时候你必须要多去做一些项目,在项目中发现自己的不足,并且快速的去补充自己的知识,当然不能只是为了完成项目的功能,我们需要不断的挖掘新的技术方案,什么方案适合当前的项目,并且能够做到更好的优化项目的性能,这个过程您会成长很多。

    第四:多和公司的技术牛人沟通技术,从他们身上学到核心技术,这比你自学要快很多,因为有个引路人比什么都重要。

    第五:到公司后建议 学习的技术有: 1、MySQL 数据库优化 2、nosql 知识 比如:redis mc mongodb 等 3、消息队列服务:如 rabbitmq kafka 等 4、第三方搜索引擎服务:如 elasticsearch, sphinx 等 5、分布式 、负载均衡 等等

    转载自慕课

    展开全文
  • 本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下:惯例配置文件:ThinkPHP/conf/convention.php(1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”):示例:'配置...

    本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下:

    惯例配置文件:ThinkPHP/conf/convention.php

    (1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”):

    示例:

    '配置值'

    /* 数据库设置 */

    'DB_TYPE' => 'mysql', // 数据库类型

    'DB_HOST' => 'localhost', // 服务器地址

    'DB_NAME' => 'xmall', // 数据库名

    'DB_USER' => 'root', // 用户名

    'DB_PWD' => '123', // 密码

    'DB_PORT' => '3306', // 端口

    'DB_PREFIX' => 'think_', // 数据库表前缀

    'DB_FIELDTYPE_CHECK' => false, // 是否进行字段类型检查

    'DB_FIELDS_CACHE' => true, // 启用字段缓存

    'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8

    );

    ?>

    (2)创建表:

    CREATE TABLE `think_user` (

    `id` int(11) DEFAULT NULL,

    `name` varchar(30) DEFAULT NULL,

    `pwd` varchar(20) DEFAULT NULL

    ) ENGINE=InnoDB;

    (3) 执行数据插入操作在lib/Action下修改IndexAction.class.php文件,内容如下:

    "1",

    "name="=>"liuning",

    "pwd"=>"asd123"

    );

    M("user")->add($data);

    }

    }

    }

    ?>

    (4)执行http://localhost/xmall/index.php,数据库中就会有新的记录生成;

    PS:这里推荐几款本站的格式化美化工具,相信大家在以后的开发中能够用得上:

    php代码在线格式化美化工具:http://tools.bitsCN.com/code/phpformat

    JavaScript代码美化/压缩/格式化/加密工具:http://tools.bitsCN.com/code/jscompress

    在线XML格式化/压缩工具:http://tools.bitsCN.com/code/xmlformat

    JSON代码格式化美化工具:http://tools.bitsCN.com/code/json

    在线XML/JSON互相转换工具:http://tools.bitsCN.com/code/xmljson

    sql代码在线格式化美化工具:http://tools.bitsCN.com/code/sqlcodeformat

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 今天在使用Thinkphp3开发接口,在Postman模拟提交数据的时候,发现通过get方式提交的请求,通过 I() 方法可以取到请求的参数。而通过post方式提交的请求,通过 I() 方法和$_POST等,都取不到请求的参数。但是在正常...

    今天在使用Thinkphp3开发接口,在Postman模拟提交数据的时候,发现通过get方式提交的请求,通过 I() 方法可以取到请求的参数。而通过post方式提交的请求,通过 I() 方法和$_POST等,都取不到请求的参数。但是在正常的开发时,通过web页面提交的ajax和form请求,是可以通过 I() 方法正常取到请求参数的。

    首先,通过post方式传递的参数,使用的是 'Content-Type: application/json; charset=utf-8'。通过网络搜索,找到以下解决方案:

    由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/json的内容无法解析为$_POST数组,故保留原型,交给GLOBALS['HTTP_RAW_POST_DATA'] 来接收。

    php://input 允许读取 POST 的原始数据。和 $GLOBALS['HTTP_RAW_POST_DATA'] 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。不过 php://input 不能用于 enctype="multipart/form-data"。

    将接收Post参数的代码修改如下:public function index()

    {

    $reqData = json_decode(file_get_contents('php://input'), true);

    var_dump($reqData);

    }

    再打印数据,通过结果可以看到,取到了通过Post提交的参数。

    不过,经过测试发现,上面的代码可以取到Post提交的参数,但是通过Get提交的参数是获取不到的。所以修改代码如下:public function index()

    {

    $reqData =  $_SERVER['REQUEST_METHOD'] == 'GET' ? I() : json_decode(file_get_contents('php://input'), true);

    var_dump($reqData);

    }

    这样,就可以同时通过Get或Post方式提交参数了

    展开全文
  • 这篇文章主要介绍了关于thinkphp3 获取最近的sql语句,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下thinkphp 3 获取最近的sql语句/*** @title 获取最近的sql语句* @author lyj [author] [2018-07-...
  • ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长...
  • 首先,这个教程是给拥有ThinkPHP3.2.3基础的人看的,如果没有学过Thinkphp3,也就不建议您这边直接看这个教程,应该去看更加基础的教程。一、ThinkPHP5的入口文件。学过ThinkPHP3的人应该知道,ThinkPHP3的入口文件...
  • 一开始插入数据库正常.后来修改增加字段后,始终无法正常插入 原因是缓存的关系.清空这个目录即可解决问题 Runtime\Data_fields
  • 本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下:惯例配置文件:ThinkPHP/conf/convention.php(1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”):示例:...
  • 文章目录1.源代码2....编写针对 thinkphp3.x 的一个利用小脚本。 import requests import sys def addurls(year): url = "http://www.webhack123.com/App/Runtime/Logs" urls=[] for month in range
  • 基于thinkphp3的浏览器自动刷新插件browser_sync该项目是基于tp3.1开发的浏览器自动刷新工具,思路是来源于一个node.js开发的一个html修改自动刷新工具http://www.browsersync.cn/ ,看了一个大兄弟tp5实现浏览器...
  • ThinkPHP3.2.x RCE

    2021-08-01 22:34:30
    ThinkPHP3.2.x RCE下载地址漏洞利用代码分析 下载地址 戳此进行下载 漏洞利用 debug模式开启 代码分析 程序执行流程 5
  • ThinkPHP漏洞分析与利用

    千次阅读 2020-12-20 14:13:04
    一、组件介绍1.1 基本信息ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和...
  • thinkphp3.2.3 SQL注入漏洞复现

    千次阅读 2021-02-24 15:33:41
    然后本地创建一下数据库,改一下数据库的配置,在ThinkPHP/Conf/convention.php下面: 由于比较懒,我直接用sqli-labs的数据库了,在IndexController.class.php里面写个查询: class IndexController extends ...
  • 文章目录Thinkphp3.2.3反序列化利用链分析分析利用链 菜鸡在做CTF的时候想深入分析一下,也就产生了这篇文章 Thinkphp3.2.3反序列化利用链分析 分析 首先我们从__destruct方法入手 其他的都是啥如ftp_close之类的...
  • ThinkPHP 漏洞列表一、3.x使用方法bashcd /var/www/tp3ThinkPHP3.2.3_缓存函数设计缺陷可导致Getshell标题ThinkPHP5.0.10-3.2.3缓存函数设计缺陷可导致Getshell时间2017-08-09版本<= 3.2.3ThinkPHP3.2.3_最新版...
  • ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能...
  • PHP用Aws的SDK实现Minio对象存储链接API用 thinkphp 框架通过composer 安装 aws的php版本sdkcd到thinkphp框架的根目录下,同composer.json目录。composer require aws/aws-sdk-php然后新建一个 controller,就可以...
  • ThinkPHP3.2 文件结构

    2021-04-22 06:20:21
    ThinkPHP目录结构参考结构简介访问一个thinkphp结构网站的全部url是http://域名/index.php/模块名/控制器名/操作(即函数名)/参数,对应的文件结构示例如:更详细的文件结构如下主目录www WEB部署目录(或者子目录)├─...
  • ThinkPHP5.1在5.0的基础上对底层架构做了进一步的改进,引入新特性,并提升版本要求。另外一个事实是,5.1版本看起来对开发者更加友好,表现在目录结构更直观、调试输出更直观和代码提示更直观。ThinkPHP5.1运行环境...
  • 正好大牛说要更新框架,最后确定了升级框架,原先使用的ThinkPHP3.2版本的,现在确定升级为5系列。应该庆幸没选择其他框架,什么CI、YII、Laravel之类的,Laravel了解过一些,但是没深入过,还是TP系列使用的顺手...
  • 使用thinkphp5和thinkphp3.2.3开发网站,需要用到数据库,那首先就需要找到它们两个的数据库连接文件,并配置好相关的参数。1、thinkphp3.2.3数据库配置去官网下载thinkphp3.2.3后,解压后,启动php运行环境中,且在...
  • tp模版控制台打印
  • ThinkPHP框架的优缺点是什么时间:2019-08-26 16:55:53来源:作者:Thinkphp的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP...
  • 1.简要描述 ...ThinkPHP 用户模块checkcode SQL注入漏洞 ThinkPHP 5.0.23远程代码执行 ThinkPHP 5.0.23 Debug模式远程代码执行 ThinkPHP 5.X PDO开启状态下SQL注入漏洞 ThinkPHP 5.1.x 远程命令执行漏.
  • ThinkPHP 日志信息泄露——漏洞复现

    千次阅读 2021-02-20 15:57:27
    1、ThinkPHP在开启DEBUG的情况下会在Runtime目录下生成日志,而且debug很多网站都没有关 2、ThinkPHP默认安装后,也会在Runtime目录下生成日志 THINKPHP3.2 结构:Application\Runtime\Logs\Home\16_09_09.log ...
  • thinkPHP3.2.3sql注入漏洞

    千次阅读 2021-10-05 18:38:18
    ThinkPHP中的常用方法汇总总结:M方法,D方法,U方法,I方法 Thinkphp3.2.3 安全开发须知 搭建: 首先第一步就是必须先放在www目录下(我是windows用的phpstudy)!!!! 创建数据库,表名一定与你接下来要M的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,769
精华内容 41,507
关键字:

thinkphp3