Require mais exécution séparé


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1736
Inscription: 31 Aoû 2007

Require mais exécution séparé

Message le Ven Aoû 22, 2008 2:56

Alors un exemple vaut mieux qu'un grand discours :

index.php
Code: Tout sélectionner
<?php
echo "blabla";
require_once("une_page_qui_est_la_meme_pour_tous_mes_membres.php");
echo "Je suis un nul en php";
require_once("footer.php");
?>


une_page_qui_est_la_meme_pour_tous_mes_membres.php
Code: Tout sélectionner
<?php
eaccelerator_cache_page('cette_page_doit_etre_mise_en_cache, 7200);
$sql = mysql_query("SELECT benchmark(100000000,1+2)");
?>


Bon, le fichier avec le SQL Benchmark est juste pour montrer. Mais le problème, est que le require_once va executer toute la page (y compris la variable eaccelerator_cache_page) et donc cachera entièrement la page index.php (avec nom d'utilisateur etc...)..

En résumé, comment éxecuter 2 pages PHP différentes puis les "recoller"... Les 2 pages ont besoin d'être interprétés séparément, mais affichées ensemble... Pour l'instant la meilleur technique que j'ai trouvé serait un iframe ^^ alors bon ^^


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Ven Aoû 22, 2008 8:18

Hello,

c'est très "simple" : n'utilises pas cette fonction d'eAccelerator, qui n'est pas adaptée à ton besoin.

Tu peux te faire un système "maison" à coup de : eaccelerator_get() / echo / ob_start() / ob_get_contents() / eaccelerator_set() / ob_end_flush()

Ou encore : readfile() / ob_start() / ob_get_contents() / file_put_contents() / rename() / ob_end_flush()


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1736
Inscription: 31 Aoû 2007

Message le Ven Aoû 22, 2008 8:34

Hum, je trouvais cette fonction géniale et j'ai pris l'exemple d'eaccelerator, mais c'était une question que je m'étais déjà posé pour d'autres cas...

Donc oui pour ces autres fonctions que je me sers pour des parties bien spécifiques, mais je n'ai pas eu de réponse à d'autres cas :p


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Ven Aoû 22, 2008 8:38

La seule façon de faire vraiment une exécution séparée c'est de lancer un processus différent (à coup d'exec() ou via un appel HTTP par exemple)... chose qui au final sera souvent beaucoup plus lent que de faire le traitement en question.

Tu peux aussi jouer avec le SSI, mais le problème risque d'être le même.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1736
Inscription: 31 Aoû 2007

Message le Ven Aoû 22, 2008 9:00

Vraiment bizarre qu'il y ait pas une fonction php pour faire ça...

Bon, je vais fouiner mais j'étais persuadé que j'avais zappé quelque chose...

Merci ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités