04 2019 档案

Yii2 设计模式——静态工厂模式
摘要:应用举例 yii\db\ActiveRecord 这里用到了静态工厂模式。 静态工厂 利用静态方法定义一个简单工厂,这是很常见的技巧,常被称为静态工厂(Static Factory)。静态工厂是 new 关键词实例化的另一种替代,也更像是一种编程习惯而非一种设计模式。和简单工厂相比,静态工厂通过一个 阅读全文

posted @ 2019-04-29 11:47 追风的浪子 阅读(284) 评论(0) 推荐(0)

Yii2 设计模式——简单工厂模式
摘要:除了使用 new 操作符之外,还有更多的制造对象的方法。你将了解到实例化这个活动不应该总是公开进行,也会认识到初始化经常造成“耦合”问题。 应用举例 这里使用了简单工厂模式。 简单工厂 简单工厂(Simply Factory)可以作为 new 关键词的一种简单代替。简单工厂其实不是一个设计模式,反而 阅读全文

posted @ 2019-04-29 11:45 追风的浪子 阅读(205) 评论(0) 推荐(0)

Yii2 设计模式——工厂方法模式
摘要:工厂方法模式 工厂方法模式(Factory Method Pattern)定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类吧实例化推迟到子类。 什么意思?说起来有这么几个要点: 对象不是直接new产生,而是交给一个类方法去完成。比如loadTableSchema()方法 这个 阅读全文

posted @ 2019-04-29 11:43 追风的浪子 阅读(338) 评论(0) 推荐(0)

Yii2 设计模式——Yii2 中用到哪些设计模式?
摘要:Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架。 《设计模式》一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语言,而是在面向对象编程中通用的思想,各个语言也都有各自的实现方式。 Yii 2 是一款优秀的 PHP Web 框架,Yii 阅读全文

posted @ 2019-04-28 22:43 追风的浪子 阅读(627) 评论(0) 推荐(0)

Yii2 设计模式——设计模式简介
摘要:我们首先来思考一个问题:作为工程师,我们的价值是什么? 笔者认为是——解决用户问题。 我们的任何知识和技能,如果不能解决特定的问题,那么就是无用的屠龙之术;我们的任何经验,如果不能对解决新的问题有用,那这经验就是过时的。工程师不是空谈者,也不是理论家,再好的理论,再好的设计,不能落地变成产品,不能解 阅读全文

posted @ 2019-04-28 22:42 追风的浪子 阅读(200) 评论(0) 推荐(0)

Yii2.0 RESTful API 基础配置教程
摘要:创建api应用 通过拷贝原有的应用,重命名得到新的应用 安装完 Composer,运行下面的命令来安装 Composer Asset 插件: 安装高级的应用程序模板,运行下面的命令: 初始化高级模板 拷贝backend目录,命名为api 应用配置 1. 数据库 打开 common\config\ma 阅读全文

posted @ 2019-04-26 13:15 追风的浪子 阅读(908) 评论(0) 推荐(0)

Yii 命令行使用总结
该文被密码保护。

posted @ 2019-04-26 00:32 追风的浪子

构建一个定时任务管理后台
该文被密码保护。

posted @ 2019-04-26 00:19 追风的浪子

Yii2 使用 QQ 和 Weibo 第三方登录源码
摘要:我们社区在 yii2-authclient 多次升级后,登录异常。一直想寻求一种通用的方法,尽量不重写 OAuth2, BaseOAuth 以及 OAuthToken 类, 所以本次直接在 initUserAttributes 方法返回结果的地方去修改,这样会受 yii2-authclient 升级 阅读全文

posted @ 2019-04-25 01:18 追风的浪子 阅读(175) 评论(0) 推荐(0)

命令生成所有数据库表模型以及 CRUD
摘要:将下列代码写到文件复制到项目 console\controller 目录下: 执行命令: 创建的model说明:只是在common下生成,并且继承自己重写 \yii\db\ActiveRecord 的父类模型文件 BaseActiveRecord, 创建crud,在backend的model目录写一 阅读全文

posted @ 2019-04-25 00:46 追风的浪子 阅读(294) 评论(0) 推荐(0)

常用的命令
该文被密码保护。

posted @ 2019-04-25 00:27 追风的浪子

Yii2日志:自定义日志目录和文件
该文被密码保护。

posted @ 2019-04-24 23:12 追风的浪子

Model的扩展应用,通过注解进行参数验证
摘要:1.基础类,common\service 目录下 2. 应用项目创建一个基类,继承上面的基础类,做一个中间的BaseModel 类,是为了每个独立的应用,都可以重写自己的方法。 虽然是空类,但是为了后期每个应用的扩展,也要写这一层。 说明:基础类 (全局) -> 基类(应用) -> 应用的调用 假如 阅读全文

posted @ 2019-04-24 01:28 追风的浪子

PHP之Trait详解
摘要:php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性 用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词,Trait不能实例化,同时 Trait 里不能有常量。 如下代码实例 阅读全文

posted @ 2019-04-23 01:26 追风的浪子 阅读(182) 评论(0) 推荐(0)

Yii2 之 ArrayableTrait 特性 & toArray 实战
该文被密码保护。

posted @ 2019-04-23 01:07 追风的浪子

