自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 phpstrom 最新激活方式

大早起来,像往常一样打开 phpstrom ,然而提示说是 activation code 不能使用了,吓得我赶紧去 lanyuns 去看一下,果不其然,站长都发话说由于个人原因,不能正常使用了。那么要怎么处理呢,毕竟周一,大家都还要上班呢,万一被老板或者领导误认为摸鱼可不是太好。下面本人就给出三种方案解决此问题。激活码激活码16ZUMD7WWWU-eyJsaWNlbnNlSWQiO...

2019-12-03 13:50:00 636

原创 记录一次抓取万年历的天干地支,生肖和农历月份

由于运营部需求,需要将大量的名人信息进行统计,除了统计姓名和出生年月外,还需要统计与生日日期(阳历)相对应的天干地支,生肖,以及对应的农历月份。刚开始50个,由于量不大,部门每人分配几个轻松搞定。十分钟过后,150个,二十分钟后350个。。。再平均分配每人去统计,此时本人是千万只***在心中奔腾而过,如果需要统计成千上万个名人的话, 每个人什么事不用干,专门坐在电脑前百度算了,无疑是浪费时间和精...

2019-09-27 17:28:04 1097

原创 php温故一

基本语法php标记从html中分离(混编)指令分隔符注释9种原始数据类型四种标量类型 boolean integer float string以下情况被认为false,其他情况会认为true布尔值 FALSE 本身整型值 0(零)浮点型值 0.0(零)空字符串,以及字符串 “0”不包括任何元素的数组特殊类型 NULL(包括尚未赋值的变量)从空标记生成的 Simp...

2019-09-10 23:54:33 252

原创 linux基础一

怎么判断操作系统是 unix 还是 linux uname -a uname -m //查看系统是32位还是64位linux 操作系统发行版Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、So...

2019-09-10 09:31:53 203

原创 php新特性

标量类型声明两种方式:强制方式和严格方式int float bool string array interface callable 7种类型参数以及返回值的类型现在可以通过在类型前加上一个问号使之允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null//强制模式 会将参数强制转换为对应的参数类型declare(strict_types=1);f...

2019-09-10 09:30:25 234

原创 es6理解export与import

export 语句用于从模块中导出函数、对象或原始值,以便其他程序可以通过 import 语句使用它们导出的方式有两种,命名导出和默认导出一个模块中可以定义多个命名导出,但是只允许有一个默认导出导出单个特性// src/lib/test.jsexport let a = 1,b=2,c=3;//与 var 和 const 一样export function functionName...

2019-08-30 16:15:40 169

原创 swoft 学习笔记之数据库操作

查询数据查询一条数据,返回数据是一个实体或者null$id = $request->input('id',0);$res = Saying::find($id,['content','type']);$res = Saying::where('id',$id)->select('content','type')->first();查询多条数据,返回的是实体集合...

2019-08-29 09:14:28 1221

原创 swoft 学习笔记之数据库配置与实体定义

