Article complet: Encapsulation SQL dans du code PHP

20/01/2010

Permalink 15:19:09, Catégories: php, 244 mots   French (FR) , julien pauli

Encapsulation SQL dans du code PHP

Encore un peu de __halt_compiler()

Le but : créer un script qui va monter une base SQL en mémoire pour des tests.
Facile, oui, mais en jouant avec le compilateur Zend cette fois, c'est à dire en écrivant le script SQL au sein même du fichier PHP, sans manger de mémoire PHP pour le stocker dans une variable.

Voila la sauce :

$p = new PDO("sqlite::memory:", "user", "pass"); 
$fp = fopen(__FILE__, 'r'); 
fseek($fp, __COMPILER_HALT_OFFSET__); 
 
while ($line = fgets($fp)) { 
  // on crée le tables et on insère les données écrites en SQL sous le script PHP 
  $p->exec($line); 

fclose($fp); 
 
__halt_compiler(); 
create table table1(champ1 INTEGER, champ2 CHAR); 
insert into table1 (champ1, champ2) VALUES (3, 'foo'); 
// {{ some more SQL code to run here }} 

Sympa cette fonction qui permet d'encapsuler au sein même de ces fichiers PHP du code non PHP en arrêtant le compilateur.
On pourrait imaginer compresser le code pour qu'il prenne moins de place, voire même encapsuler du code malicieux ... whouuu !
En résumé, un seul fichier encapsule du code PHP, SQLite étant compilé avec PHP ça embarque un moteur de base de données, et il n'a même pas besoin du FileSystem pour stocker la base SQLite : c'est stocké en mémoire ( et détruit en fin de script).
Encapsulation extrême !

Social Bookmarking:

                                     

Commentaires:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0

Cet article n'a pas de Commentaires pour le moment...

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Julien Pauli DevPHP blog

Developpement web PHP

Rechercher

<  Février 2012  >
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web