构建自定义PHP扩展(.so)

时间:2011-11-23 12:07:09

标签: php

我拥有一个在美国和加拿大开展业务的高流量网站。我们有很多服务器,但我想确保它100%可用,没有任何延迟。

我已经学会了创建自定义扩展(我知道一点C),我想创建自定义验证/文件(因为php扩展运行得更快)。

我不想要求你们提供所有新的扩展,但我想知道如何构建它的一般想法(我使用的是CentOS)。

示例:

我们网站的一部分是送货跟踪,这需要邮政编码。

对于美国我有:

function check_usa_postal_code($pc) {
  return is_numeric($pc);
}

但是对于加拿大,我想在PHP中构建一个自定义函数,如:

check_canada_postal_code($pc)

此函数应返回1或0。

由于

3 个答案:

答案 0 :(得分:9)

我建议阅读这些文章:

Extension Writing Part I: Introduction to PHP and Zend

How to create PHP extensions – part I: simple functions

以及如何编译:

UNIX: Compiling PHP Extensions

Build PHP extensions with SWIG

(我推荐像马里奥那样的SWIG

Postal codes in Canada阅读有关加拿大邮政编码的详情,因为并非所有字母都在使用。

答案 1 :(得分:2)

您应该考虑使用HipHop来编译源代码,而不是尝试在C中构建扩展。这将非常简单,并且可以非常快速地运行您的代码。

答案 2 :(得分:0)

您还应该考虑使用 Zephir。它的语法与 PHP 非常相似。它专门用于创建 PHP 扩展并编译为扩展。

甚至有几个从常规 PHP 到 Zephir 的转换器。他们没有考虑到所有的特性,所以在编译之前需要一些小的代码更改。我使用sandrokeil/php-to-zephir