基础配置数据库的配置放置在 app\bean.php文件中,去掉了繁琐的.env文件配置,你可以认为配置的 db 是一个 bean 对象 return [ 'db' => [ 'class' => DataBase::class, 'dsn' => 'mysql:dbname=xlxd;host=192.168.10.10;port=3306',...

2019-08-28 11:34:42 813

原创 swoft学习笔记之异常处理

文章目录一、定义异常类二、定义异常处理类三、HTTP异常接管异常处理包含定义异常类和与之对应的异常处理类,处理类通常包含名字为 handle 的方法一、定义异常类<?phpnamespace App\Exception;Class ApiException extends \Exception { }二、定义异常处理类<?phpnamespace ...

2019-08-13 23:23:38 1458

原创 composer学习实践

文章目录一、基础知识安装依赖添加依赖更新依赖自动加载发布依赖二、学以致用,创建一个项目一、基础知识安装依赖 composer install install 命令将会检查锁文件 composer.lock 是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义),如果不存在 composer.lock 文件,Composer 将读取 compos...

2019-08-13 22:46:58 125

原创 swoft学习笔记之验证器

文章目录一、创建验证器验证项类型注解条件注解代码样例二、自定义验证规则步骤一:声明注解命令步骤二:声明注解解析步骤三:声明一个验证规则一、创建验证器@Validator(name=“ValidatorName”) 声明一个名字为 ValidatorName 的验证器验证项是组成验证器的唯一条件,标记有类型注解的属性就是一个验证项,一个验证器可以有多个验证项验证项属性的默认值就...

2019-08-12 22:24:31 688

原创 swoft学习笔记之request请求

文章目录获取 request 对象获取请求数据获取请求 method获取请求的 uri获取请求 headers获取 get 数据获取 post 数据获取 get & post 数据获取上传文件其它一些方法获取 request 对象通过控制方法参数注入的方式<?php declare(strict_types=1); namespace app\Http\C...

2019-08-12 21:20:30 1301

原创 swoft学习笔记之response篇

响应对象 response响应对象 Response 为 Swoft\Http\Message\Response查看 response 对象源码,文件路径为 vendor/swoft/http-message/src/Response.phpclass Response implements ResponseInterface{ use CookiesTrait, Messag...

2019-08-12 21:19:19 876

原创 swoft学习笔记之控制器

文章目录创建控制器路由绑定请求对象获取请求对象请求对象获取请求数据响应对象获取响应对象响应对象返回数据参数验证代码样例基类Controller实现类创建控制器主要通过 @Controller 注解实现,代码可以放在任意位置,但为了统一标准,建议放在 app/Http/Controller 目录下使用注解@Controller(prefix=“路由前缀”),需要引入 Controller 类...

2019-08-11 22:29:51 874

原创 swoft学习笔记之配置

文章目录一、设置配置数据环境配置应用配置二、配置的数据格式三、获取配置数据一、设置配置数据swoft 配置可以划分为环境配置(env)与应用配置(config)环境配置环境配置通常写在 env 文件并以 key-value 的格式进行配置,key以大写的字母,数字与下划线组合。应用配置应用配置数据是由一个 bean 对象管理的,可以在 app/bean.php 文件设置应用配...

2019-08-11 19:05:05 680

原创 Swoft之PHPstrom利器

修改 PhpStorm 的 PHP Class 模板删除原先的 PHP 头注释 #parse("PHP File Header.php")添加 PHP 严格模式 declare(strict_types=1);安装 PhpStorm Annotation 插件为了方便注解,使用此插件可以方便的引用相关类文件两种方式:setting->plugin...

2019-08-08 18:24:55 785

原创 vagrant开启smb文件共享

所需软件以及版本vagrant_2.2.4_x86_64.msivagrant-centos-7.2.boxVirtualBox-6.0.8-130520-Win.exephp 7.2.19swoole 4.4.2新增box每个虚拟机一个目录,在原有的虚拟机xlxd,新增一个swoft,新建swoft文件夹,并在此目录下执行以下命令vagrant box listvagra...

2019-08-06 16:43:30 623

原创 windows升级powershell

首先查看powershell版本可以通过cmd或者powershell两种方式查看windows + R 首先执行 powershell 然后执行$PSVersionTable命令查看版本信息或者桌面左下脚搜索powershell,然后执行$PSVersionTable命令查看版本信息升级powershell如果版本至少3.0可以忽略以下操作powershell下载地址根...

2019-08-06 16:21:21 7719

原创 快速了解Vuex

安装npm install vuex --save创建Storeimport Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)const state = { }const getters ={ }const mutations = { }const actions = { }const store...

2019-07-27 15:00:44 133

原创 快速了解vue路由

创建一个路由实例的配置选项使用 new Router 创建了一个新的路由实例,其配置项说明:mode:路由模式,默认值 ‘hash’ 使用井号( # )作路由,值 ‘history’ 可利用 History API 来完成页面跳转且无须重新加载;routes:具体的路由配置列表,用到的配置项说明:path:路由的路径;name:路由的名称;component:对应的视图组件;通过注...

2019-07-27 14:10:22 161

原创 es6基础

let与constlet声明的变量只在它所在的代码块有效var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined,而let不存在变量提升ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上...

2019-07-27 12:18:38 73

原创 使用cli3创建webpack模板项目

使用cli3创建的项目很简洁,如果你想使用webpack模板创建项目,或者习惯用vue init的方式创建项目怎么办?不用担心,cli3有提供插件可以使用cli3版本之前的方式创建项目,下面演就演示一下执行vue init --help它会提示你首先安装@vue/cli-init这个插件执行vue install -g @vue/cli-init命令执行vue init w...

2019-07-18 18:21:45 467

原创 使用vue-cli3创建项目并引入element

创建项目vue-cli3创建项目有两种方式,一种是通过命令行,一种是通过UI界面创建,在此我们使用命令行创建在指定项目根目录执行 vue create -n myproject 命令初始化项目,注意-n选项,如果不带-n,初始化项目的时候,也进行git初始化系统提示两个选项进行选择:一是默认安装bable、eslint,二是自定义安装,我选择第二种根据罗列出的几个选项和提示,我只选择...

2019-07-17 18:27:00 1164

原创 windows上的nvm的安装与使用

背景我们在开发或者维护项目的时候,由于历史的原因,不通项目用的node或者npm版本不一致,这无疑给我们开发维护增加了困难。为了解决这个困难,Node Version Manager 应运而生,简称nvm,它是 node 版本管理,方便在你的电脑或者虚拟机上安装不同版本的node/npm进行开发和维护,很好的降低了成本。准备工作如果在此之前你安装了node的话,请彻底卸载相关内容,如果...

2019-07-17 11:03:29 187

原创 完美解决composer提示输入用户名和密码

问题描述今天项目开发更新依赖的时候,出现以下提示:Authentication required (packagist.phpcomposer.com): Username:之前一直没出现过如此情况,这是为什么呢?忽然想到之前用的镜像源是https://packagist.laravel-china.org,但是前几天看到laravel官网说不再维护了,选择跟阿里云合作,共同维护...

2019-07-15 21:47:17 2871

原创 TP5编写小程序接口的不完备总结

面向对象编程面向对象的基本原则高内聚,低耦合命名空间关键字namespace定义命名空间引入方式use关键字(use 也可用于函数,常量等),命名空间最前面可以省略反斜杠\PSR-0规范命名空间与目录结构要一致类名采用大驼峰式的命名格式一个php文件只有一个类类的定义class关键字加类名(数字字母下划线组合,尽量做到语义化,看到类名就知道其作用...

2019-07-15 15:28:34 918

原创 策略模式

策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法class Context{ /** * @var ComparatorInterface ...

2019-07-13 17:34:38 84

原创 适配器模式

适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡适配器包括类的适配器和对象的适配器,将一个类...

2019-07-13 16:41:36 97

原创 注册树模式

注册树模式注册模式(Registry)也叫做注册树模式,注册器模式。注册模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含静态方法的抽象类来实现(或者通过单例模式)abstract class Registry{ protected static $storedValues = []; public static function set...

2019-07-13 15:32:37 342

原创 抽象工厂模式

抽象工厂模式抽象工厂模式与工厂方法模式最大的区别:抽象工厂中每个工厂可以创建多种类的产品;而工厂方法每个工厂只能创建一类允许使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么,这样就可以从具体产品中被解耦,解决了工厂模式的每个工厂只能创建一类产品优点:降低耦合,抽象工厂模式将具体产品的创建延迟到具体工厂的子类中,这样将对象的创建封装起来,可以减少客户端与具体产品...

2019-07-13 15:23:56 144

原创 工厂模式

工厂模式工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行应用场景:主要解决接口选择的问题,我们明确地计划不同条件下创建不同实例时;解决简单工厂模式的缺点,之所以可以解决简单工厂的问题,是因为工厂方法模式把具体产品的创建...

2019-07-13 15:21:32 104

原创 简单工厂模式

简单工厂模式简单工厂模式又叫静态方法模式,现实生活中,工厂是负责生产产品的;同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为工厂类静态工厂模式只使用一个静态方法来创建所有类型对象, 此方法通常被命名为 factory 或 build优点:将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,实现了解耦;把初始化实例时的工作放到工厂里进行,使代码更容易维护...

2019-07-13 15:20:31 83

原创 单例模式

命名空间PHP 命名空间可以解决以下两类问题:用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。自动加载spl_autoload_register函数实现自动加载功能,支持匿名函数,函数名字符串,数组等传参方式PSR-0规范命名空间必须与绝对路径...

2019-07-13 15:19:29 66

原创 设计模式的设计原则

单一职责原则一个类只有一个引起它变化的原因,如果一个类承担的职责过多,即耦合性太高,一个职责的变化可能会影响到其他的职责开放封闭原则对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类里氏代替原则子类必须替换掉它们的父类型在软件开发过程中,子类...

2019-07-13 10:18:04 88

原创 再探面向对象补充

面向对象扩展面向对象:一直把对象放在心上,实质上就是把生活中的要解决的问题都用对象的方式进行存储,对象之间是可以互动的对象的组成:属性与方法对象的特点:独一无二的特定事物,可以重复使用面向对象基本思路:识别对象,识别对象的属性,识别对象的行为面向对象的基本原则:对内是高内聚,对外是低耦合面向对象的目的达到代码的重用性 灵活性 扩展性类常量是属于类的类 接口 函数 常量都会受命名空...

2019-07-12 21:34:46 95

原创 再探面向对象

类的定义每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义一个类可以包含有属于自己的常量,变量(属性)以及函数(方法)当一个方法或属性在类定义内部被调用时,有一个可用的伪变量 $this面向对象的基本原则:高内聚,低耦合class SimpleClass { //声明属性 public $var = 'var i...

2019-07-11 23:27:52 129

原创 一些杂项

数据冗余在product表中我们的main_img_url和img_id是指向相同的url,为什么要数据冗余?这里是出于性能的考虑,当数据量如果比较多,嵌套循环(theme-product-image)也多的情况下,查询起来性能会有所影响,product表如果要去image表中查询图片url,在有足够多的product时,查询性能就会有所影响,而做了数据冗余就可以减少去image表中查询url...

2019-07-09 15:56:04 100

原创 TP5API开发模型关联和图片url设置和API版本号

关联模型关联模型可以分为主模型,关联模型,以一个模型为参照的模型为主模型,与之对应的模型称为关联模型。如果在含有外键的表或模型中编写模型关联则使用belongsTo方法,如果在没有外键的表或模型中编写模型关联则使用hasOne方法一对一:hasOne,belongsTo 参数列表:关联模型,关联外检,主键一对多:hasMany,belongsTo多对多:belongsToMany,b...

2019-07-04 15:15:35 390

原创 TP5模型不完全解读

正式介绍ORM之前我们需要了解第一个原因原生的SQL语句没有使用查询构建器等简洁方便;第二个是主要原因,查询数据器封装了对不同数据库的操作,提供给开发者统一的SQL操作语法,不需要关心原生SQL的差异性链式方法的where方法有三种写法,表达式、数组法(不建议使用)、闭包法。开启SQL日志信息记录可以帮助分析写数据库查询语句是否足够的好,在性能调优以及找错误有很大的帮助。生产环境一般不要开...

2019-07-03 18:11:38 827 1

原创 开发Api常用Http状态码

HTTP状态码的分类状态码分类描述1**服务器收到请求,需要请求者继续执行操作2**操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误1xx临时响应,表示临时响应并需要请求者继续执行操作的状态代码。代码说明解...

2019-07-03 15:40:58 1446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除