2011-11-23 21 views
7

मेरे पास एक उच्च ट्रैफ़िक वेबसाइट है जो संयुक्त राज्य अमेरिका और कनाडा में व्यवसाय करती है। हमारे पास बहुत सारे सर्वर हैं लेकिन मैं यह सुनिश्चित करना चाहता हूं कि यह किसी भी विलंबता के साथ 100% उपलब्ध है।बिल्डिंग कस्टम PHP एक्सटेंशन (.so)

मैंने कस्टम एक्सटेंशन बनाने के बारे में सीखा है (मुझे थोड़ा सी पता है) और मैं कस्टम सत्यापन/फाइलें बनाना चाहता हूं (क्योंकि PHP एक्सटेंशन तेजी से चलते हैं)।

मैं आपसे सभी नए एक्सटेंशन मांगना नहीं चाहता हूं लेकिन मैं इसे कैसे बनाना है (मैं सेंटोस का उपयोग कर रहा हूं) पर सामान्य विचार जानना चाहता हूं।

उदाहरण:

हमारी साइट के

एक अनुभाग परिवहन ट्रेकिंग है और यह एक डाक कोड की आवश्यकता है।

संयुक्त राज्य अमेरिका के लिए मेरे पास है:

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

लेकिन कनाडा के लिए, मैं की तरह एक कस्टम समारोह PHP में निर्माण करने के लिए करना चाहते हैं:

check_canada_postal_code($pc)

इस समारोह 1 वापसी या 0 चाहिए।

धन्यवाद

+4

सी इंटरफ़ेस कोड बनाने के लिए सबसे आसान तरीका [SWIG] (http://stackoverflow.com/questions/705443/how-to-mix-up-c-and-php) का उपयोग कर रहा है। विशेष रूप से आपके कार्य के लिए यह ऐसा करने के लिए पूरी तरह से व्यर्थ है। मनमाने ढंग से अनुकूलन के बजाय प्रोफाइलिंग पर विचार करें। – mario

उत्तर

9

मैं टी पढ़ने की सलाह देता हूं hese लेख:

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 पर कनाडाई ज़िप कोड पर और पढ़ें क्योंकि सभी अक्षरों का उपयोग नहीं किया जा रहा है।

+0

आपके पास नमूना कोड है? – apollo

+0

अच्छी तरह से यह 20 लाइनों का कोड नहीं है, दूसरा लिंक देखें, यह –

+0

ठीक करने के तरीके पर एक बहुत अच्छा उदाहरण प्रदान करता है ठीक है धन्यवाद आपकी मदद के लिए मुझे बहुत पसंद है – apollo

2

सी में विस्तार करने और बनाने के बजाय आपको HipHop का उपयोग करके अपने स्रोत कोड को संकलित करने पर विचार करना चाहिए। यह बहुत सिंपलर होगा और आपका कोड बहुत तेजी से चलाएगा।

संबंधित मुद्दे