自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(51)
  • 收藏
  • 关注

原创 ActiveMQ - 部署

ActiveMQ环境部署下载地址:http://activemq.apache.org/activemq-5143-release.html 下载apache-activemq-5.14.3-bin.tar.gz。手册:http://activemq.apache.org/getting-started.html一、ActiveMQ需要JDK的支持 详见此文: http://blog.csdn

2017-02-27 20:16:54 2203

原创 linux安装jdk

1、下载http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载jdk-8u121-linux-x64.tar.gz。 或者下载jdk-8u121-linux-x64.rpm。 (注意,选择对应的系统版本。我们用的是centos,所以选择linux x64)2、给权限chmod +x

2017-02-27 19:54:47 919

原创 yii2如何写一个类来统一处理url?

因为每个人写url的方式不一样,导致我们后期如果对url有修改的话,就非常麻烦。 所以我们需要来统一管理,同时还可以规范书写。1、新建services\UrlService.php,services 是我们自定义的目录,专门用来写我们的各种自定义服务。<?phpnamespace app\services;use yii\helpers\Url;/** * 统一管理链接,并规范书写 * Cla

2017-02-26 20:31:04 667 1

原创 Yii2加载我们自己的css和js文件[小技巧]

1、第一步是要把我们的css、js文件放到web目录下 2、第二步修改assets/AppAsset.php文件<?php/** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/licens

2017-02-26 12:04:36 2099

原创 RBAC打造通用web管理权限02 - 数据库设计

CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名', `email` varchar(30) NOT NULL DEFAULT '' COMMENT '邮箱', `is_admin` tinyi

2017-02-26 10:49:40 1254

原创 RBAC打造通用web管理权限01 - RBAC介绍

RBAC架构RBAC功能模块权限控制流程

2017-02-26 10:41:52 1133

转载 redis常见使用场景下PHP实现

基于redis字符串string类型的简单缓存实现<?php//简单字符串缓存$redis = new \Redis();$redis->connect('127.0.0.1',6379);//缓存数据$redis->set('cache_key',json_encode(['data'=>'这是缓存数据']));//获取缓存数据$data = $redis->get('cache_key'

2017-02-25 09:03:27 6206 1

原创 memcache缓存服务器01

linux下如何安装memcache服务器1、安装(安装之前下载解压安装包)./configure && make && make install2、启动memcache -d -m 2048 -u root -l 127.0.0.1 -p 11211#-m 设置内存大小# -p 设置端口3、停止pkill memcached查看memcache服务状态#查端口netstat -tunpl |

2017-02-24 14:52:21 428

原创 vagrant打造跨平台可移动的开发环境六 - vagrant打包分发环境

#关闭虚拟机vagrant halt#执行打包命令vagrant package --output lnmp.box执行完打包命令,就会生成一个box,然后我们就可以把这个lnmp.box交给小伙伴使用啦。 当小伙伴拿到这个box,他们就可以用vagrant启动这个box(这是一个装好了lnmp环境的box)。问题:升级了box,如何保证小伙伴的box和我的同步? 此时,对于老用户,可以通

2017-02-24 10:19:34 2446

原创 vagrant打造跨平台可移动的开发环境五 - vagrant虚拟机优化

1、虚拟机名字 编辑虚拟机配置文件Vagrantfile : config.vm.provider "virtualbox" do |vb| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # # Customize the amount of memory on

2017-02-24 09:45:14 709

原创 vagrant打造跨平台可移动的开发环境四 - ThinkPHP5运行环境配置

1、准备框架源码我们在本机/Users/yongkaidong/vagrant/code 下,新建一个名为tp5的目录。 然后在把ThinkPHP5的源码放进去。映射到虚拟机中,就是/home/www/tp5 的目录下: 2、修改nginx默认配置文件 /etc/nginx/sites-enabled/default#把网站根目录指向我们的tp5的目录root /home/www/tp5/p

2017-02-23 21:21:26 1090

原创 vagrant打造跨平台可移动的开发环境三 - vagrant高级知识

端口转发:将本机具体的端口转发到指定的虚拟机端口 共享目录:讲本机具体目录和虚拟机共享 网络配置:三种网络配置方式1、端口转发 我们前面在VirtualBox中,手动配置了本机8888端口,转发到虚拟机中的80端口。 但重启vagrant后,就没有了。vagrant reload因为vagrant重启之后,就会重新读取它的配置文件Vagrantfile。编辑此文件,配置端口转发:

2017-02-23 13:36:28 555

原创 vagrant打造跨平台可移动的开发环境二 - 安装lnmp环境

lnmp环境配置准备工作1、进入虚拟机vagrant ssh2、替换源(便于后面我们安装软件)#备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak#修改源sudo vim /etc/apt/sources.list将sources.list文件内容替换成以下:deb http://mirrors.aliyun.com/ubuntu/

2017-02-23 09:36:23 421

原创 vagrant打造跨平台可移动的开发环境一 - vagrant介绍

Vagrant是什么?了解vagrant之前,我们先来讲一讲『虚拟机』。 我们用过虚拟机软件大概有以下2个:VirtualBox、vmware。 这2个软件都是通过镜像文件,去创建独立的环境。Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具: 建立和删除虚拟机 配置虚拟机运行参数 管理虚拟机运行状态 自动化配置和安装开发环境 打包和分发虚拟机运行环境Va

2017-02-22 21:24:35 810

原创 重定向与伪静态实战应用

1.临时重定向和永久重定向区别和作用(面向搜索引擎机器人) 不是顶级目录的A页面做301定向到其他目录B,则可以正常收录B页面。 而顶级目录的A页面做320定向到其他目录B,则收录的是A页面。2.文件访问控制(防盗链)RewriteEngine OnRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !localhost [N

2017-02-22 12:41:16 801

原创 OA系统中 流程审批数据库的设计

参考: http://www.cnblogs.com/kingeric/p/6052826.html

2017-02-22 10:18:37 11670

原创 重定向和伪静态在网站中的应用

什么是伪静态和重定向伪静态是相对真静态来讲的。伪静态只是改变了URL的表现形式,实际上还是动态页面。伪静态有了真静态一样的SEO。 重定向是通过各种方法将各种网络请求重新定个方式转到其他位置。 HTTP标准协议中的3xx (主要是302,303)Apache环境#重定向模块linux平台的配置安装LoadModule rewrite_module modules/mod_rewrite.so重

2017-02-22 10:07:09 863

原创 OAuth2.0协议 - OAuth授权流程详解

三个重要步骤 1、慕课网向腾讯QQ OAuth请求OAuth登录页 2、用户在这个页面中输入QQ号和密码 3、最后腾讯QQ OAuth把登录结果返回给慕课网步骤一:请求OAuth登陆页Request Token URL:为授权的令牌请求服务地址 结合我们的例子就是:慕课网请求QQ登录页面时使用的带有『特定参数的URL』。https://graph.qq.com/oauth/show?whic

2017-02-20 21:10:18 16185 2

原创 OAuth2.0协议 - 介绍

OAuth协议简介OAuth的全称是「Open Authorization」。 OAuth协议为用户资源的授权提供了一个安全的、开放而有简易的标准。与以往的授权方式不同之处是OAuth授权不会使第三方触及到用户的帐号信息(如用户名和密码),即第三方无需使用用户的用户名和密码就可以申请获得该用户的资源的授权,因此OAuth是安全的。OAuth工作原理图解

2017-02-20 20:25:29 598

原创 工厂模式结合RPC进行多节点数据调用的代码套路

比如我有2个业务类:GameNews和SportsNews。 这我们网站的2个频道,这2个频道很可能都是不同团队来开发维护的。代码示例:<?phpclass SportsNews{ static function loadNews($id) { return ['news_id'=>$id,'news_title'=>'体育新闻','news_time'=>'20

2017-02-20 17:13:18 554

原创 workerman-json-rpc:使用workerman快速进行RPC开发的套路

之前我们已经简单的了解了一下『远程调用PRC』 1.Socket学习 - 撕开远程调用的逼格外衣(上) 2.Socket学习 - 撕开远程调用的逼格外衣(下)超简易仿制一个RPC客户端 二、今天来学习一下workerman这个框架上的其他应用『Json Rpc远程调用框架』, 下载地址:http://www.workerman.net/workerman-jsonrpc 介绍: JSO

2017-02-20 13:47:08 3263

原创 支付宝即时到账接口开发 - 支付宝即时到账接口和TP框架的结合

第一步:将核心方法和加密方法放到项目里,Application/Home/common/function.php中即可。方便调用。把alipay_core.function.php和alipay_md5.function.php2个文件中的函数,拷贝到function.php中。第二步:把alipay_notify.class.php和alipay_submit.class.php拷贝到TP框架源码

2017-02-19 19:29:09 4359

原创 支付宝即时到账接口开发 - DEMO讲解

支付宝即时到帐接口环境要求PHP5.0以上,且需要开启curl、openssl。 文档地址: https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1 支付宝网页即时到账功能,可让用户在线向开发者的支付宝账号支付资金,交易资金即时到账,帮助开发者快速回笼资金。 交易步骤少,简单、方便。

2017-02-19 12:55:08 17290

原创 视频电商网站实战 - 视频上传:标签编辑框效果快速实现

本节我们来完成tag框,输入关键字后回车即可出现标签增加和删除效果。我们可以用一个开源组件:https://github.com/matiastucci/vue-input-tag安装: cd到我们的项目根目录下执行npm install vue-input-tag --save安装完成,我们的node_modules目录中会多一个vue-input-tag目录。然后应用到我们的项目中.来到视频发

2017-02-18 15:58:51 2266

原创 [数据表设计] - 商品模型数据架构图

参考文章:http://www.strbook.com/content-1-52-1.html

2017-02-17 14:49:02 2231

原创 Vue-cli是何物

介绍Vue-cli是Vue的脚手架工具 主要作用:目录结构、本地调试、代码部署、热加载、单元测试地址:https://github.com/vuejs/vue-cli安装安装Vue-clinpm install -g vue-cli安装成功之后,可以执行vue list 命令查看: 举例出了我们可以用的哪些模板。然后我们来安装webpack模板vue init webpack sells

2017-02-16 16:09:15 25312 1

原创 使用SharedPreferences来保存用户登录帐号密码

前面我们使用过『往内部存储里写文件』的方式来保存用户登录的帐号和密码。 其实要保存用户帐号密码,更好的方式是使用SharedPreferences /** * 登录操作 * @param v View对象 */ public void login(View v){ //获取输入的用户名和密码 EditText et_nam

2017-02-15 16:15:14 2070

原创 检测sd卡状态,并往sd卡写入文件

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //返回一个File对象,其路径是sd卡的真实路径 File f = new File(Environment.getExternalStorageDirectory(),"info.txt"); FileOutputSt

2017-02-15 15:16:08 917

原创 使用路径API获取获取内部存储目录的路径

前面我们已经了解了 往内部存储中写文件 从内部存储中读文件但这处理文件路径的时候,我们都是『写死的』 data/data/com.example.dev.readwritefile/info.txt我们需要优化这部分代码,使用API来获取存储的目录。 //要读取的文件File f = new File(getFilesDir(),"info.txt");案列全部代码:package co

2017-02-15 14:32:03 1003

原创 从内部存在中读文件

前面我们学习过了 往内部存储中写文件。 现在我们来读该文件,并且解析读取到的数据,显示到界面上。 /** * 从内部存储读取用户数据 */ public void readAccount(){ //要读取的文件 File f = new File("data/data/com.example.dev.readwritefile/i

2017-02-15 13:45:23 278

原创 往内部存储写文件

用案列演示。用户登录,把帐号、密码数据写入文件。1.构建界面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and

2017-02-15 11:54:20 440

转载 apply、call

apply、call在js中,call和apply都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部的this指向。 js的一大特点是,函数存在定义时上下文和运行时上下文以及上下文是可以改变的这样的概念。function fruits(){}fruits.prototype = { color:'red', say:function(){cons

2017-02-15 09:56:17 376

原创 WorkerMan学习篇:websocket+workerman聊天功能(三):点对点发送消息模拟

1.WorkerMan学习篇:准备和热身 2.WorkerMan学习篇:连接mysql时到底发生了什么鬼 3. WorkerMan学习篇:websocket+workerman聊天功能设计(一):简单认证 4.WorkerMan学习篇:websocket+workerman聊天功能(二):同步在线用户列表上节课我们已经完成了同步在线用户列表,因为我们是使用IP作为一个唯一判断标志,所以我们的一

2017-02-14 16:25:37 9691 1

原创 获取当前分类的顶级分类的分类名称

/* 获取当前分类的顶级分类的分类名称 */ $currentCat = Mage::registry('current_category'); if(isset($currentCat)){ //如果是根目录,则显示当前目录 if ( $currentCat->getParentId() == Mage::app()->getStor

2017-02-13 16:33:42 1602

原创 对象继承训练(2):继承后可以调用父类方法

上节课(http://blog.csdn.net/github_26672553/article/details/54890416),我们做了一个js的简单的继承。所谓的继承1、js中并没有类似java或者php一样的类继承 2、仅仅是通过一些『模拟方法』使得看起来好像是继承。因此方法很多,大家可以百度一下。 3、今天我们要实现的是,怎么让子类可以调用父类的方法?回顾上节课我们的简单的『继承』

2017-02-09 21:21:27 1605

原创 [Magento SQL] 查询分类名称,和该分类下关联的所有sku

SELECT t1.entity_id, t1.`level`, t2.`value`, group_concat(t4.sku separator ',') as skus FROM catalog_category_entity AS t1LEFT JOIN catalog_category_entity_varchar AS t2 ON t2.entity_id=t1.entity_id

2017-02-09 16:10:48 458

转载 mysql利用group_concat()合并多行数据到一行

把查询name字段得到的多行记录进行合并,可以通过程序实现,但也可直接在sql层完成,需要的朋友可以参考下 假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系。假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只显示a表记录行数,则需要把查询name字段得到的多行记录进行合并,可以

2017-02-09 16:06:08 2458 2

原创 WorkerMan学习篇:websocket+workerman聊天功能(二):同步在线用户列表

上节课(http://blog.csdn.net/github_26672553/article/details/54932788)我们已经完成了聊天功能的权限(用户名必须)认证。 这节课我们来完成,websocket客户端页面中『所有用户』显示出,连接到我们服务端的所有客户端用户。1.在服务端验证用户登录后,就把保存的客户端信息,发生给客户端//一旦有用户登录就把保存的客户端信息发送过去$co

2017-02-09 14:03:05 8533

原创 安卓布局 - 表格布局(TableLayout)

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" andro

2017-02-08 21:36:07 1009

原创 WorkerMan学习篇:websocket+workerman聊天功能设计(一):简单认证

初步设计如下1、websocket客户端连接服务端 是无脑的(这很重要) 2、服务端需要记录连接进来的所有客户端(方便日后统一广播消息) 3、服务端肯定能获得客户端ip。为此我们还需要客户端加入用户昵称来区分 4、服务端可以无脑的向客户端发送消息。但是客户端怎么区分? 于是我们自己定义一个格式来完成。 4.1、普通消息我们用msg:xxx。如果开头是msg:那么后面的内容统统认定为普通消息

2017-02-08 20:34:21 12088 4

空空如也

空空如也

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

TA关注的人

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