PHP开发工程师@温州。博客关于:技术、生活、读书、互联网。

Restful架构及其技术可行性

RESTful简介

RESTful (Representation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。RESTful 指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful。


这里对什么是RESTful不作详细的论述,具体大家可以参考阮一峰的博客http://www.ruanyifeng.com/blog/2011/09/restful.html


简单来说,RESTful...

Intervention Image - 让PHP处理图片更加简单

简介
Intervention Image是一个基于PHP GD库的图片处理库。
相对于使用PHP原生图片处理函数的复杂和繁琐,该库能让我们处理图片变得更加的简单和富有表现力。

github : https://github.com/Intervention/image
官方文档 : http://intervention.olivervogel.net/image/getting_started/introduction

Intervention Image使用
Intervention Image的安装和使用都十分的简单,安装只需敲一下composer install...

Sentry - PHP的身份及权限验证解决方案

简介

Sentry是一个简单而强大的身份及权限验证框架,提供了用户组、权限、自定义哈希算法及其他一些安全特性,致力于让开发者快速建立一个权限管理系统。

官网:https://cartalyst.com/manual/sentry

github:https://github.com/cartalyst/sentry


安装

Sentry可以方便的使用composer进行独立安装或集成到Laravel、CodeIgniter等框架。这里说下集成Sentry到Laravel4框架,其他方式的安装也都大同小异。

  1. 在composer.json配置文件中添加依赖:{"require...

在PHP中使用password_hash()让你的密码更加安全

前言

PHP5.5提供了许多新特性及Api函数,其中之一就是Password Hashing API(创建和校验哈希密码)。
它包含4个函数:password_get_info()、password_hash()、password_needs_rehash()、password_verify()。

在PHP5.5之前,我们对于密码的加密可能更多的是采用md5或sha1之类的加密方式(没人像CSDN那样存明文吧。。),如:
echo md5("123456"); //输出: e10adc3949ba59abbe56e057f20f883e

但是简单的md5加密很容易通过字...

七天学会Node.js

七天学会NodeJS是阿里巴巴国际站前端技术部编写的开源文档,用于学习 Node.js。

网址 :http://nqdeng.github.io/7-days-nodejs/

github : https://github.com/nqdeng/7-days-nodejs

小试HTML5 Notification

HTML5 Notification ,即桌面通知。

目前浏览器依然是一个严格的沙盒工作模式,这种模式把浏览器和桌面的通信隔离开。Notification可以跨越沙盒能够让浏览器即使是最小化状态也能将消息通知给用户。


桌面提醒API

window.webkitNotifications

该API有3个方法:

  1. requestPermission 请求桌面通知

  2. checkPermission    检查桌面通知许可(PERMISSION_ALLOWED = 0, PERMISSION_NOT_ALLOWED = 1, PERMISSION_DENIED...

浏览器的工作原理:新式网络浏览器幕后揭秘

序言

这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。她写道:

在 IE 占据 90% 市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。呃,里面只有数以百万行计的 C++ 代码...
塔利在 她的网站上公布了自己的研究成果,但是我们觉得它值得让更多的...

php自动加载规范:PSR-0

[翻译自官网http://www.php-fig.org/psr/psr-0/]


自动加载规范
下面描述了自动加载操作时必须遵守的强制要求。

要求:

  • 一个完全合格的命名空间和类名必须有以下的结构 \<Vendor Name>\(<Namespace>\)*<Class Name>

  • 每个命名空间必须有提供者名称("Vendor Name")作为顶级的命名空间

  • 每个命名空间可以有多个子命名空间

  • 每个命名空间在被从文件系统加载时须将分隔符转换为"系统分隔符"(DIRECTORY_SEPARATOR...

var happy = new year(2014);

2013年即将过去

写完这篇2013最后的工作总结就该幸福快乐的过年了╮(╯▽╰)╭

回顾2013,工作方面貌似在玩着各种各样的Js开发

使用node.js开发服务端应用

前端的MVVM框架Angular.js

HTML5游戏开发kinetic.js

使用Js开发基于phonegap的手机应用

node-webkit桌面应用

数据可视化D3.js、echarts

前端的包管理bower

自动化构建grunt

实时通讯socket.io

3D技术three.js

UI框架bootstrap等

。。。。

什么,Jquery?源码都基本看完了

当然除了JavaScript...

PHP编码规范

PHP社区百花齐放,拥有大量的函数库、框架和组件。
PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近同一个代码风格就非常重要,可以让开发者方便地把多个代码库集成在自己的项目中。


框架互操作组(PHP Framework Interoperability Group)发布了一系列代码风格推荐标准,即PSR规范(Proposing a Standard Recommendation)。


目前已有5个代码规范:

Wordpress插件开发

Wordpress插件允许你通过一种简单的方式来修改、定义和强化博客的功能。
你可以在不修改WordPress的核心代码的情况下,通过插件来直接向WordPress中增加功能。
WordPress插件可以是一个程序,也可以是PHP语言编写的一个或一组函数。
它可以通过插件 API提供的一系列方法和接口,来向WordPress中增加一些特定的功能或服务,并且让它们看上去就像是WordPress原有的功能一样。


钩子机制、动作和过滤器

在说开发wordpress插件之前先讲下wordpress中的钩子机制。

WordPress 中有一种钩子机制,允许插件把一些功能“挂载”到 WordPress...

phonegap开发ios应用上下拖动黑边问题

使用phonegap开发的ios应用使用手指向下或者向上滑动屏幕时会看到页面顶部或底部会出现一大片黑色,松开手指后就会再弹回去。

在网上搜索此问题,解决方案如下:

修改config.xml

<preference name="WebViewBounce" value="false" />

<preference name="DisallowOverscroll" value="true" />


注:据说该方法在phonegap2.x版本无...

wordpress主题开发教程

WordPress是一种使用PHP语言开发的博客平台,免费、开源。

作为最流行的博客平台,海量的插件和主题可以说是WordPress 最大的特色了,没有哪一个Blog 平台拥有如此多的插件和主题,拥有如此多的用户和爱好者。


下面介绍如何开发设计你自己的 WordPress 主题。


主题的剖析

WordPress主题目录位于 wp-content/themes/。主题目录拥有所有样式文件、模板文件、可选的函数文件 (functions.php)、JavaScript 文件、图片等。比如说一个叫做 "test" 的主题就会...

Angular.js整合socket.io

前言

作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。
这其中WebSocket使得浏览器对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道。Web 开发人员可以非常方便地使用 WebSocket构建实时 web 应用,开发人员的手中从此又多了一柄神兵利器。


socket.IO
Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket的跨浏览器的实时应用。支持主流浏览器,多种平台,多种传输模式,还可以集合 Exppress...

AngularJS中的表单验证机制

客户端表单验证是AngularJS里面最酷的功能之一。 AngularJS表单验证可以让你从一开始就写出一个具有交互性和可响应的现代化HTML5表单。


angularJs实现了大多数的HTML5表单域(input,text,number,url,email,radio,checkbox),并添加了自己的一些验证指令(required,pattern ,minlength,maxlength,min,max)。


常见的有:

必填
<input type="text" ng-model="name" required />...


什么是 Event Loop?

[转载自阮一峰的网络日志]


Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。

JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。


本文参考C. Aaron Cois的《Understanding The Node.js Event Loop》,解释什么是Event Loop,以及它与JavaScript语言的单线程模型有何关系。

想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务。


如果有很多任务需要执行,不外乎三种解...

[require.js工具]使用r.js优化require.js项目

RequireJS提供一个基于node.js的命令行工具r.js用来压缩多个js文件。

 它的主要作用是将多个模块文件压缩合并成一个脚本文件,以减少网页的HTTP请求数。


如何使用?

官方文档:http://www.requirejs.org/docs/optimization.html


这里具体如何使用就不多说了,无非就是用npm下载后几个命令而已。

由于目前端项目大多数都是使用grunt构建的,且r.js也支持grunt。

这里就讲下如何使用grunt配合r.js实现自动化优化require.js项目。


grunt-contrib-requirejs...

[require.js插件] text.js异步加载文本资源

text.js是require.js的一个插件,用于异步加载文本资源,如txt、css、html、xml、svg等。


安装text.js

bower install requirejs-text


text.js使用

在require.js主模块main.js配置text.js路径

require.config({
        paths: {
            text : ...

使用require.js进行JavaScript模块化编程

随着互联网的飞速发展,Javascript开发越来越复杂。Javascript的模块化开发显的越来越重要。

目前,主要的Javascript模块规范共有两种:CommonJS和AMD。


CommonJS

CommonJS主要指服务器端的javascript模块的规范。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。CommonJS的实现有Node.js、CouchDB等。


AMD规范

AMD是"Asynchronous...

redis学习笔记

前言

Redis是一个开源、支持网络、基于内存、键值对存储的noSql数据库,使用ANSI C编写。

目前各大公司都使用了redis作为其缓存数据库,如新浪微博、twitter、stackoverflow 、GitHub等。


redis安装

      

tar -zxvf redis.tar.gz

cd redis

make

cd src && make install

mkdir ../bin

cp redis-cli redis-server redis-check-aof...

© yuankeqiang | Powered by LOFTER