- 博客(293)
- 资源 (23)
- 问答 (2)
- 收藏
- 关注
原创 简单工厂模式
简单工厂模式简单工厂模式,包含产品、工厂、调用方三个概念,其中,产品可以抽象,由子类进行具体实现。常规的用法是调用方直接创建产品类去使用,简单工厂中增加了工厂这一概念,调用方通过工厂创建产品类进行使用,这样由工厂类负责产品的创建,便于统一管理,在调用方有很多的时候,如果产品类有改变,只需要工厂类进行改变即可,调用方无需改变(除非产品类内部构造也改变)。产品类有新增的时候,只需要在工厂类中新增产品类的创建即可,调用方无需再创建。简单工厂因为需要在工厂中根据参数判断需要创建的产品类,一旦有新增产品类,需要
2021-07-12 18:13:18 362
原创 在线工具集合
1、在线流程图:https://www.processon.com/diagrams注册:https://www.processon.com/i/5c334916e4b025fe7c72ef84
2021-01-21 10:52:34 439 1
原创 php yield
最近发现了一个有意思的功能——生成器(generator),按我的理解,生成器可以生成类似数组的对象,这些对象也可以通过遍历取出,与数组很像,但是里面每个元素都是对象。官方文档在此:https://www.php.net/manual/zh/language.generators.syntax.php官方给的实例如下:<?phpfunction gen_one_to_three() { for ($i = 1; $i <= 3; $i++) { //注意变量$i的
2020-12-31 17:53:58 572
原创 php魔术方法__sleep()、__wakeup(); serialize()、unserialize()
<?php/** * @Author: Leen * @Date: 2020-12-10 11:12:59 * @Email: lining@yoozoo.com * @Last Modified By : Leen */class Wakeup{ private $name, $age, $info; function __construct($name, $age) { $this->name = $name;
2020-12-10 12:16:57 474
原创 redis持久化
redis持久化,乍一听这是个什么东东,很好奇,后来查了下原来是将redis数据由内存保存到磁盘。说白了,redis是内存型数据库,存取很快,然而既然是在内存中断电等情况下内存丢失就会造成数据丢失,因此就有了持久化的必要。redis的持久化有两种,RDB(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化)和AOF(append only file)。RDB:对数据进行全量备份,内存快照(我的理解是在某一时刻redis中所有的数据,不同时刻数据可能不一致,类比商城系统中订单快照),
2020-11-12 18:30:56 195
原创 git丢弃本地修改的所有文件(新增、删除、修改)
本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令:git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。git reset --hard HASH #返回到某个节点,不保留修改。git reset --soft HASH #返
2020-11-04 12:14:13 472490 25
原创 变量类型
Go语言在声明变量时,自动对变量对应的内存区域进行初始化操作。每个变量会初始化其类型的默认值。整型和浮点型变量的默认值为 0 和 0.0。字符串变量的默认值为空字符串。布尔型变量默认为 bool。切片、函数、指针变量的默认为 nil。Go语言的基本类型有:boolstringint、int8、int16、int32、int64uint、uint8、uint16、uint32、uint64、uintptrbyte // uint8 的别名rune // int32 的别名 代表一个
2020-10-28 17:44:08 191
原创 变量声明
变量声明使用var关键字,格式为:var name type,其中,var 是声明变量的关键字,name 是变量名,type 是变量的类型。注:go语言中变量类型在变量名称的后面,与PHP等语言不一样。标准格式定义单个变量//定义一个名称为“varName”,类型为"type"的变量var varName type定义变量并赋值(初始化)//初始化“varName”的变量为“value”值,类型是“type”var varName type = value批量格式定义多个变量
2020-10-28 17:10:22 1874
原创 基础
一、每个文件开头都需要package// project main.gopackage main二、import导入所需包名import ( "fmt")Author:leedaning本文地址:
2020-10-28 15:08:40 143
原创 导入包及用法
import导入包,可以直接导入,如:import (“fmt”)使用:fmt.Println(“Hello world.”)前面加“.”号,可以使用的时候可以省略fmt.,直接使用fmt包中的函数import (. “fmt”)使用:Println(“Hello world.”)指定别名import (f “fmt”)使用f.Println(“Hello world.”)...
2020-10-27 19:01:28 1533
原创 关键字-保留字
关键字-保留字break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return varAu
2020-10-22 10:34:32 268
原创 单例模式及验证是否同一个实例
单例模式<?php/** * @Author: Leen * @Date: 2020-09-18 11:57:41 * @Last Modified By : Leen */class Singleton{ private static $_instance = null; private static $num = 0; private function __construct(){} private function __clone(){
2020-09-18 15:05:03 860
转载 nginx.conf配置详解
一直对nginx的配置没有深入了解,只是会用而已,今天心血来潮想要具体了解下,发现了一篇比较好的文章,学习下,内容如下:Nginx的配置文件nginx.conf配置详解如下:user nginx nginx ;Nginx用户及组:用户 组。window下不指定worker_processes 8;工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。error_log logs/error.log;error_log logs/error.log notice;error_
2020-05-15 15:42:17 362
原创 mysql表分区后添加主键(primary key)
数据库中表使用了日期字段进行了分区,没有主键,只有索引,因为上线需要添加主键,就跟平时一样设置id为主键,但是添加不了,后来查询了资料之后发现,主键要必须要包含分区字段,如:表中有id、name、date三个字段,分区使用date字段,那么设置主键的是时候必须包含date字段,可以设置date为主键也可以使用组合主键(eg:primary key(id, date))Author:leedani...
2020-04-17 17:24:57 2319
转载 mysql表分区
Mysql表分区SQL标准没有提供太多有关数据存储物理方面的指导。SQL语言本身旨在独立于与其配合使用的模式,表,行或列所基于的任何数据结构或媒体。尽管如此,大多数先进的数据库管理系统已经发展了一些方法来确定将用于存储特定数据的物理位置的文件系统,硬件或什至两者。在MySQL中, InnoDB存储引擎长期以来一直支持表空间的概念,而且即使在引入分区之前,MySQL Server仍可以配置为使用不...
2020-04-17 17:12:54 321
原创 php中float转int精度丢失的问题
今天遇到一个问题,$19.99转换为内部货币时的比例是1:100,所以乘以100,结果是1999,但是订单信息描述中将数据转换为int(不确定, 因为里面是将含有该float数值字段的数组做json_encode处理的)时,数值变为了1998。原来float和int在计算机的二进制存储方式不同,参考:https://www.cnblogs.com/ClassNotFoundException/p/...
2019-11-14 21:12:33 2779
原创 Sublime text 3格式化代码插件psr2风格
常用的格式化插件有CodeFomatter 和 phpfmt,个人更喜欢CodeFormatter一点儿。##安装:1、Ctrl+Shift+P,输入CodeFormatter,然后回车,即可安装。##配置:1、Preferences->Browser Packages,回到上一级目录,即Data目录下,新建CodeFormatter文件夹,并在里面创建php文件夹,并将本地的php...
2019-08-27 17:49:32 1343
原创 sublime text 3使用格式化代码插件CodeFomatter时报错 PHP Deprecated: The each() function is deprecated.
##问题描述sublime text 3使用Ctrl+Alt+f快捷键对代码格式化的时候报错如下:CodeFomatterFormat error:PHP Deprecated: The each() function is deprecated.This message will be suppressed on further calls in phar://D:/Program Fi...
2019-08-27 17:26:25 2329
原创 git revert 撤销合并(commit)
问题描述有三个分支:master、develop、debugdevelop分支合并了修复bug的debug分支的内容,develop上又因为开发等原因产生了几个新的commit,然后将develop分支合并到master进行上线,上线后发现develop合并debug的时候因为失误产生了一个紧急的严重bug,但是develop合并debug之后的几个commit中没问题,且涉及到的改动特别多...
2018-12-07 17:38:24 9648
原创 Error 500curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used i
问题:本地开发环境没问题,测试环境报错:Error 500curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead原因:代码中使用了curl模拟https请求,如:if( $https ){ curl_setopt($cu...
2018-07-26 16:04:44 15409 2
原创 mysql插入数据时反斜杠\丢失
问题: 向mysql数据库插入带有反斜杠”\”的字符时,数据库中保存的时候反斜杠”\”会丢失,如:update message_table set emoji = '["[:\u5fae\u7b11]","[:\u5927\u7b11]"]' where id = 24解决方法:多加一个反斜杠即可,如:update message_table set emoji = '["[...
2018-06-29 18:34:14 6700
原创 接口跨域问题解决
接口很容易碰到跨域请求,如果跨域只要把域名加入到允许访问列表即可,但是由于获取域名方法不同造成能得到的域名格式有多种,以下是code中碰到过的问题能够比较全面解决的解决跨域的代码,分享出来供大家参考,也为自己做个笔记。/** * [返回json格式的结果] * @method return_json * @param array $retu...
2018-06-29 18:08:20 1163
原创 php扩展下载
下载地址:https://windows.php.net/downloads/pecl/releases/Author:leedaning 本文地址:
2018-06-20 14:33:39 1672
原创 php require
今天研究Yii源码的时候无意间发现了require的一个一直不知道的功能,以前使用require主要是引入文件,以为是把文件内容引入进来,今天突然醒悟如果是引用的php文件会引入执行,即不但原样引入进当前文件还会进行php解析执行。前一段要做一个根据配置文件中的配置进行不同的操作,之前一直不知道该怎么读取数组配置文件,现在终于明白了。 配置文件: config.php<?phpreturn [
2017-10-31 18:43:26 1058
原创 查看YII版本
Yii中查看框架的版本用:echo Yii::getVersion();Author:leedaning 本文地址:http://blog.csdn.net/leedaning/article/details/78403302
2017-10-31 14:49:16 4610 2
原创 Linux实现使用定时任务执行php程序(以及定时任务url带参数)
php程序已经写好了,位置:/data/html/XXX/redis_to_mysql.php,php安装位置为:/app/bin/php,查找php安装位置使用 whereis php which php php -vwhich:这条命令主要是用来查找系统PATH目录下的可执行文件。其实就是查找那些我们已经安装好的可以直接执行的命令,which是可以分辨出命令的别名的,也可以通
2017-10-20 19:01:39 10170 1
原创 php实现redis消息队列将数据保存到mysql
需求: 将消息先保存到redis,然后将redis中的数据定时保存到mysql中分析: redis保存为list,然后使用系统的定时任务调用脚本程序,通过脚本调用php文件进行处理。windows脚本(live.bat):"D:\Program Files\phpStudy\php\php-5.6.27-nts\php.exe" -f "D:\My\Program\live.gtarcade.c
2017-10-19 19:20:26 6530
原创 thinkphp 2.0实现从cookie读取配置设置语言
需求: 根据网站的cookie中的lang设置的语言进行全站的多语言显示分析: 因为tp里面多语言是通过url添加参数l=zh-cn这种形式进行判断的,本来想着在入口文件中追加参数到url后面,可惜失败了。最后通过分析tp多语言实现的代码mini_client/ThinkPHP/Lib/Think/Core/App.class.php 中的checkLanguage() 方法,找到了可以设置CO
2017-10-18 15:19:11 1092
原创 Thinkphp 2.0 路由模式
ThinkPHP的访问模式分为四种模式0 普通模式 http://www.leedaning.com/index.php?m=user&a=show1 pathinfo模式 http://www.leedaning.com/index.php/user/show(thinkphp的默认模式)2 rewrite重写模式(伪静态) 可以自己写相关rewrite规则,也可以使用Thinkphp提供的
2017-10-17 18:43:18 661
原创 sublime text 3 定位打开文件到左侧目录结构
有两种方法:一、在打开的文件中右键选Reveal in Side Bar二、安装SyncedSideBar插件。Author:leedaning 本文地址:http://blog.csdn.net/leedaning/article/details/77977538
2017-09-14 10:39:11 23238 1
翻译 cake php 调度过滤器
有时候需要对请求进行过滤,cake php中实现如下:首先,在src/Routing/Filter创建所需的过滤器TrackingCookieFilter .php(/src/Routing/Filter/TrackingCookieFilter .php),内容如下:<?phpnamespace App\Routing\Filter;use Cake\Event\Event;use Cake\
2017-07-21 11:52:22 709
原创 cakephp表关联查询
users表:CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(30) DEFAULT NULL COMMENT '用户名', `email` varchar(50) NOT NULL COMMENT '邮箱', `phone` var
2017-07-17 18:16:28 1523
原创 php开启redis扩展
首先需要安装redis,安装之后需要安装php_redis扩展,php_redis扩展下载地址如下:php redis 扩展: 下载地址: 1、http://windows.php.net/downloads/pecl/releases/redis/ 2、https://pecl.php.net/package/redis这两个地址的还是比较全面的,下载对应的版本的即可。 注:
2017-07-07 18:36:01 19284
原创 php+nginx+mysql环境配置windows
之前一直使用的集成环境phpStudy,但是cakephp需要使用php的intl扩展,不知道怎么回事儿集成环境里不能使用,只好自己手动搭建环境来使用了。 准备工作如下:nginx下载地址:http://nginx.org/en/download.htmlphp下载地址:http://windows.php.net/download#php-7.1mysql下载地址:https://dev.mys
2017-07-05 18:37:56 920
原创 从远程分支获取代码到本地
Command line instructionsGit global setupgit config --global user.name "leedaning"git config --global user.email "leedaning@163.com"Create a new repository(本地没有目录)git clone git@gitlab.com:leedaning/My
2017-06-27 11:59:28 766
原创 php判断ip是否是内网/外网ip
工作需要判断ip是否是内网ip,本来想着使用正则自己写一个呢,后来发现php自带的有现成的函数[filter_var()](http://www.w3school.com.cn/php/func_filter_var.asp) 。 除了ip验证外还有许多都可以验证,如url、email等等验证ip是否是内网ip,如果是的话返回false,否则返回ip;filter_var($ip, FILTER
2017-05-27 15:19:28 8331
原创 Call to undefined method Illuminate\Foundation\Application::bindShared()
照之前的方法composer一个叫illuminate/html的Package,使用中发现不能用,并且composer update的时候会抛出错误:[Symfony\Component\Debug\Exception\FatalErrorException]Call to undefined method Illuminate\Foundation\Application::bindShared
2017-05-15 18:27:27 3789
原创 https页面打不开
问题:在手机微信客户端内置浏览器打开https网址空白,但是在微信PC客户端内置浏览器和其他PC浏览器、手机浏览器都可以打开(后来才发现打开的时候是不受浏览器信任的)环境:windows+nginx+微信(PC、手机)原因:网站服务器使用的nginx,传输协议使用的https,配置nginx支持https的时候证书使用的是自己生成的,原来要使用相关机构(如:证书联盟)颁发的证书才行。就相当于本地虚拟
2017-05-10 17:16:48 8015
原创 mysql主键id从固定值自增,id为固定范围值
需求:卡号为8位纯数字分析:卡号作为主键,范围为:10000000-9999999问题:数据库字段没有找到可以固定范围的类型。方法: 首次插入的时候将主键值设为10000000,以后再次插入的时候在原有基础上加1。在laravel使用firstOrCreate([‘id’=>$id]),然而无论值设为多少,插入的时候都是从零开始的连续值,后来经过多次尝试才明白,第一插入需要使用inster
2017-05-09 16:53:01 4179
原创 token验证失败
微信公众平台后台配置的时候出现“token验证失败”,如图: 服务器程序如下: //检查签名 public function checkSignature(Request $request) { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"];
2017-05-05 11:54:29 2009
php_igbinary-1.2.1-5.5-nts-vc11-x64
2017-09-05
php_redis-3.0.0-7.0-nts-vc14-x86
2017-09-05
Redis-x64-3.2.100.msi
2017-09-05
httpwatchpro.exe
2015-04-01
ThinkPHP3.2.2完全开发手册.chm
2014-12-30
ci框架 2.0中文手册chm版
2014-12-30
正则表达式系统教程 CHM版
2014-12-30
php中文手册 chm版
2014-12-30
php微信扫码支付模式二支付成功异步回调未执行
2016-07-09
随机生成的字符串为什么重复率这么高?求高手解惑
2015-01-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人