淘宝技术专家
# 大白话聊聊分布式事务 ## 什么是分布式事务 简单的来说就是,一个大的操作由两个或者更多的小的操作共同完成。而这些小的操作又分布在不同的网络主机上。这些操作,要么全部成功执行,要么全部不执行。 拿转账的例子来说下什么是分布式事务。张三和李四在不同的城市,存储他们账户信息的服务器也在不同的网络主机上。张三有30元钱,李四有30元钱。张三给李四转账5元就是一个事务。完成这个事务,需要两个
# 聊聊Swoole2.0协程 Swoole 2.0正式版发布了。2.0版本最大的更新是增加了对协程(Coroutine)的支持。正式版已同时支持PHP5和PHP7。基于Swoole2.0协程PHP开发者可以已同步的方式编写代码,底层自动进行协程调度,转变为异步IO。解决了传统异步编程嵌套回调的问题。 目前Swoole底层内置的协程客户端组件包括:udpclient、tcpclient、h
本文是以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基本步骤都有哪些。示例中,我们将实现如下功能: ``` php ``` 输出内容: ``` php $ php ./test.php $ hello word ``` 在扩展中实现一个say方法,调用say方法后,输出 hello word。 # 扩展开发步骤 ## 第一步:生成
# 前言 这次,我们将演示如何在PHP扩展中接受传入的参数和输出返回值。 ``` php ``` 我们将在扩展中实现`default_value`方法。 # 代码 ## 基础代码 这个扩展,我们将在say扩展上增加 ``default_value`` 方法。say扩展相关代码大家请看这篇博文。PHP7扩展开发之hello word 文中已经详细介绍了如何创建一个扩展和提供了源
# 前言 这次,我们将演示如何在PHP扩展中如何对类型进行一些操作。如,判断变量类型。要实现的PHP代码如下: ```php ``` 分别获取string 和 array的长度。 # 代码 ## 基础代码 这个扩展,我们将在say扩展上增加 ``get_size`` 方法。say扩展相关代码大家请看这篇博文。[PHP7扩展开发之hello word](http:/
# 前言 在这篇博文中我们将演示如何在PHP扩展中创建一个变量。示例代码如下: ```php ``` 中间的三行我们将用PHP扩展来实现。 # 代码 ##基础代码 这个扩展,我们将在say扩展上增加 `define_var` 方法。say扩展相关代码大家请看这篇博文。[PHP7扩展开发之hello word](http://www.bo56.com/php7%E6%89%A9
# PHP7扩展开发之字符串处理 # 前言 这次,我们来看看字符串在PHP扩展里面如何处理。 示例代码如下: ```php ``` 上面的str_concat方法实现了如下功能: 1、当字符串不包含指定前缀字符串时,把前缀字符串和被检测字符合并返回。 2、当字符串包含指定前缀字符串时,原样返回。 我们将使用PHP扩展的方式实现str_concat功能。 # 代码 ##
# 前言 这次,我们将演示如何在PHP扩展中定义一个常量。要实现的PHP代码如下: ``` php ``` 我们将演示在PHP扩展中定义三个常量。如上面代码中的三个define。 # 代码 ## 基础代码 这个扩展,我们将在say扩展的 ``PHP_MINIT_FUNCTION(say)`` 方法上增加相应的代码。say扩展相关代码大家请看这篇博文。[PHP7扩展开发之
本篇文章主要将如何在扩展中创建一个对象。创建的对象的过程,其实和一个小孩出生,成长的过程有些类似。 ##第一步,办准生证 生孩子第一步,先办准生证。声明我要生孩子了。对象创建的时候,如何办准生证呢?只要定义一个zend_class_entry变量即可。代码如下: ```c zend_class_entry ce; ``` zend_class_entry 是啥?可以认为它使一个原型
#前言 这篇文章不是教你如何安装使用xhprof进行性能分析。如果想了解如何安装使用xhprof,网络上文章很多,你也可以看我之前写的两篇文章。 [非侵入式监控PHP应用性能监控分析](http://www.bo56.com/%e9%9d%9e%e4%be%b5%e5%85%a5%e5%bc%8f%e7%9b%91%e6%8e%a7php%e5%ba%94%e7%94%a8%e6%80%a7%