mac php php-fpm nginx mysql 安装

经历MAMP、laradock,踩了不少坑,最终决定放弃集成工具,老老实实一个个安装php开发环境。

mac os已自带php php-fpm,都是5系列的,不过也不用删除,需要5的时候可以直接切换版本。

more >>

小程序

简单学习了下,写了个盛世华安小程序,已审核上线。

使用微信开发者工具可以新建一个quickstart的项目,扫了一遍目录结构和代码,发现这家伙长的跟react native还挺像的,不过没有对android和ios分开处理,毕竟小程序是基于微信,跨平台的处理交由微信就行了,这样一来小程序的门槛就比react native低很多了。

more >>

用户中心-第三方日志

背景

“日志系统”在项目开发、运维中扮演着非常重要的角色,完善的日志记录可以方便问题的追溯、系统的监控、行为的分析等等。“用户中心”要做的不仅是自身的日志记录,还要对各个子系统进行日志的上传,这样子系统就不需要再去编写日志模块,所有日志都打入用户中心也有利于资源的统一管理监控。

more >>

Composer Package --userlog

源码:GithubPackagist

背景

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
https://getcomposer.org

Packagist is the main Composer repository. It aggregates public PHP packages installable with Composer.
https://packagist.org

和“用户中心”的目的一样,独立模块,少写重复的代码。但是“用户中心”适合做上层的“Provider”,服务于多个子系统,对于一些独立的项目(外包)就不太合适了,所以,现在需要将一些重复的模块独立成“Package”。

more >>

用户中心

背景

很早之前就想做一个用户统一登陆的系统,即“统一身份认证”。这就需要将用户的账号、密码存储在同一个系统中,然后下属的各个系统调用“统一身份认证”,验证密码是否正确。
但是这只是做到了身份认证,用户信息还是需要各个子系统单独维护的,这样一来用户的信息又需要填写多遍,也就没带来多大便利了。
于是就想干脆做大点,将各个系统中的通用模块独立出来,比如用户、角色、权限等,这样子系统中就不需要这些重复模块,直接调用接口获取数据就行,于是“用户中心”应运而生。

more >>

json_encode中文unicode的问题

背景:

近期做微信卡券开发遇到一个问题,创建卡券post数据给服务器时返回data format error, do NOT use json unicode encode (\uxxxx\uxxxx), please use utf8 encoded text!。这就奇怪了,代码中一直用的是UTF-8,怎么就跟unicode搭上关系了呢?一通搜索后发现,用PHP的json_encode来处理中文的时候,中文都会被编码,变成不可读的, 类似\u***的格式,微信服务器端不能接受。

more >>

一些工具整理

EditorConfig

EditorConfig用于在不同操作系统或编辑器之间保持统一的风格,比如空格与TAB、回车与换行等。TAB的宽度可以设置为4个空格或8个,如果按空格来显示就会造成缩进的错开,样式不一致。另外还有windows下的文件在linux下打开行尾^M的情况,这是因为UNIX格式的换行符为OA<LF\>,DOS的换行符为OD OA<CR><LF>其实就显示为了^M。

more >>

MYSQL中多个TIMESTAMP的问题

问题描述

如下需求,创建一个简单的文章表,需要在创建文章和更新文章的时候自动完成create_timeupdate_time字段。MYSQL中insert时TIMESTAMP default CURRENT_STAMP,update时TIMESTAMP on update CURRENT_TIMESTAMP

more >>

WebSocket(二)——WebSocket API

WebSocket API 是完全事件驱动的,一旦建立起全双工连接,当服务端需要发送数据给客户端时,就会自动发送,而不需要客户端的主动请求。目前,不同浏览器对WebSocket的支持度不同,可以通过javascriptif(window.WebSocket)来进行判断,或者在console里输入window.WebSocket检测,或者在html5test里查看。

more >>

Just a beginner.<br /><a href='https://github.com/yaoshanliang/about' target='_blank'>profile</a>