thinkphp
Yee Jason
这个作者很懒,什么都没留下…
展开
-
tp3.2(阿里大鱼) 短信验证
1、在阿里大鱼官方下载 SDK文件 2、发送短信函数 function sendTemplateSMS($to, $type, $content) {vendor("alidayu.TopSdk"); // 这是载入阿里大鱼SDK$c = new \TopClient();$c->appkey = 'xxxx'; $c->secretKey ...原创 2017-08-15 16:28:19 · 387 阅读 · 0 评论 -
restful api 简介
简介:1、面向资源的。2、http动词(get, post,put,delete)来描述操作3、api数据格式一般为 json 传统的api: 获取用户的信息 get /api/user/read 更新用户的信息 post /api/user/update 新增用户的信息 post /api/user/add 删除用户的信息 pos...原创 2018-05-08 15:34:02 · 1301 阅读 · 0 评论 -
tp5.1 配置文件分析 (二)
一、 学习内容 1、Array Access 学习笔记。 2、Yaconf 高性能配置 学习。2、配置加载流程图3、config 类库分析1、在 index.php 入口文件中 有个 run 方法 // 初始化应用 $this->init();2、在 run 方法中有个 初始化方法 initizlize方法//...原创 2019-06-25 22:17:53 · 1363 阅读 · 0 评论 -
php底层ArrayAccess类巧用分析
一、作用:提供像访问数组一样访问对象的能力接口。二、 方法: 1、offsetExists 检查偏移位置是否存在 2、offsetGet 获取一个偏移位置的值。 3、offsetSet 设置一个偏移位置的值。 4、offsetUnset 删除一个偏移位置的值。三、代码测试class ObjArray impl...原创 2019-06-25 22:38:01 · 417 阅读 · 0 评论 -
Yaconf 高性能配置
1、简介:一个高性能配置扩展管理 yaconf.so2、 链接:Yaconf – 一个高性能的配置管理扩展3、高性能yaconf 编译安装 1、https://github.com/laruence/yaconf点击连接 2、wget https://github.com/laruence/yaconf.git 或者直接download下载yacon...原创 2019-06-25 23:10:00 · 606 阅读 · 0 评论 -
tp5.1 Loader自动加载分析(一)
1、加载流程图 1、框架启动执行 index.php // 加载基础文件require __DIR__ . '/../thinkphp/base.php'; 2、加载 Loader.php,并执行 register 方法// 载入Loader类require __DIR__ . '/library/think/Loader.php';//...原创 2019-06-22 18:06:10 · 3174 阅读 · 0 评论 -
__callStatic 学习
介绍:当类调用静态方法是,并且调用的方法不存在时,会调用 __callStatic 方法类代码:class Test{ public static function __callStatic($name, $arguments) { dump($name); dump($arguments); }}调用代码:...原创 2019-07-07 23:22:11 · 336 阅读 · 0 评论 -
tp5.1 Facade - 门面(四)
作用门面为容器中的类提供了一个静态调用接口,相比传统了静态方式调用,带来了更好的可测试性和扩展性。 代码使用 (这样写可以直接调用)两段代码执行的结果一样,实际执行的是在\think\Facade\Config$apps = \Config::get('app.');halt($apps);$apps = \think\Facade\Config::get('ap...原创 2019-07-07 23:42:35 · 1226 阅读 · 0 评论 -
tp5.1 IOC容器解析(三)
一、学习内容1、单列模式。2、注册树模式。3、php 反射机制。二、容器中图分解Container.png大体上就这么几点:1、设计模式:单列模式、注册数模式。2、php 反射思想(对应的方法)。3、依赖注入。三、分析主要的几个方法 1、get方法 =》make方法 /** * 获...原创 2019-07-03 22:58:01 · 967 阅读 · 0 评论 -
php设计模式(八 ) 注册树模式
注册树模式(Registry Pattern ):注册树模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含静态方法的抽象类来实现(或者通过单例模式)。也叫做注册器模式1、为什么需要注册树模式解决常用对象的存放问题,实现类似于全局变量的功能。 2、代码实现class Register{ /** ...原创 2019-07-01 11:40:28 · 205 阅读 · 0 评论 -
php 反射机制
一、介绍 PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。 反射是什么?它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的...原创 2019-07-01 11:50:25 · 1095 阅读 · 0 评论 -
tp5 框架执行流程、初始化应用(五)
1、执行 index.php 文件中的以下代码,在经过上述文章容器的学习,得知 app 对应返回的 是 think/App 类// 执行应用并响应Container::get('app')->run()->send(); 2、 在 run 方法中,第一步执行初始化应用 $this->initialize() 方法 if ($th...原创 2019-07-20 22:40:32 · 1324 阅读 · 0 评论 -
thinkphp error () 方法 和 try catch 出现的问题。
1、在学习的过程中,遇到了一个问题当用户名密码错误的时候:返回的为空。2、后台代码:try { // 判定username password $user = model('AdminUser')->get(['username' => $data['username']]); if (!$user || $user->status ...原创 2018-10-19 12:03:36 · 3315 阅读 · 2 评论 -
thinkphp5 使用error() 和 success 方法以弹窗的方式弹出。
一、例如写一个登陆注册的程序,我们想给用户的提示是以弹窗的方式展示。 1.1 在不做任何修改的情况下进行登陆操作是以下图这种方式展示的 1.2 那么我们如果想以弹窗的方式展示如何做呢?(这是我的方式,当然可能有别的方法)。 1.3 使用 ajax 提交数据。 这里使用layer的弹窗。 前端js代码: ...原创 2018-10-19 10:44:25 · 17546 阅读 · 9 评论 -
thinkphp3.2大C方法和支付宝app支付sdk中的C方法冲突了怎么解决
http://www.thinkphp.cn/topic/47014.html; 找到 shortcut.php使用了大C()方法,又查找了整个支付宝APP支付的SDK,发现都没有使用大C()方法,然后果断修改了 shortcut.php中的大C方法名,然后就正常使用,没毛病,不用担心影响其他使用!...转载 2017-09-14 18:38:31 · 1171 阅读 · 0 评论 -
thinkphp项目部署到Linux服务器上,报错“模板不存在”
最近一个项目部署到Linux服务器上去的时候,发现某些模板竟然会报错说“模板不存在:/Application/Admin/....”检查了服务器上的文件,并没有缺少文件,再次上传文件到服务器,还是报错。莫名其妙,怀疑是代码问题。仔细检查后,发现是模板的文件名问题:用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比...转载 2017-09-10 21:23:34 · 1344 阅读 · 2 评论 -
_STORAGE_WRITE_ERROR_
把项目上传到到服务器发现 这个错误 解决办法: chmod -R 777 Runtime 【我这里是cenos7】 因为写入权限有问题原创 2017-09-11 13:04:19 · 917 阅读 · 0 评论 -
第三方登录 QQ
1、登录 QQ 开发平台 https://connect.qq.com/ 在应用管理中通过创建应用得到 申请的 appid 和 appkey 填写相应的 域名配置 和 回到 网站回调域的配置。2、通过 http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD 下载 php Sdk包。 放入下载好的配置文件 , 点击设置配...原创 2017-11-29 21:12:32 · 780 阅读 · 0 评论 -
tp3.2 实现新支付宝支付接口 (手机网站支付)
1、准备工作1) 在https://docs.open.alipay.com/203/105910/ 下载好的demo 2) 私钥 和 公钥 在https://docs.open.alipay.com/58/103242 第 2)可能有些人不太理解 1) ...原创 2017-09-14 16:59:07 · 6337 阅读 · 5 评论 -
php文件下载解决乱码问题
1、 ob_end_clean() -- 销毁输出缓存区2、ob_clean --清空(擦掉)输出缓存区 3、flush -- 刷新输出缓存原创 2018-01-23 17:49:12 · 926 阅读 · 0 评论 -
TP5 接口与异常处理解决方案
1、在route.php中 定义路由: 2、定义api模块下的test的控制器: 故意把model写错 2、通过postman工具来测试 会返回以下错误 解决办法: 1、找到 think\Exception; 2、自定义render方法 /** * 通用化API接口数据输出 * @param int $sta...翻译 2018-05-08 22:49:55 · 8875 阅读 · 0 评论 -
Tp5 如何使用 restful api
TP5使用方式1、引入: use think\Route; Route::get Route::post Route::put Route::delete Route::resource5.0支持设置RESTFul请求的资源路由,方式如下:Route::resource('blog','index/blog');设置后会自动注册7个路由规则,如下:标识请求...原创 2018-05-08 15:42:03 · 2800 阅读 · 0 评论 -
tp5 获取器 (获取转化的值和原始值)
获取器 获取器的作用是在获取数据的字段值后自动进行处理,例如,我们需要对状态值进行转换。 1、在model下定义 语法:get + 字段名+Attrclass User extends Model { public function getStatusAttr($val...原创 2018-06-06 09:39:49 · 5268 阅读 · 0 评论 -
tp5 (修改器)
修改器作用:修改器的作用是可以在数据赋值的时候自动进行转换处理修改器方法的命名规范是:set + 属性名的驼峰命名+ Attrclass User extends Model{ public function setNameAttr($value) { return strtolower...原创 2018-06-06 09:51:41 · 2870 阅读 · 0 评论 -
SQLSTATE[HY000] [2002] Connection refused
解决办法:把 host 修改为 localhost原创 2018-06-07 22:35:41 · 33787 阅读 · 0 评论 -
tp5.1 路由执行解析 (六)
1、为什么可以直接使用 Route::get 调用呢? 因为这个是执行的 facade门面模式,就不具体说了,接下来看具体代码的流程Route::get('hello/:name', 'index/hello');2、定位到 get 方法,第一个参数是路由规则,第二个是路由地址等等,发现最后都是定位到了 rule 方法, /** * 注册GET路由 ...原创 2019-07-20 23:39:33 · 1620 阅读 · 0 评论