di: Fabio Sutto 06 Novembre 2003
La necessità di proteggere i sorgenti da occhi indiscreti è meno sentita nell'ambito della programmazione per il WEB rispetto a quanto accade per le applicazioni tradizionali, e questo è particolarmente vero per un linguaggio come Php che appartiene al mondo dell'"Open Source".
Eppure può capitare di voler distribuire realizzazioni che hanno richiesto un particolare impegno evitando che il primo arrivato le possa imitare, o che sia necessario consegnare al cliente una copia di valutazione senza compromettere la possibilità di essere pagati.
Prodotti rinomati come Zend Encoder e il più economico ionCoube vanno in contro a queste esigenze, ma da qualche tempo esiste anche una soluzione gratuita frutto della grande fucina PEAR/PECL (http://pecl.php.net/): stiamo parlando del "Php bytecode compiler", o bcompiler (http://pecl.php.net/package/bcompiler).
Questa estensione consente sia di convertire i sorgenti Php in un bytecode dal quale è virtualmente impossibile ricostruire gli esatti originali, sia di elaborare tale bytecode come normale codice Php. Bcompiler è stato creato da Alan Knowles con tre obiettivi:
Si tratta di un estensione ancora sperimentale ma che già svolge in modo soddisfacente almeno la prima funzione, ed è proprio ciò di cui ci occuperemo in questo articolo.
Non può migliorare le performance degli script in modo sensibile: a differenza dei due prodotti commerciali citati precedentemente non genera un bytecode ottimizzato, e anche se evita la fase di compilazione del sorgente Php aggiunge l'overhead dovuto all'importazione dei dati codificati.
Il "package" con i sorgenti per Unix è disponibile in PECL (PHP Extension Community Library ), mentre l'estensione per Windows è stata inserita tra gli "Snapshot Php".
Non ci soffermeremo sull'installazione perchè la procedura è del tutto identica a quella descritta nell'articolo Php e SQLite, una piccola grande novità, ed è ben documentata anche nel manuale PEAR. Sottolineo soltanto il fatto che bcompiler richiede almeno Php v. 4.3.0 e che l'estensione per la compressione bzip2 (php_bz2) sia stata abilitata.
Consiglio anche agli utenti Windows di sbirciare nel package per Unix perchè contiene alcuni esempi utili e la descrizione di funzioni non documentate.
Nel corso dell'articolo vedremo che non è possibile codificare interi script ma soltanto librerie di funzioni, singole classi e singole costanti.
Le variabili dichiarate al di fuori di classi e funzioni vanno definite in chiaro, ma la cosa rappresenta un problema di poco conto.
Guida SymfonyScopriamo quanto è facile programmare in PHP. Una guida al framework... |
Guida PHP e MySql praticaEsaminare e comprendere i comandi fondamentali di interazione tra... |
Guida programmazione ad oggetti con PHP 5Come creare applicazioni Web utilizzando la programmazione orientata... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso Webmaster con PHP01 Marzo 2010 a Milano |
|
|
Corso Amministratore Linux15 Febbraio 2010 a Roma |
|
|
Corso Webmaster con PHP29 Marzo 2010 a Roma |