Inspirer

最新文章

雨季,总是那么多事儿

连绵不断的雨真身令人神伤,虽然我知道雨停了更难受(重庆的夏天都知道不是人过的)。但更令人烦心的是,屋漏偏逢连夜雨。在这个难得一遇的多事儿的日子里,实在是难以心平静和的总结一些文章。希望大家能够理解。我打算在这段时间内调整一下心态,去准备做一些好玩儿的事儿来让个人更有动力去记录些技术类的东西。

既然准备要做事儿,还是需要一个计划,因此这段时间除了解决一堆闹心事儿,还要在闲暇之余罗列一下后面的规划。

先透露一下想法:

  • 首先,打算对该博客结构进行部分重构(在写这个博客程序时,我对 laravel 这个框架可谓是完全不懂,水平也很菜,所以程序毫无章法),因为学习了更多有意思的东西,打算学以致用。

  • 此外,打算建立另外一个技术知识分享的站点,不过这个技术知识分享站点和现有的如技术知识问答网站 Stack OverflowSegmentFault 或者 维基百科 这种百科类的站点有所不同,这个知识分享网站更注重于 资料的有效性,同时做到尽可能保证 资料的权威性。因此需要花一些时间去理清设计思路。

  • 当然还有一个基于 swoole 创建的一个小框架,该框架不是现在的框架的改动或者优化,甚至没什么太多交集,如果了解 swoole 也会知道我要做的肯定不是为了反复造轮子,我更希望基于 swoole,让大家可以凭借十分易用的 PHP 写出优秀的后端程序,而不再花费大量精力去使用 c/c++ 去写一些后端的 Socket server。该框架将在近期拿出一个粗糙的版本,到时候会在本文给出对应的 git 版本库地址。

当然这么多事在短期内全部做好肯定不现实,慢工出细活嘛。

希望得到大家支持。

Windows 与 linux 之间的文件共享

鄙人不喜欢 linux 系统作为开发环境,毕竟 linux 是一个相对反人类的系统。不过 linux 对于生产环境的友好注定了其拥有丰富的库作为各种组件的依赖支持。在开发测试时,需要使用一些仅能跑在 linux 上的库的确让一个长期在 windows 下工作的人感到十分难过,在没有使用 OSX 环境的情况下,我需要一种简单的解决方案。

实际上,建立虚拟机,共享主机与虚拟机之间的文件不失为一种粗糙的解决方案。在 windows 创建、编辑、修改,同时在虚拟机上测试、运行代码。

那么如何建立两者的连接?

PHP 7 开发版本编译安装

不是稳定版,大家看看就好。不过很多新特性已经可以使用。别问我有具体哪些新特性,我也不知道。想要跟进 PHP 开发进度建议到 github 上去,可以看到每个 commit 的情况。:laughing: PHP -github https://github.com/php/php-src

大多数编译过程和之前版本无太大差异,本人也是从网络上找的资料。可能 php 7 有新的编译参数或者其他被废弃的参数,这个需要参考具体文档。不过我在编译期间没有遇到大问题,也没有想要真正测试。因此,本文仅仅是编译安装而不是用于测试。废话不多说了,开始。

访问控制工具 —— iptables

我是一个十分怕麻烦的人。很不幸,学习 linux 真的有时候很麻烦,因为这个系统真的非常不友好,包括这个系统下面的一系列软件和工具,简直不人道。不要试图以高高在上的姿态告诉我命令行是一种人性化的操作模式,这就是放屁。好了,抱怨到此为止。至于为什么要抱怨,原因恰好是今天的主角 —— iptables

我不喜欢 linux 系统的很多工具主要是复杂的命令记忆。iptables 正是如此。不过,也正是这样复杂的工具,提供了无比精细的控制能力。本文作为我个人学习这个工具的笔记,希望能够给同样在学这个的朋友提供一些小小的帮助。

iptables,一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。

通常iptables都需要内核层级的模块来配合运作,Xtables是主要在内核层级里面iptables API运作功能的模块。因相关动作上的需要,iptables的操作需要用到超级用户的权限。

—— 摘自维基百科

开启 Nginx 的 Gzip 压缩功能

昨天把博客的服务端由 Apache 换成了 Nginx,发现 Nginx 在某些方面的确更易于使用。至少更为小巧玲珑。同 Apache 类似,两者都内置了 Gzip 模块,通过配置文件直接开启即可,十分方便。本篇文章只是做一个笔记,记录一些东西以便帮助大家。很多内容源自网络,我尽量选取比较详细且有价值的。

开启 Gzip 模块

编辑 Nginx 的配置文件,一般都会看到有这样一个注释了的东西:

# gzip on;

只需要将前面的 # 去掉即可开启 Gzip 模块。当然整个过程显得太简单也不会满足各类人群的要求。我们继续。

laravel 学习笔记 —— 神奇的服务容器

竟然有人认为我是抄 Laravel 学院的,心塞。世界观已崩塌。

容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依赖注入(DI)”。本文就从这里开始。

IoC 容器, laravel 的核心

Laravel 的核心就是一个 IoC 容器,根据文档,称其为“服务容器”,顾名思义,该容器提供了整个框架中需要的一系列服务。作为初学者,很多人会在这一个概念上犯难,因此,我打算从一些基础的内容开始讲解,通过理解面向对象开发中依赖的产生和解决方法,来逐渐揭开“依赖注入”的面纱,逐渐理解这一神奇的设计理念。

本文一大半内容都是通过举例来让读者去理解什么是 IoC(控制反转)DI(依赖注入),通过理解这些概念,来更加深入。更多关于 laravel 服务容器的用法建议阅读文档即可。

CentOS 下编译安装 Nginx 1.8.0 和 PHP 5.6.8

说来惭愧,这么久还没有体验一下 Nginx 。今天说什么也要尝试一下对吧?我就先从我个人常用的 web 服务器来渐渐熟悉 Nginx。

准备

本文系统环境为 CentOS 6.6,在其他发行版本的 linux 下编译安装方法基本相同,仅需注意安装过程中所需的依赖库是否被安装,若没有安装可自行查阅相关依赖的安装方式。

安装 php 5.6.8 的方法及过程请参考该文章 《Linux 下 编译安装 Apache 2.4 和 php 5.6》,务必注意根据个人需要替换文中的可选项。

我们先下载必要的组件: PCRE-8.39 (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz) Nginx (http://nginx.org/download/nginx-1.8.0.tar.gz

用 php 实现一个视图组件和模板引擎——基础

只要不是做后端接口开发和一些作为守护进程之类的服务器脚本,大多数时候都是在和浏览器打交道,因此合理组织并展现 html 标签是最为常见的工作。一般大家使用框架时,都会自带有一套视图组件和模板引擎。

我们不讨论这些组件和引擎的好坏。因为这些东西已经经过考验,可以在生产环境下使用。我们现在只是为了学习一些东西,这时候了解一些原理上的可能对以后的帮助更大,如果一些人真的很有时间,利用这些基础知识完全可以写一个自己的组件,即可当做练习,也可以拿去自用。

好了,说这么多,我还是希望很多人明白,视图和模板引擎实际上原理十分简单,所涉及的知识可以说是太基础不过的了。但,千万不要把视图和模板引擎搞混淆,这两个真的不是一个东西 :satisfied:。

为了理解这些,我们先从视图开始了解。