Problem:
Zazwyczaj jest wiele sposobów na wykonanie jednej rzeczy.
Skąd mam wiedzieć , czy wybrana metoda jest najbardziej optymalna?
Może na przykładzie jaki mnie męczy :
Piszę serwis na takim moim ubogim pseudo szablonie. Mam plik .tpl który przeszukuje sobie funkcja str_replace, a nastepnie echuje calość.
Co jest lepsze :
<?php
$pokaz_glwona = str_replace('{form}',"<form name="dodaj_strone
" method="POST
" action="dodaj_wpis_p
.php
" enctype="multipart
/form
-data
">",$pokaz_glwona ); $pokaz_glwona = str_replace('{anchor}',"<INPUT type="text
" name="anchor
" size="25" maxlength="100"/>" ,$pokaz_glwona ); $pokaz_glwona = str_replace('{url}',"<INPUT type="text
" name="url
" size="25" maxlength="100"/>" ,$pokaz_glwona ); $pokaz_glwona = str_replace('{mail}',"<INPUT type="text
" name="mail" size="25" maxlength="100" onBlur="SprawdzMaila
(this
)" />" ,$pokaz_glwona ); $pokaz_glwona = str_replace('{opis}',"<TEXTAREA name="opis
" rows="10" cols="35"></TEXTAREA>" ,$pokaz_glwona ); $pokaz_glwona = str_replace('{zdjecie}',"<INPUT name="plik1
" type="file" />" ,$pokaz_glwona ); $pokaz_glwona = str_replace('{button}', "<INPUT type="button
" name="dodaj_wpis
" value="Dodaj wpis
" onclick="CzyPelne
(this
)"></form>",$pokaz_glwona ); $pokaz_glwona = str_replace('{gdzie}', "<select name="gdzie
"><option value="0">Wybierz</option>".$gdzie."</select>",$pokaz_glwona ); ?>
Czy :
<?php
$form = "<form name="dodaj_strone" method="POST" action="dodaj_wpis_p.php" enctype="multipart/form-data">";
$anchor = "<INPUT type="text" name="anchor" size="25" maxlength="100"/>";
$url = "<INPUT type="text" name="url" size="25" maxlength="100"/>";
$mail = "<INPUT type="text
" name="mail" size="25" maxlength="100" onBlur="SprawdzMaila
(this
)" />"; $opis = "<TEXTAREA name="opis" rows="10" cols="35"></TEXTAREA>";
$zdjecie = "<INPUT name="plik1
" type="file" />"; $button ="<INPUT type="button" name="dodaj_wpis" value="Dodaj wpis" onclick="CzyPelne(this)"></form>";
$gdzie_t = "<select name="gdzie"><option value="0">Wybierz</option>".$gdzie."</select>";
'{form}',
'{anchor}',
'{url}',
'{mail}',
'{opis}',
'{zdjecie}',
'{button}',
'{gdzie}'
);
$form,
$anchor,
$url,
$mail,
$opis,
$zdjecie,
$button,
$gdzie_t
);
$pokaz_glwona = str_replace($zmienne_tpl,$zmienne_php ,$pokaz_glwona ); ?>
czy też może, zmienne jak powyżej tylko :
<?php
$trans = array('{form}' => $form, '{anchor}' => $anchor, '{url}' => $url , '{mail}' => $mail, '{opis}'=>$opis, '{zdjecie}'=>$zdjecie, '{button}'=>$button, '{gdzie}'=>$gdzie_t);
$pokaz_glwona = strtr($pokaz_glwona, $trans); ?>
Gdzieś na forum wyczytałem, że należy daną funkcje wrzucić w pętle i porównać wyniki.
Dla wszystkich trzech opcji przy 100 powtórzeniach otrzymałem ok 19 sek. - były wahania, ale dla wszystkich trzech metod czas generowania był praktycznie taki sam.
Gdzieś na forum było że najlepiej zapakować to do tablicy i tylko raz wywołać funkcję str_replace - to jest niby najwydajniejsza opcja, ale dlaczego?? czym kierujecie się przy wyborze metody rozwiązania danego problemu?
Prosiłbym o jakąś bardziej ogólną wypowiedź nie tylko dotyczącą tego przykłądu.
pozdrawiam