PHP内核的实现与世界上绝大多数的程序一样,接收输入数据, 做相应处理然后输出(返回)结果。 我们编写的代码就是PHP接收的输入数据,PHP内核对我们编写的代码进行解释和运算, 最后返回相应的运算结果。

1、一切的开始: SAPI接口
SAPI(Server Application Programming Interface)指的是PHP具体应用的编程接口, 就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行, PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。

最常见的四种启动PHP方式如下:

  • CLI/CGI模式调用;
  • 多进程模块;
  • 多线程模块;
  • 嵌入式,C程序中调用Zend Engine;

PHP开始执行以后会经过两个主要的阶段:处理请求之前的开始阶段和请求之后的结束阶段。 开始阶段有两个过程:第一个过程是模块初始化阶段(MINIT), 在整个SAPI生命周期内(例如Apache启动以后的整个生命周期内或者命令行程序整个执行过程中), 该过程只进行一次。第二个过程是模块激活阶段(RINIT),该过程发生在请求阶段, 例如通过url请求某个页面,则在每次请求之前都会进行模块激活(RINIT请求开始)。

- 阅读剩余部分 -

很长时间没有认真的写篇文章,从今天开始正式学习PHP扩展开发,之前在Linux上也折腾过,只是认为在Linux上没有熟悉的C++ IDE,看PHP底层源码不方便,是转向Windows上部署环境,配合VS2010,源码查看、智能提示方便多了。PHP扩展开发是基于C语言,自己对C/C++比较熟悉,从扩展开发这个方向了解PHP Zend虚拟机底层实现应该是一条比较好的途径。本文主要介绍在Linux、Windows环境如何部署PHP扩展开发环境,以及我遇到的一些问题。

1、Linux平台环境配置
Linux平台配置过程很容易,本节以centos 4.3为例

  • step1:下载PHP源码包,并解压
  • step2:使用ext_skel生成工程框架./ext_skel --extname=myext

(1)在.h文件中声明导出函数:

PHP_FUNCTION(sqlapm);

- 阅读剩余部分 -

ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。

1、LogStash
Logstash是一个可以实时进行日志收集、解析,并将数据传输到你需要的位置(服务器、文件等)的轻量级开源框架。
0f0e2513fdc938af8b76dc78743c761c5a5d4858.png
启动

/logstash -e ‘input { stdin { } } output { stdout {} }’ 

stdin => stdin,通过标准输入输出流来演示简单的Logstash功能

/logstash -f your.conf.path

通过配置文件的方式来启动Logstash,从而实现日志的收集及分析

框架

  • input:支持pull或者push,这个非常有用!

参考

常用命令

1、git init 初始化本地快照
2、git remote add ssh://.... 配置远程库
3、git add files 添加文件夹或文件
4、git status 列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件
5、git commit -m "text..." 提交
6、git log 提交记录
7、git pull 拉取远程最新代码并merge(=fetch+merge)
8、git fetch 拉去最新代码(未合并)
9、git merge 合并代码
10、git push origin master 提价代码到远程master分支

常见问题

1、fatal: This operation must be run in a work tree?
git config --local --bool core.bare false

参考资料
1、Git远程操作详解
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
2、常用 Git 命令清单
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html?utm_source=tool.lu
3、Git 工作流程
http://www.ruanyifeng.com/blog/2015/12/git-workflow.html
4、Git 使用规范流程
http://www.ruanyifeng.com/blog/2015/08/git-use-process.html

1、熟悉当前业务
2、PHP:基础、核心(zend)
3、框架:CI、Yii2、ODP
4、Javascript(Javascript DOM编程艺术)
5、其他:Git、Linux、Shell
6、PHP Good coder认证