php functies -> eigen functies?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

11/10/2012 10:01:20
Quote Anchor link
Hallo mensen,

Ik zit me zomaar eens iets af te vragen... een hersenspinsel.

PHP heeft best rare functiebenamingen die niet altijd even consistent zijn, denk bijv. aan str_replace en strlen. Of was het nou strreplace en str_len?

Toen vroeg ik me zojuist ineens af... wat nu als je hier zelf functie voor maakt met je eigen handige benaming:

string_length()
string_replace()
enz.

In die functies gebruik je dan de PHP functies, maar je hoeft je nooit meer af te vragen wat de juiste naam van de functie is.

Ander voorbeeld:
eregi en preg_match

De eerste is verouderd en moet vervangen worden door de 2e. Maar wat nu als je zelf een functie had geschreven, bijv. pattern_match().

Dan had je alleen die ene functie hoeven aan te passen in plaats van je completen project door te spitten.

En zo zijn er legio voorbeelden te noemen.

Heel stiekem lijkt het me best handig om je eigen functies te gebruiken. Ik kan sowieso één nadeel bedenken. Stel dat andere programmeurs aan jouw project werken dan kennen ze de "nieuwe" functies niet. En het tweede, maar daar ben ik wel heel benieuwd naar... zou het (significant / meetbaar) vertragend werken??? Stel dat je bestaande functies vervangt door je eigen functies, zou alles dan ineens een stuk trager worden?

Zo maar even een hersenspinsel, maar ik ben wel benieuwd naar jullie meningen!
 
PHP hulp

PHP hulp

28/11/2024 11:36:39
 
- Ariën  -
Beheerder

- Ariën -

11/10/2012 10:05:49
Quote Anchor link
Ik geef toe, de benamingen zijn niet echt efficient, en hoop dat ze dit ooit nog eens gaan verbeteren.
Het aanbrengen van zelfgefabriceerde alias-functies kan je doen, maar vind ik overbodig vanwege de 'function auto-complete` in de meeste editors, in een team kan het gebruik van aliassen voor verwarring leiden.
 
Ozzie PHP

Ozzie PHP

11/10/2012 10:14:17
Quote Anchor link
Ben het met je eens Aar dat het in een team sowieso geen goed idee is. Maar voor projecten waar ik alleen zelf aan werk?

Waar ik vooral benieuwd naar ben, is of het vertragend werkt en dus ten koste gaat van de performance van je website. Of zou dat te verwaarlozen zijn?
 
TJVB tvb

TJVB tvb

11/10/2012 10:23:40
Quote Anchor link
Als je een alias aanmaakt heb je een extra call, dit zal dus vertragend zijn. Al zal je dit niet snel merken.
Vooral de overdraagbaarheid van je code zie ik wel als een probleem.
Gewoon veel programmeren en je leert vanzelf uit je hoofd hoe elke functie heet :p
 
Ozzie PHP

Ozzie PHP

11/10/2012 10:38:12
Quote Anchor link
@TJVB, ja dat is ook zo... en van de meeste weet je het ook wel. Maar van de andere kant lijkt het me wel handig om gewoon duidelijke, heldere consistente functienamen te kunnen gebruiken. Maar denk jij dat dat een merkbaar snelheidsverlief oplevert?
 
Kees Schepers

kees Schepers

11/10/2012 10:43:28
Quote Anchor link
Je kunt ook een framework gebruiken, daar zitten vaak ook veel helpers in die aan het framework standaard voldoen.
 
Ozzie PHP

Ozzie PHP

11/10/2012 10:45:12
Quote Anchor link
Thanks Kees, maar zou het een merkbaar snelheidsverschil opleveren. Daar ben ik zo benieuwd naar!
 
- Ariën  -
Beheerder

- Ariën -

11/10/2012 11:29:52
Quote Anchor link
Nee, die verschillen zijn te verwaarlozen.

Probeer het maar eens te benchmarken.
Roep voor de grap eens 1000 keer een simpele functie aan, en meet de tijd, en doe dit ook bij een dergelijke alias.
 
Ozzie PHP

Ozzie PHP

11/10/2012 11:50:11
Quote Anchor link
Aar, ik heb nu dit gedaan. Klopt deze test? De uitkomsten zijn, 4x achter elkaar uitgevoerd:

0.0011920928955078
0.0013911724090576
0.0013656616210938
0.0012428760528564

Als ik het dus goed begrijp scheelt het op 10.000 functie-aanroepen slechts 0,0013 seconde? Begrijp ik het zo goed? (En stel nu dat ik bijv. van 100 functies eigen varianten maak, kost het dan nog extra tijd om die functies in te lezen, of is dat ook verwaarloosbaar?)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function test() {
  echo strtolower('TEST TEST TEST TEST');
}

$a = microtime(true);
for ($i = 1; $i < 10000; $i++) {
  echo strtolower('TEST TEST TEST TEST');
}

$b = microtime(true);
for ($i = 1; $i < 10000; $i++) {
  test();
}

$c = microtime(true);
$d = $b - $a;
$e = $c - $b;
$f = $e - $d;
echo '<br /><br />';
echo $f;
?>
Gewijzigd op 11/10/2012 11:54:26 door Ozzie PHP
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.