PHP如何判断一个数组是一维还是多维
摘要:什么叫多维数组呢?多维数组,本质上是以数组作为数组元素的数组。 二维数组又称为矩阵,一个数组的元素如果是一维数组,那么我们就称这个数组是二维数组。 怎么判断一个数组是否是一维数组呢?通过count()函数 int count ( mixed $var [, int $mode ] ) -- 计算数组 阅读全文

posted @ 2019-04-22 12:51 追风的浪子 阅读(1917) 评论(0) 推荐(0)

PHP的 preg_match_all
摘要:语法:int preg_match_all ( string pattern, string subject, array &matches [, int flags] ) 这个函数的返回值是整个pattern匹配到的结果数量。 matches(注意这里是引用)是一个二维数组,matches[0] 阅读全文

posted @ 2019-04-22 12:41 追风的浪子 阅读(606) 评论(0) 推荐(0)

model下的 link用法
摘要:平时开发中,我们经常会遇到相关联的表,一个表生成数据的同时,另外一个表也要同步插入数据。 表结构: 现在我们新建一个账户,同时生成对应的配置表。代码如下: 实际开发中,我们可能会遇到这种情况,最开始我们只有A表数据,而没有B表,后来在开发功能中,才新增加了B表。 一般情况下,我们创建B表时,就会通过 阅读全文

posted @ 2019-04-22 02:25 追风的浪子

Yii2中多表关联查询(hasOne、hasMany、join、joinwith)
摘要:表结构 现在有客户表、订单表、图书表、作者表, 怎么来确定是一对多 还是一对一呢?这个很简单,比如下面的Customer,一个Customer有多个Order,所以就是一对多;又比如Book,一个Book只有一个作者(这里的情况就是一本书只有一个作者),所以就是一对一。 模型定义 下面是这4个个模型 阅读全文

posted @ 2019-04-22 00:58 追风的浪子 阅读(5083) 评论(0) 推荐(1)

生成表model时,强制自动生成AR文件
该文被密码保护。

posted @ 2019-04-22 00:14 追风的浪子

封装Bean类
该文被密码保护。

posted @ 2019-04-22 00:04 追风的浪子

ARBase 类
该文被密码保护。

posted @ 2019-04-21 22:50 追风的浪子

Golang 之 interface接口全面理解
摘要:什么是interface 在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了。 在Go中,接口是一组方法签名(声明的是一组方法的集合)。当一个类型为接口中的所有方法提供定义时,它被称为实现该接口。它与oop非常相似。接口指定类型应具有的方法,类型决定如何实现这 阅读全文

posted @ 2019-04-21 20:43 追风的浪子 阅读(25732) 评论(2) 推荐(2)

浅析rune数据类型
摘要:学习golang基础的时候,发现有个叫rune的的数据类型,当时不理解这个类型的意义。 查询,官方的解释如下: 看代码: 们猜测结果应该是:8:5个字符1个空格2个汉字。那么正确答案是多少呢? 结果是 :12 这是为什么呢? golang中string底层是通过byte数组实现的。中文字符在unic 阅读全文

posted @ 2019-04-21 19:59 追风的浪子 阅读(906) 评论(0) 推荐(0)

类型转换和类型断言
摘要:概述 由于Go语言不允许隐式类型转换,不同的类型之间的转换必须做显示的类型转换。而类型转换和类型断言的本质,就是把一个类型转换到另一个类型。 不过Go语言必须做显示的类型转换的要求也有例外的情况: 当普通 T 类型变量向 I 接口类型转换时,是隐式转换的(编译时转换);(T->I) 当 IX 接口变 阅读全文

posted @ 2019-04-21 19:40 追风的浪子 阅读(860) 评论(0) 推荐(1)

Go语言开发Windows应用
摘要:Go语言开发Windows应用 当第一次看到Go程序在windows平台生成可执行的exe文件,就宣告了windows应用也一定是Go语言的战场。Go不是脚本语言,但却有着脚本语言的轻便简单的特性。相较于php和python之类以服务器控制台为主要战场的脚本语言来说,Go语言是真正的圆了“动态语言的 阅读全文

posted @ 2019-04-21 01:41 追风的浪子 阅读(5356) 评论(0) 推荐(0)

go 调用windows dll 的方法
摘要:go 调用windows dll 的方法 ,代码如下: 阅读全文

posted @ 2019-04-21 01:36 追风的浪子 阅读(830) 评论(0) 推荐(0)

golang: 利用unsafe操作未导出变量
摘要:unsafe.Pointer其实就是类似C的void *,在golang中是用于各种指针相互转换的桥梁。uintptr是golang的内置类型,是能存储指针的整型,uintptr的底层类型是int,它和unsafe.Pointer可相互转换。uintptr和unsafe.Pointer的区别就是:u 阅读全文

posted @ 2019-04-21 00:37 追风的浪子 阅读(690) 评论(0) 推荐(0)

Go之unsafe.Pointer && uintptr 类型
摘要:Go语言是个强类型语言。Go语言要求所有统一表达式的不同的类型之间必须做显示的类型转换。而作为Go语言鼻祖的C语言是可以直接做隐式的类型转换的。 也就是说Go对类型要求严格,不同类型不能进行赋值操作。指针也是具有明确类型的对象,进行严格类型检查。不过Go语言也有例外在一些特殊类型存在隐式转换。 un 阅读全文

posted @ 2019-04-21 00:24 追风的浪子 阅读(2173) 评论(0) 推荐(0)

导航