Autor | Zpráva | ||
---|---|---|---|
Jan Tvrdík Profil |
#1 · Zasláno: 14. 6. 2008, 15:53:43
Která varianta je podle vás lepší? První zkusí rovnou soubor přejmenovat a pokud náhodou dojde k chybě (což je statisticky velmi nepravděpodobné), tak ji zpětně analyzuje. Druhá verze chybě předchází, čímž ale běží téměř vždy (kromě případů kdy dojde k chybě) jedna podmínka navíc.
public function mojePrejmenovani1($oldName, $newName) { if (!rename($oldName, $newName)) { if (!file_exists($oldName)) { throw new Exception('Soubor nenalezen'); } throw new Exception('Neznámá chyba'); } } public function mojePrejmenovani2($oldName, $newName) { if (!file_exists($oldName)) { throw new Exception('Soubor nenalezen'); } if (!rename($oldName, $newName)) { throw new Exception('Neznámá chyba'); } } Pozn.: Vždy jsem používal variantu II, až nyní mě napadlo, že by šla použít i varianta I. |
||
joe Profil |
#2 · Zasláno: 14. 6. 2008, 15:56:33
Osobně bych použil taky variantu 2.
|
||
Časová prodleva: 2 měsíce
|
|||
Jan Tvrdík Profil |
#3 · Zasláno: 19. 8. 2008, 15:41:36
Nechce se k tomu vyjádřit ještě někdo? :)
|
||
Mike8748 Profil |
#4 · Zasláno: 19. 8. 2008, 15:50:08
ja bych byl pro variantu 2, ale jeste bych tam doplnil kontrolu na existenci $newName, protoze pokud $newName existuje tak se taky prejmenovani nepovede, a "Neznama chyba" neni moc informativni v tomhle smeru
nebo doplnit 3 nepoviny parametr, $force=false, pokud bude true, tak se napred $newName smaze (pokud existuje samozdrejme) |
||
Joker Profil |
#5 · Zasláno: 19. 8. 2008, 16:07:53
Jan Tvrdík
Řekl bych, že to je celkem jedno, obojí je "správně". Teoreticky se dá říct to, co je asi zřejmé: Varianta 1 je obecně výhodnější za těchhle podmínek: - chyba v rename bude nastávat spíš výjimečně - bude se často stávat, že selže rename, aniž by selhalo file_exists (tj. varianta "neznámá chyba") - funkce file_exists bude náročnější, než rename Varianta 2 je obecně výhodnější za těchhle podmínek: - funkce file_exists není moc náročná, respektive funkce rename je hodně náročná - k variantě "soubor nenalezen" bude docházet poměrně často a naopak k variantě "neznámá chyba" málokdy. |
||
Časová prodleva: 16 let
|
0