2011-11-23 9 views
7

Tengo un sitio web con mucho tráfico que hace negocios en los EE. UU. Y Canadá. Tenemos muchos servidores pero quiero asegurarme de que esté 100% disponible sin latencia alguna.Creación de extensiones PHP personalizadas (.so)

He aprendido a crear extensiones personalizadas (conozco un poco de C) y quiero crear archivos/validación personalizados (ya que las extensiones de php se ejecutan más rápido).

No quiero pedir todas las nuevas extensiones, pero quiero conocer la idea general sobre cómo construirla (estoy usando CentOS).

Ejemplo:

Una sección de nuestro sitio es el seguimiento del envío y esto requiere un código postal.

Para los EE.UU. que tienen:

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

Pero para Canadá, me gustaría construir en PHP una función personalizada como:

check_canada_postal_code($pc)

Esta función debe devolver 1 o 0.

Gracias

+4

El enfoque más simple es usar [SWIG] (http://stackoverflow.com/questions/705443/how-to-mix-up-c-and-php) para compilar el código de la interfaz C. Para su función en particular, es totalmente inútil hacerlo. Considere la creación de perfiles en lugar de optimizaciones arbitrarias. – mario

Respuesta

9

Recomiendo leer t presentes artículos:

Extension Writing Part I: Introduction to PHP and Zend

How to create PHP extensions – part I: simple functions

y aquí está la forma de compilar:

UNIX: Compiling PHP Extensions

Build PHP extensions with SWIG

(recomiendo SWIG como Mario dijo)

Lea más sobre los códigos postales canadienses en Postal codes in Canada ya que no se están utilizando todas las letras.

+0

tiene código de muestra? – apollo

+0

bien esto no es un código de 20 líneas de código, verifique el segundo enlace, proporciona un muy buen ejemplo de cómo hacerlo –

+0

ok gracias por su ayuda, parezca mucho para mí – apollo

2

En lugar de intentar crear una extensión en C, debería considerar compilar su código fuente usando HipHop. Esto será mucho más simple y ejecutará tu código bastante rápido.

Cuestiones relacionadas