Là non plus je vais pas les avoir, j'ai repris ma classe SQL, ma classe "poubelle" et ma classe de gestion des sessions, il faut ensuite que je code la gestion des droits.
Pour l'instant je m'occupe du Contrôleur Frontal faççon Hoa Framework.
J'ai donc cherché le moyen d'appeler une fonction par son nom, facile avec $nom().
J'ai donc fait des bench (sur 10 millions d'intéractions), et la, stuppeur, je vous laisse constater ça :
<?php
function inutile()
{
for($i = 0; $i < 25; ++$i) ;
}
function call($nom)
{
if(function_exists($nom))
$nom();
}
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
inutile();
echo (microtime(true) - $deb)." s\n";
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
call('inutile');
echo (microtime(true) - $deb)." s\n";
14.133659124374 s
23.357750892639 s
Pour l'appel à une fonction "simple", on perds 65%.
Version namespace :
<?php
namespace A\B\C;
function inutile()
{
for($i = 0; $i < 25; ++$i) ;
}
function call($n, $nom)
{
$f = '\\A\\'.$n.'\\'.$nom;
if(function_exists($f))
$f();
}
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
\A\B\C\inutile();
echo (microtime(true) - $deb)." s\n";
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
call('B\C', 'inutile');
echo (microtime(true) - $deb)." s\n";
14.087102174759 s
28.731594085693 s
Pour un appel version namespace, on perds plus de 100%, c'est à peu près normal.
Version objet static :
<?php
class AControleur
{
static function inutile()
{
for($i = 0; $i < 25; ++$i) ;
}
}
function call($n, $nom)
{
$f = 'MyTest'.$n.'::'.$nom;
if(function_exists($f))
$f();
}
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
AControleur::inutile();
echo (microtime(true) - $deb)." s\n";
$deb = microtime(true);
for($i = 0; $i < 10000000; ++$i)
call('A', 'inutile');
echo (microtime(true) - $deb)." s\n";
17.065737009048 s
12.426862955093 s
Alors là, on perds 21% sur l'approche classique ou namespace, mais on gagne 29% entre les deux.
Je suis désemparé.
Je n'ai aucune explication.
Donc je me tâte à faire des namespaces pour les modèles et des objets les contrôleurs.
J'ai peur que ce soit moche, vous en pensez quoi ?
Par avance merci