Ola,

Een vraagje puur uit nieuwsgierigheid. Ik heb een stukje code:

<?php
if ($path->isDir()) $this->ensureDirectory(str_replace($directory, $directory_copy, $path->getPathname()));
else $this->copy($path->getPathname(), str_replace($directory, $directory_copy, $path->getPathname()));
?>
Op zich niks spannends aan, maar zoals je ziet zit er 2x dezelfde str_replace in. Dat vind ik eigenlijk best stom staan, 2x dezelfde riedel... Zouden jullie dit zo laten? Of voor die str_replace een variabele aanmaken?

<?php
$new_path = str_replace($directory, $directory_copy, $path->getPathname());
if ($path->isDir()) $this->ensureDirectory($new_path);
else $this->copy($path->getPathname(), $new_path);
?>
In voorbeeld 1 is de code wat langer en heb je dus 2x zo'n lange riedel. In voorbeeld 2 is de code korter en duidelijker, maar maak je onnodig een nieuwe variabele aan. Wat doen jullie in dit soort situaties? Wat zijn jullie afwegingen? Alvast bedankt voor de reacties.
Een CLI applicatie is een console applicatie, maar wat ik uit de verdere reacties opmaak is dit het niet. Ik vermoed nu dat je dergelijke functies in een cms systeem wilt gebruiken?

Vanwaar wil je dergelijke verantwoordelijkheden neerleggen bij een website/cms ?

Qua code opmaak, hou je aan de psr regels, en wijk hier nooit vanaf!!

Misschien is het makkelijker te beoordelen, als je de betreffende class hier plaatst, of een linkje naar GitHub??
Het is een stukje van een filesystem class. Voor de rest niet zo spannend allemaal. Het gaat me alleen even om dat stukje. Moet je iets in een variabele stoppen om je code beter leesbaar te maken. Dat is de kernvraag. Ik heb nu 3 stemmen voor optie 2, dus jullie zouden inderdaad een extra variabele aanmaken om code beter leesbaar te maken. Dat vind ik wel opvallend, omdat mij eerder wel eens is verteld dat je dat niet moet doen.
Een extra variabele aanmaken voor de leesbaarheid, is absoluut geen probleem.

Persoonlijk vind ik een filesystem class niet thuishoren in een website/cms, vanwaar wil je dergelijke verantwoordelijkheden geven aan een website/cms?
Euh, waarom zou je dat niet doen? Ik zie het probleem niet echt. Ik ben bezig met een framework waar ik uiteindelijk gemakkelijk een website mee moet maken. Dan is het handig als ik makkelijk bestanden kan kopiëren enz.
Een webapplicatie hoort naar mening geen server side functies te hebben, tevens worden php functies als exec, mkdir, etc op 85% van de webhosting omgevingen geblokkeerd, daar dit onveilig is.
Niet als je een eigen vps draait :)

Stel ik maar een soort "sjabloon" voor een website, dan kun je die met dit soort functies kopiëren om even een voorbeeldje te noemen.
En welk voordeel heeft dit dan? En hoe beveilig jij jouw server tegen misbruik van deze functies?
Het voordeel kan zijn dat ik met een druk op de knop een hele website-structuur kan creëren. En hoe ik misbruik voorkom? Ik bouw zo'n functie alleen in in mijn eigen gedeelte van het cms en niet in de cms van een eventuele klant. Ik ben dus de enige die het kan bedienen.
Hebben de klanten totaal geen toegang dan?
En hopelijk hackers al helemaal niet!!

Mijn mening, misschien erg paranoia, maar dergelijke opties/functies hoort een website/cms nooit en te nimmer te beschikken, zie ook geen reden toe om dit te gebruiken voor het creëren van een website.

Persoonlijk zou ik gaan voor de mogelijkheden van composer en git.
>> Hebben de klanten totaal geen toegang dan?
En hopelijk hackers al helemaal niet!!

Nee, en... hopelijk nee :)
Als je site gehackt wordt ben je toch de lul, of je nou wel of niet een class met zulke functies hebt. Php heeft die functies natuurlijk ook gewoon native on board (alleen iets minder uitgebreid).

Reageren