December 15, 2016

ioc 容器、依赖注入与闭包

这篇文章 竭尽全力浅显讲述了 Laravel 的 IoC 容器原理。

PHP 的闭包,能避免随时实例化类,而做到调用方法时实例化类,提升程序运行效率。

阮一峰这篇文章浅显地讲述了 JS 的闭包。

由于函数定义完了就完了,只能在其作用域发挥作用;而闭包却可以作为「值」,携带着内部作用域的上下文信息被返回(作为类的属性调用也算返回)(嗯,还能作为 setter 操作父函数的私有变量呢),所以被用来「搭建函数内外的桥梁」。

闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」

举例:

  var name = "The Window"......

December 15, 2016

Laravel 5 开发流程入门

搭建 Laravel 开发环境后,就可以用它快速开发了。与 Codeignitor 和 Kohana (甚至包括 Laravel 4)这些轻量级框架不同的是,Laravel 5 需要先了解一些 convention,才能快速上手。

引入第三方库(Laravel Generator 为例)

** 添加库 **

首先在 composer.json 中添加 require 项:

"infyomlabs/laravel-generator": "5.3.x-dev",

"laravelcollective/html&......

December 15, 2016

Lumen 和 Laravel 的差异解析

简而言之,Lumen 是一个简化版的 Laravel,简化了ORM、Session/Cookies支持、模板引擎和 elixir 等。

精简给 Lumen 带来的跨数量级的性能提升,如图:

但在以下方面存在差异:

Lumen 没有使用 Symfony 的路由模块, 而是采用了速度更加快的 nikic/fast-route。因此 RouteServiceProvider 对象在 Lumen 中是没有的。这个变化也延伸出其他的一些变化,比如和路由相关的一些 helpe......

December 14, 2016

使用国内云主机搭建 Shadowsocks 跳板

虽然在家联通连 Linode 东京的 Shadowsocks 服务器翻墙没出过问题,但在公司用电信、在外用移动 4G 时,Shadowsocks 抽风的情况日渐频繁。对造墙者竖起中指之余,只好拿出终极方案:用一台国内的云主机做跳板。

配置步骤如下:

1. 打开跳板机的端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward # 临时打开

vi /etc/sysctl.conf #然后去除 net.ipv4.ip_forward=1 一行的注释:持久打开

2. 设置跳板机的 iptables

注意:以下所有操作都需要 root 权限

普通方式:......

December 12, 2016

最新的工具栈

Farbox

挑了半天,还是选择了 Farbox。看中的是 Dropbox 的同步机制。

对官方默认的模板稍作修改,就能轻松得到自己想要的 blog 样式。这得益于 jade 和 scss 的可读性。

本地保存 → 自动同步到线上的机制,从模板到数据完全消除了「发布」的概念。写 blog 和在本地电脑写文章不再有任何区别。最初可能会有一点不习惯——草稿一样的东西这么可以直接线上可见呢?但其实习惯了就好。毕竟你只是在维护一个访客稀疏的个人网志,而不是在搞万众瞩目的大新闻。让偶然的几个对你好奇的人看到草稿又何妨?

iPic

复制图片 → CMD+shift+S 保存到图床 → CMD+V......

December 11, 2016

Laravel 开发环境搭建笔记

1.安装 Homestead

Homestead 是 Laravel 官方定制的一个 Vagrant 镜像。镜像内包含的环境十分前卫炫酷,最新版为 Laravel 5.3 定制的 Homestead 配置如下:

Ubuntu 16.04

Git

PHP 7.1

Nginx

MySQL

MariaDB

Sqlite3

Postgres

Composer

Node (With Yarn, PM2, Bower, Grunt, and Gulp)

Redis

Memcached

Beanstalkd

怎么样,看下来有没有一种要溢出来的幸福感?

要安装 Homestead,需要先安装 Va......

February 01, 2015

如何理解Web应用程序的MVC模型?

原帖为知乎回答,链接:https://www.zhihu.com/question/27897315/answer/38621301

提问:

我也编写过一些Web应用程序,但是始终不能很好地理解MVC模型。

假设现在有一个JSP应用程序。这个应用程序实现的功能很简单,在初始页面上有一个输入框和一个按钮。用户输入关键字后,可以点击按钮查询。然后这个JSP应用程序会去查询数据库,并把查询结果显示在一个结果页面上。

我也不用什么框架,就用servlet。我如上面所说,编写两个JSP页面:初始页面和结果页面(实际上初始页面是个静态页面),以及一个servlet。我可以再搞得复杂一些,让这个s......

January 12, 2014

2014-01-12 Bonjour La Mer

Farbox 做了我一直想做的事情。