restfual api 架构的第三方登录 - 编程思维

序言 第三方登录的使用在当今非常普遍,不管是PC端还是手机端都很常见。因为它有着一号多用的特点,不管是在什么网站什么软件上只要有了这个第三方登录的功能就无需再次走注册步骤,直接用第三方的账号登录就可以了,方便吧?开发程序看重的是用户体验,为用户打造一款“麻雀虽小,五脏俱全”,使用便利的产品是我们的职责。那么话又说回来,在Restfual api 上如何实现第三方登录呢?我在Segmentfaul

yii2 验证手机号、邮箱唯一性 - 编程思维

序言 验证唯一性很重要,说不上用得很普及,但是也必须要有。好比注册功能模块,手机号、邮箱注册这些,肯定是要验证其的唯一性的,重复了登录就会混乱。那么如何使用Yii2自带的targetClass验证唯一性呢?使页面刷新的可能很多人都会,要是不刷新页面直接触发targetClass验证的应该就少些了吧!不会的也不必苦恼,不必担心,因为我写这篇文章的目的就是要告诉你怎么通过页面不刷新的方式直接触发ta

jquery高级应用之deferred对象 - 编程思维

在实际开发中常常遇到这样的问题:B函数中需要用到的变量或者参数,只有等A函数执行完毕了才能获取到。比如A函数中有一个ajax请求,而B函数中所需要的position变量需要在A函数中ajax请求完成才能得到它的准确值。 function A() { $.ajax({ url: '/api/test', type: 'POST', data:

全面解析yii2跨域的sso登录逻辑 - 编程思维

简述 本文章是我对Yii2如何实现SSO登录做一个全面的逻辑解析。事实上,在此之前我也写过两篇文章关于SSO登录的实现方式以及进一步优化,包括这篇文章也都是介绍Yii2的SSO登录,逐步优化不断总结与分享,目的就是要把Yii2的SSO登录功能尽可能的做到极致,从程序开发的灵活性角度去思考问题,把一切潜在的局限扼杀在摇篮中。 实现步骤 1、在common\config\main.php文件配置如下

yii2 增删改查后仍留在当前页的方法 - 编程思维

序言 实现增删改查操作成功后仍留在当前页,能给用户一个良好的体验。但是 Yii2 框架本身是没有在增删改查操作成功后仍留在当前页的效果的,要实现这样的一个效果得自己写。我的原则是不动核心代码,始终坚持自己的原则,现实现了我把它分享出来。殊途同归,如有更好的实现方法,欢迎交流。 需求分析 1、实现增删改查后操作成功后仍然留在当前页面。 效果图 1、链接的效果图 封装代码 共有两个文件ActionC

安装elasticsearch初体验 - 编程思维

今日项目需要一个小型的搜索的功能的支持,有很多开源的搜索引擎啦,当然Elasticsearch个人认为上手容易,安装也比较方便。 ES安装前需要确认你笔记本上已经安装了java,如果没有安装了,可以oracle官网下载就行了, java弄完后,我们可以在命令后工具中输入java -version查看版本信息 安装ElasticSearch Mac上安装ES可以有很多方法,当然brew是不二选

后端语言选型浅谈 - 编程思维

前不久回答了一个关于后端语言选型的问题,写的回答也让笔者有了很多感触,因此在这里谈论下自己对后端语言选型的心得体会,姑且算是抛砖引玉,希望大家能分享各自的心得。 后端语言发展历史 Web 后端语言的兴起是从静态网页向动态网页的发展所产生的,最早的动态页面技术就是 CGI 技术,将客户端的输入交给 CGI 程序,然后将 CGI 程序的输出返回给客户端。早期的 CGI 程序只要是任何有标准输入输出的

php设计模式——状态模式 - 编程思维

前言 状态设计模式是Gof提出的最吸引人的模式之一,也是一种最有用的模式。游戏通常就采用状态模式,因为游戏中的对象往往会非常频繁地改变状态。状态模式的作用就是允许对象在状态改变时改变其行为。还有很多其他模拟应用(不一定是游戏)也依赖于状态模式。本文将会谈到并举例说明。按照传统思维,如果有多个状态的话一般就是用if、else if、switch处理了,但是这类的代码看起来极其不美观,最重要的是没什

在windows下搭建swoole环境与测试 - 编程思维

简言 swoole,一个php的超级扩展,具有异步编程、高性能等非常多的特性。可以在最少的性能损耗下,换取最大的开发效率。但遗憾的是swoole不能在Windows环境下安装使用,对开发造成一定的阻碍,现就Windows下使用swoole,给出一种解决方案。 下载安装Cygwin和swoole 1、安装cygwin 官网地址:https://www.cygwin.com/ 1.1、打开下载好的

教你实现销售漏斗(sales funnel) - 编程思维

前言 一个比较完整的CRM,销售漏斗必不可少。它能直观的通过图形方式,指出公司的客户资源从潜在客户阶段,发展到意向客户阶段、谈判阶段和成交阶段的比例关系,或者说是转换率。这些信息对于任何一个销售者都是无比重要的,传统方式使用纸和笔计算统计出来,费时费力,不直观。销售漏斗的出现就是要解决这样一个问题的。那么,销售漏斗怎么实现呢?这个应该是大家比较关心的问题,听我一一讲述。 需求分析 通过Highc

《奇异博士》世界的源码之谜 - 编程思维

昨天去看了最近火的发热的好莱坞大片《奇异博士》,故事套路依旧好莱坞,特效吊炸天,看着确实挺爽。 依旧是超级英雄的起源和拯救世界故事,和漫威的其他超级英雄电影类似,但也有不同。最大的不同在一句台词中:"复仇者联盟的英雄们负责保护世界不受实体攻击和伤感,魔法师负责保护世界不受黑暗魔法伤害"。(原台词没记住,大意是这样)而这句台词则引申出了一问题:世界为什么分为实体和魔法世界?世界的本源是什么?电影

前端也该了解的一些后端知识 - 编程思维

前言 作为一个有追求的前端,在学有余力的同时,不应该把自己仅仅局限于前端的世界中的。而后端的知识是与前端工作最密切相关的一部分内容,多了解些后端的知识也是大有裨益的。 本文简单叙述了三种构建大型架构的必备知识。也是我做前端这么久以来,一直想知道的如何突破现有的性能瓶颈做到高并发,高性能,高可靠。文中如有错误,欢迎指正。 优化数据库 负载均衡 缓存技术 优化数据库 对于使用数据库的Web站点来

持续更新,微信公众号文章批量采集系统的构建 - 编程思维

我从2014年就开始做微信公众号内容的批量采集,最开始的目的是为了做一个html5的垃圾内容网站。当时垃圾站采集到的微信公众号的内容很容易在公众号里面传播。当时批量采集特别好做,采集入口是公众号的历史消息页。这个入口到现在也是一样,只不过越来越难采集了。采集的方式也更新换代了好多个版本。后来在2015年html5垃圾站不做了,转向将采集目标定位在本地新闻资讯类公众号,前端显示做成了app。所以就

php设计模式——观察者模式 - 编程思维

前言 知识就是作为观察者所获得的结论,经过科学培训的观察者会为我们提供所有能感知的现实。设计观察者模式是为了让一个对象跟踪某个状态,知道状态何时改变,一旦状态改变,所有订阅对象都能得到通知。如果需要保证一个状态的一致性(比如说:状态触发类的应用),但是这个给定状态可能有多个不同的用户等级,这种情况下观察者模式就很适用,而且很有帮助,各司其职。利用观察者模式可以维护一致性,同时记录创建一个给定的状

换一种思维看待php vs node.js - 编程思维

php和javascript都是非常流行的编程语言,刚刚开始一个服务于服务端,一个服务于前端,长久以来,它们都能够和睦相处,直到有一天,一个叫做node.js的JavaScript运行环境诞生后,再加上PHP的swoole扩展的出生,一度让这两个语言成为比较讨论的对象,各种关于它们的对比信息在帖子、论坛、交流群等比比皆是,一些人说PHP好,一些人说node.js好,别担心,本文不是比较二者的,只

如果你正在念大学,恰好也知道前端 - 编程思维

开公众号以后,我的生活发现了一些细微的变化。偶尔会有一些朋友会加我的微信,和我聊上几句,这让我知道了许多别人的故事。除了工作几乎没有和谁私聊过的微信,似乎多了一丝不一样的活力。 今天正迷迷糊糊的琢磨着angular时,微信发来一个通知,有一个复姓欧阳的同学申请加我好友,字里行间感觉得出来他对前端的小兴趣。 令我感慨的是,他是一名大一学生。 对于大一已经过去6、7年的我而言,某然间看到“大一”这个

关于浮动与清除浮动,你应该知道的 - 编程思维

我在做页面布局的时候,多多少少总会受到来自浮动的困扰,因此专门通过实践来总结一下浮动与清除浮动。 首先总结几个基础的概念: 浮动:设置浮动的元素会脱离文档流,不会影响块元素的布局,但是会影响内联元素的排列[通常是文本]; 文档流:在文档流中,块元素会单个元素独占一行 接下来我们通过实际演示来看看关于浮动的那些事儿。 下面是5个div块元素在文档流中一次排列 我们知道浮动元素有几个规律 如果浮

纯css实现扁平化风格开关按钮 - 编程思维

开关样式预览图 前言 最近在基于bootstrap框架开发一个网站,在填写表单一项需要用户填写是否选择某一选项,本来想引用bootstrap框架自带的一个按钮插件,结果在引用js的时候总是出错,就找了找资源,用纯css实现这个按钮开关的功能。 具体代码过程 话不多说,直接上代码实现! html代码部分 <div class="control-group"> <

silm框架初使用 - 编程思维

silm框架初使用 创建文件夹,例如: mkdir -p ~/www/slim;cd ~/www/slim; 在当前文件夹执行: composer require slim/slim; 新建文件并编写代码: vim index.php <?php require 'vendor/autoload.php'; $app = new Slim\App; $app->get(

js 遮罩效果 - 编程思维

-------------------------------tipswindown.js------------------------------ ///------------------------------------------------------------------------- //jQuery弹出窗口 By Await [2009-11-22] //--------