Lo Zend Engine, il motore che si occupa di compilare ed eseguire i nostri script PHP, fornisce una vasta gamma di funzioni native che svolgono moltissimi compiti di comune utilità. Possiamo operare con semplicità sulle stringhe di testo, eseguire operazioni sul filesystem o gestire complesse strutture gerarchiche di array. Molte volte sorge però la necessità di estendere le capacità native del linguaggio al fine di semplificare ed organizzare correttamente i propri progetti: potremmo aver bisogno di un sistema di sessioni su database, oppure di una libreria che ci faciliti la generazione di file PDF o che ci permetta la gestione di stringhe composte da byte multipli. In questo caso la struttura stessa del linguaggio PHP, che unisce al supporto alla programmazione procedurale quello per la programmazione orientata agli oggetti, ci viene in aiuto: possiamo combinare i componenti che ci vengono forniti dal linguaggio per costruire strutture operative che si adattino alle nostre esigenze.
Sfortunatamente non tutte le nostre esigenze possono però essere soddisfatte in questo modo: potrebbero presentarsi casi in cui delle routine debbano essere eseguite con basso utilizzo di memoria o di cicli macchina, oppure si potrebbe voler sfruttare una libreria scritta da terzi in un linguaggio differente da PHP anziché doverla riscrivere dal nulla. In queste situazioni particolari lo Zend Engine da solo può fare ben poco; per questo motivo i creatori di PHP hanno optato per fornire un sistema che permetta allo sviluppatore esperto di estendere le potenzialità del motore fornendo funzionalità native difficilmente emulabili sfruttando solamente PHP.
Il motore di esecuzione di PHP è quindi capace di caricare estensioni scritte in linguaggio C/C++ (il linguaggio con cui lo Zend Engine stesso è stato sviluppato) che seguano una determinata struttura e di permettere l'utilizzo delle funzioni definite nativamente all'interno dei propri script. La scrittura di estensioni non è affatto un'operazione poco comune: l'installazione standard di PHP fornisce già molte estensioni che permettono di svolgere svariate operazioni (basti pensare al supporto per MySQL o per XML), e svariati sviluppatori si sono occupati di sviluppare e fornire estensioni personalizzate al fine di permettere ai programmatori che utilizzano PHP di affrontare varie problematiche in modo molto più semplice. È possibile trovare moltissime estensioni per PHP sulla rete: Sourceforge e PECL sono due fonti molto ricche e di sicuro interesse.
In questa guida cercheremo di spiegare in modo dettagliato ed esauriente come scrivere estensioni per PHP. Abbiamo deciso di utilizzare Linux come piattaforma di sviluppo e di testing dato che la maggior parte dei server che offrono il supporto PHP girano su piattaforma LAMP (Linux Apache Php MySQL). La guida seguirà una struttura prettamente didattica, anche se verranno comunque forniti alcuni esempi pratici al fine di rendere più piacevole la lettura e più comprensibili i concetti esposti. Prima di cominciare è necessario che abbiate una buona conoscenza del linguaggio C e che abbiate disponibili i sorgenti della versione di PHP per cui desiderate scrivere le vostre estensioni.
Sessioni PHP: cosa sono, come si usanoDalla configurazione di PHP, alla gestione delle sessioni in un... |
Continuous Integration: automatizziamo i client con PhingContinuous Integration: automatizziamo i client con Phing. Esempi... |
Archiviazione delle applicazioni PHP con PharCome incorporare intere applicazioni PHP all'interno di un singolo... |
I traits in PHP 5.4Cosa sono, a cosa servono e come si unsano i traits, la novità per... |
PHP 5.4: il web server integratoImpara ad usare il web server integrato nella versione 5.4 di PHP:... |
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |