ThinkPHP BASE】的更多相关文章

  对于thinkphp 开源框架来说  是一个基于  模型/控制器/视图 的结构 V(View):视图接收来自用户操作的信息返回到 对应的控制器或方法 C (controller):控制器则调用 相对应的模型或方法 M(Model):模版处理完数据后返回到控制器 ,而视图接收来自控制器的数据进行渲染 模型M 和视图V 是分离开来的, 模型是对数据逻辑进行处理,而视图只作为视图渲染的对象      …
一.安装TP5.1 1.使用git安装 <1>下载Tp git clone https://github.com/top-think/think tp5 <2>安装核心库 git clone https://github.com/top-think/framework thinkphp 2.使用compose安装(需下载compose) compose下载链接 https://getcomposer.org/Composer-Setup.exe 第一次安装使用,切换到web目录下:…
安装swoole pecl install swoole 修改PHP配置文件php.ini加入 extension=swoole.so 有可能不需要人工去加,安装时自动加入进来了, 查看swoole扩展是否安装好 /usr/local/php/bin/php -m 配制列表里面如果有swoole的话,恭喜你安装并配置swoole成功. 在index.php同级目录下面新新建ws.php文件,文件内容以下 <?php class Ws { CONST HOST = "0.0.0.0"…
我们有时不知道thinkphp版本号,怎么查看呢?很简单,tp5版本在/thinkphp/base.php文件中就可以查看define('THINK_VERSION', '5.0.15');如下图所示:tp3版本在ThinkPHP\Common\runtime.php 第22行有版本信息 ,如: define('THINK_VERSION', '3.0');实在找不到的话就全文件夹搜索,使用编辑工具,搜索(包含目录搜索,不区分大小写)ThinkPHP下所有的带 'version'的字符,这样可以…
ThinkPHP设计模式 单例模式:数据库连接DB工厂模式:比如Db.class.php中的factory()方法适配器模式:驱动类,数据库观察者模式:Hook类 注册树模式:绑定容器外观模式:facade门面模式. 执行流程 1.入口文件(index.php) 1)定义目录常量 2)加载框架引导目录2.加载框架的引导文件(\thinkphp\start.php) 1) 引导基础文件 2) 对应用进行运转3.加载框架的基础引导文件(\thinkphp\base.php); 1) 加载系统常量 2…
入口文件 ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口. 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的. 入口文件定义 入口文件主要完成: 定义框架路径.项目路径(可选) 定义系统相关常量(可选) 载入框架入口文件(必须) 5.0默认的应用入口文件位于public/index.php,内容如下: // 定义应用目录 define('APP_PATH', __DIR__ . '/../applicatio…
楼主是之前使用了thinkphp3.2快两年了,很早就听说过thinkphp的版本已经到达5了. 不过鉴于早期的版本尚未完善,并没有立即开始学习.最近做一个项目,尝试一下新的知识. 但是在使用的时候,的确不是很方便.文档方面是一个硬伤,不过是开源的,没有什么好吐槽的. 在尝试自定义一些常量的时候,遇到了一些问题. 像3.2版本的,直接就在整个项目下的index.php下面用define去定义一些常量,然后就可以在代码中直接使用. 这次走了旧路,直接在整个项目下找到一个类似3.2版本index定义…
1.用的是TP5.1的框架,swoole分成一个客户端发送接收消息,一个服务器负责处理信息 服务端代码,服务器要先安装swoole拓展,用 php server.php 启动进程监听 <?php namespace think; date_default_timezone_set('Asia/Shanghai'); // 加载基础文件 require_once __DIR__ . '/thinkphp/base.php'; // 支持事先使用静态方法设置Request对象和Config对象 //…
直播模块流程: 主进程服务:主进程同时开启两个服务 http服务,负责向前端传递页面,处理登录等事务 websocket服务,服务处理直播以及聊天室等事务 在项目根目录(框架代码同级目录)建立script目录,用于存放脚本文件 ws.php : 主进程服务 <?php /** * Created by PhpStorm. * User: baidu * Date: 18/3/27 * Time: 上午12:50 */ class Ws { CONST HOST = "0.0.0.0&quo…
下载TP5框架,在项目根目录下创建server目录 http_service.php <?php //创建服务 $http = new swoole_http_server("0.0.0.0", 8811); //设置参数 $http->set( [ 'enable_static_handler' => true, //开启静态资源目录 'document_root' => "/home/work/hdtocs/swoole_mooc/thinkphp…
漏洞影响版本: ThinkPHP 5.0.5-5.0.22 ThinkPHP 5.1.0-5.1.30 漏洞复现: 一.mac的debug环境搭建. 一键化环境搭建工具: mamp pro ,调试工具 PHPstorm 打开mamp pro,设置左上角的file->Edit Template, 设置httpd.conf (监听本地) ServerName 127.0.0.1:8087 Listen 127.0.0.1:8087 打开mamp pro,设置左上角的file->Edit Templ…
闲话不多说,TP5(5.0.20) 在配置多入口文件的时候你是否遇到过一下的问题呢? 开发设计的需求吧网站拆分为前台.后台.API 3 个模块,对应的也需要3个入口文件,后台和API入口文件是用PATH_INFO 模式访问(关闭路由). 在配置后台入口文件的时候,直接从前台入口文件拷贝了主要代码如下 <?php // [ 后台应用入口文件 ] // 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); //定义自定义的配置目录 defi…
https://github.com/ABCDdouyaer/tp5-1 1.下载composer 安装框架 也可以安装包或者git安装 composer create-project topthink/think tp5 --prefer-dist 2.可以更改localhost  C:\Windows\System32\drivers\etc中的hosts里面更改 3.MVC模型(M为model为数据模型[操作数据库相关数据]:V为view为视图模型:C为controller为控制器[控制网…
1.入口文件(tp5\public\index.php) 作用: 1)定义目录常量. 2)加载框架引导目录. 2.框架引导目录(tp5\thinkphp\start.php) 作用: 1)引导基础文件. 2)对应用进行运行. 3.基础文件(tp5\thinkphp\base.php) 作用: 1)加载系统常量. 2)引入loader类.(tp5\thinkphp\library\think\Loader.php) 3)引入环境变量. 4)注册自动加载机制. 5)注册错误和异常处理机制.(tp5\…
主要流程 1 \public\index.php require __DIR__ . '/../thinkphp/start.php'; \thinkphp\start.php require __DIR__ . '/base.php'; // 执行应用并响应 Container::get('app', [defined('APP_PATH') ? APP_PATH : '']) ->run() ->send(); 2.1 \thinkphp\base.php require __DIR__…
方法一.通过官方网站直接下载: (1)下载地址:http://www.thinkphp.cn/down.html: (2)下载后,解压到web目录下: (3)访问:http://localhost/目录名字/public/ (4)看到ThinkPHP V5的界面即安装成功. 方法二: 通过composer命令安装, (1)使用管理员身份执行命令行: (2)切换到web目录下,执行命令:composer create-project thinktop/tp=5.0.*  tp5 --prefer-…
ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如何安装TP 1.源代码包安装 2.Git安装 3.Composer安装 2.MVC模式 M model 数据模型 # 数据库相关的处理 V view 视图 # 页面 C controller 控制器 # 控制器就是这个网站的逻辑和流程 3.目录结构 =========================…
欢迎访问我的个人博客皮皮猪:http://www.zhsh666.xyz Lsky Pro图床是一个支持本地.阿里云 OSS.腾讯云 COS.七牛云.又拍云等储存方式的基于PHP的开源图床. 项目主页:https://www.lsky.pro 项目仓库地址:https://github.com/wisp-x/lsky-pro Lsky Pro 使用手册:https://www.kancloud.cn/wispx/lsky-pro/880042 主要特性 支持第三方云储存,支持本地.阿里云OSS.…
2019-11-11学习笔记 安装TP5.0 a)源代码包下载 在thinkphp官网下载(www.thinkphp.cn)下载 完整版本的TP5.0 b) composer 安装 切换到网站的根目录 切换国内镜像 composer config -g repo.packagist composer https://packagist.phpcomposer.com 下载源码包composer create-project topthink/think composer_tp5 --prefer…
1.内容介绍 深入解析tp5.1与laravel 中Facade底层原理实现 1. 什么是Facade 2. 为什么需要有什么好处 3.  Facade实现原理 4. 功能实现. 5. 容器注入 2.知识讲解 0.什么是Facade??为什么需要?有什么好处 专业解释: 门面模式(Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面.门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来…
说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问题是目前没有后台页面,就是产品还没有出后台详细页面.前端已经完备了,上线了.后台还需要工作时间处理.所以目前的处理方法是在我们已经存在的A项目后台中,添加一个对B项目添加商品的功能. 一.当下问题 1.在我们已有的A项目中,新增一个添加商品的功能,这个本来是没有什么问题的,因为目前A项目中本身就已经…
该方法仅作一种思路参考,实际应用也许会破坏thinkphp5.1的路由功能,并带来诸多问题,请读者尽量按照tp5.1官方的技术整合手段进行,按照tp5.1官方用户手册的方法可以实现swoole 风格的websocke协议,亲测可行 <?php use think\Container; $myserver = ); $myserver->on('WorkerStart',function(swoole_server $server,$work_id) { define('APP_PATH', _…
1.修改应用根目录名称 (1)重新定义入口文件如下namespace think; // 定义应用目录define('APP_PATH', __DIR__ . '/../app/'); // 加载基础文件require __DIR__ . '/../thinkphp/base.php'; // 支持事先使用静态方法设置Request对象和Config对象 // 执行应用并响应Container::get('app')->path(APP_PATH)->run()->send();(2)t…
前言 tp5想必大家都不陌生,但是大部分人都停留在应用的层面,我将开启系列随笔,深入剖析tp5源码,以供大家顺利进阶.本章将从类的自动加载讲起,自动加载是tp框架的灵魂所在,也是成熟php框架的必备功能 入口 // [ 应用入口文件 ] namespace think; // 加载基础文件 require __DIR__ . '/../thinkphp/base.php'; base.php <?php // +------------------------------------------…
详细解析Thinkphp5.1源码执行入口文件index.php运行过程 运行了public目录下的index.php文件后,tp的运行整个运行过程的解析 入口文件index.php代码如下: <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +--------------------------…
随手记录下今天在thinkphp3.2.3中遇到的错误SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.file_info' doesn't exist,之前用pdo连接数据库一直没有问题,今天突然发现报了上述错误,查看了别人的解决方法,都没有解决,后来看了下之前的表名都是小写的,我现在的表名是"file_Info",改为"file_info"后就不报异常了…
ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/show/ 所执行的流程进行详细的分析,用户的URL访问首先是定位到了My项目的index.php 入口文件(注意:如果使用了URL_REWRITE,可能index.php已经被隐藏了),项目的入口文件所做的其实是实例化一个App应用实例,并且执行这个应用. 1.加载公共入口文件 在实例化App类之前,我们需要…
升级指导 http://www.kancloud.cn/manual/thinkphp5/163239 从V5.0.1升级到V5.0.2 从V5.0.1升级到V5.0.2需要注意如下事项: 下列模型属性和方法由原来的静态(static)定义改为动态定义: 聚合模型的relationModel属性 Model类的useGlobalScope 属性 软删除属性 deleteTime属性 全局查询范围方法base改为动态方法 原来的join方法和view方法的第一个参数规范化,支持下面三种用法: 用法…
使用webpack打包ThinkPHP的资源文件 利用自己的空余时间一直在维护http://www.wx2share.com这个小网站,全是一个人在弄,由于只租得起虚拟空间,所以后台采用了简单方便的ThinkPHP反正主要也是做一些CURD操作ThinkPHP还是挺好用的,帮我提前做好了好多功能. 本人并不擅长前端,但是开始开发这个小网站发现,基本的功能全部要通过前端javascript来实现.一开始的时候所有的javascript代码全部写在html页面里.也没有太大问题,后来为了页面性能要求…
ThinkPHP 是国内比较优秀的 PHP 框架,但有些地方不是很好,比如那些 魔术函数 D(),用它返回的类实例,在各个IDE(如 PhpStorm)下根本识别不了,导致如下问题: 1.不支持 代码自动提示: 2.不支持 按住 Ctrl 键,点击 方法名,进入 方法的 定义处: 3.不支持 重构: 4.不支持 方法被使用/调用 统计: 等等问题: 总而言之,强大的IDE(PhpStorm)拿它一点办法都没有. 于是,越来越讨厌这样的 D()函数,,,改造一下它吧,操作过程如下: 1.新建 Ba…