php应用
Yee Jason
这个作者很懒,什么都没留下…
展开
-
layer 流加载
流加载: 1、手工加载layui.use('flow', function(){ var flow = layui.flow; flow.load({ elem: '#menu-list' //流加载容器 //,scrollElem: '.menu-botR' //滚动条所在元素,一般不用填,此处只是...原创 2018-09-12 22:30:05 · 6213 阅读 · 2 评论 -
php设计模式(二)工厂模式
/** * Interface Db * * 面向接口,只需要知道接口的调用,不需要知道接口具体的实现 * * 在php里面就有好几种方法,mysql扩展,mysqli扩展,PDO扩展。 * 我就是想要一个对象用来以后的操作,具体要哪个,视情况而定喽。 * 既然你们都是连接数据库的操作, * 你们就应该拥有相同的功能, * 建立连接,查询,断开连接...(此处显示接口的重要性)...原创 2019-01-27 01:18:36 · 119 阅读 · 0 评论 -
php设计模式(三)观察者模式
//不同的对象,会有不同的处理方式/** * 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式, * 就是在事件的代码之后直接加入处理逻辑, * 当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的 * ,侵入式的,增加新的逻辑需要改变事件主题的代码 * 观察者模式实现了低耦合,非侵入式的通知与更新机制。 */interface Wemessage{ ...原创 2019-01-27 02:20:50 · 104 阅读 · 0 评论 -
php设计模式(四)职责链模式
<?php/** * Created by PhpStorm. * User: insei * Date: 2019/1/27 * Time: 7:44 PM */// 职责链模式(又叫做责任链模式) 包含了一些命令对象和一些处理对象,每个处理对象决定它能// 出来那些对象,它也知道把自己不能处理的命令交给下一个处理对象,该模式还描述了往该链添加// 新的处理对象方法。...转载 2019-01-27 21:04:09 · 170 阅读 · 0 评论 -
php设计模式(五)装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 * 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 * 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。 * 优点:装饰...原创 2019-02-09 15:24:41 · 136 阅读 · 0 评论 -
php设计模式(六)桥接模式
作用:将两个不相关的类结合在一起,通过两个类中的方法和属性,得到新的功能// 讲师分配abstract class Students{ abstract public function classroom();}class OpenStudents extends Students{ public function classroom() { ...原创 2019-02-09 17:03:52 · 137 阅读 · 0 评论 -
php设计模式(七)适配器模式
把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器,或者比喻为一个“界面”,统一或屏蔽了那些类的细节。适配器模式还构造了一种“机制”,使“适配”的类可以很容易的增减,而不用修改与适配器交互的代码,符合“减少代码间耦合”的设计原则。 interface signle{ public function config(); public funct...原创 2019-02-09 17:05:39 · 121 阅读 · 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 · 564 阅读 · 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 · 3134 阅读 · 0 评论 -
__callStatic 学习
介绍:当类调用静态方法是,并且调用的方法不存在时,会调用 __callStatic 方法类代码:class Test{ public static function __callStatic($name, $arguments) { dump($name); dump($arguments); }}调用代码:...原创 2019-07-07 23:22:11 · 320 阅读 · 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 · 1206 阅读 · 0 评论 -
tp5.1 IOC容器解析(三)
一、学习内容1、单列模式。2、注册树模式。3、php 反射机制。二、容器中图分解Container.png大体上就这么几点:1、设计模式:单列模式、注册数模式。2、php 反射思想(对应的方法)。3、依赖注入。三、分析主要的几个方法 1、get方法 =》make方法 /** * 获...原创 2019-07-03 22:58:01 · 919 阅读 · 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 · 1263 阅读 · 0 评论 -
yii2.0 安装advanced 模版(window)
1) 、执行 init.bat文件 解决办法:配置环境变量 把php.exe执行前的文件放入环境变量中 2、在控制台执行 php init 命令 开启php.ini 文件中的extension=php_openssl.dll 3、选择0 (开发模式) 选择yes4、安装完成5、配置数据库的连接 、密码等 建立数...原创 2017-08-15 16:23:30 · 263 阅读 · 0 评论 -
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 · 360 阅读 · 0 评论 -
令人困惑的strtotime
$time = "2018-07-31";// 获取前一个月的日期echo date('Y-m-d', strtotime("$time - 1 month"));// 这里出现的居然是 2018-07-01 我们来模拟下date内部的对于这种事情的处理逻辑:1. 先做-1 month, 那么当前是07-31, 减去一以后就是06-31.2. 再做日期规范化, 因为6月没有3...转载 2018-09-12 12:07:52 · 151 阅读 · 0 评论 -
简化 php执行命令
1、vim ~/.bash_profile 2、加入 alias php=/usr/local/php/bin/php (别名=安装的php命令) 3、source ~/.bash_profile 这样就可以使用了原创 2018-05-09 09:17:34 · 448 阅读 · 0 评论 -
php 中 json_decode 解析返回结果为 null 解决办法
今天在做授权登录时保存返回的数据时使用 json_encode 函数保存数据,但是当使用json_decode 函数解析时,返回 null。接着baidu。找了一部分资料。 原因是:json_decode要求的字符串比较严格: 1. 使用UTF-8编码 2. 不能在最后元素有逗号 3. 不能使用单引号 4. 不能有\r,\t,如果有请替换使用 echo json_...转载 2018-05-08 14:50:02 · 14764 阅读 · 0 评论 -
源码安装 swoole 扩展
准备工作 1)在 www.swoole.com 中 git 中复制链接 2)安装之前需要安装 autoconfig 和 gcc 依赖包执行步骤:1)yum install git2)git clone https://gitee.com/swoole/swoole.git(复制的链接)3)cd swoole4)/usr...原创 2018-04-14 15:23:04 · 322 阅读 · 0 评论 -
源码安装 php7
1) 在php官网 php.net 下载 php的压缩包 例如(php-7.2.4.tar.bz2) 2)tar jxvf php-7.2.4.tar.bz2 3)yum install gcc gcc++ libxml2-devel (php 的依赖包 ,为了防止后面编译出错) 4)cd php-7.2.4 目录中 (解压好的目录) 5) ./configure --pre...原创 2018-04-14 15:17:20 · 161 阅读 · 0 评论 -
PHP7新特性 What will be in PHP 7/PHPNG
本文结合php官网和鸟哥相关文章总结: 官网:http://www.php7.ca/ https://wiki.php.net/phpng PHP7将在2015年12月正式发布,PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。 该 发布版本将会专注在性能加强,源自PHP版本树中的phpng分支。...转载 2017-12-11 10:03:02 · 236 阅读 · 0 评论 -
第三方登录 (微博登录 web)
1、通过进入 http://open.weibo.com/ 进入微博开发平台 ,登录微博帐号 点击网站应用 接入微博登录 。通过创建应用申请 key 和 Secret。进入开发, 点击 https://github.com/xiaosier/libweibo下载微博sdk包。 2、开发:删除不需要的文件、只留下这两个文件 放...原创 2017-11-29 21:34:51 · 2673 阅读 · 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 · 766 阅读 · 0 评论 -
window下 安装 php redis
1、redis简介redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支...原创 2017-11-23 13:26:44 · 450 阅读 · 0 评论 -
php中的<<<STR STR的功能
Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。如下:<?php$name = '浅水游';print <<<EOT<html>...转载 2017-10-25 11:45:47 · 1054 阅读 · 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 · 6279 阅读 · 5 评论 -
php 保留字段小数点后两位小数
$num = 1.8333333$num = round($num,2); // 1.83原创 2017-09-03 15:40:09 · 3591 阅读 · 0 评论 -
tp5.1 路由执行解析 (六)
1、为什么可以直接使用 Route::get 调用呢? 因为这个是执行的 facade门面模式,就不具体说了,接下来看具体代码的流程Route::get('hello/:name', 'index/hello');2、定位到 get 方法,第一个参数是路由规则,第二个是路由地址等等,发现最后都是定位到了 rule 方法, /** * 注册GET路由 ...原创 2019-07-20 23:39:33 · 1553 阅读 · 0 评论