class constants

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Technisch Applicatie ontwikkelaar

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! In deze functie werk jij voornamelijk aan: Het onderhouden en ontwikkelen van de IT systemen; Het opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werk je aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkel en implementeren je MS PowerApps en Power BI. Bedrijfsprofiel Je komt terecht bij een familiair

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Senior Full Stack developer

Bedrijfsomschrijving tbd Functieomschrijving Full Stack Java Development bij Randstad Groep Nederland (HQ) Er is een vacature in het Corporate Client Solutions (CCS) team. Dit team is met een ander team net begonnen aan het project ‘Grip op Inhuur’. Het doel van dit project is de tevredenheid van onze leveranciers te verhogen en de efficiëntie van onze administratie te verbeteren. Onderdeel daarvan is een ‘Mijn-omgeving’ voor ZZP’ers en leveranciers. Naast dit nieuwe project werkt het team ook aan het onderhoud en verbeteren van een digitaal vacature management systeem waarmee dagelijks vele vacatures worden voorzien. Het team ontwikkelt zo veel mogelijk zelf

Bekijk vacature »

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

Bekijk vacature »

Senior Front-end developer (React)

Functie Met een ontwikkelafdeling van ruim 20 collega’s is dit zo ongeveer de helft van alle medewerkers. De software(ontwikkeling) is dan ook de drijvende kracht binnen de organisatie. Ze werken aan het verbeteren dan de bestaande, maar zeker ook nieuwe producten. De software bestaat uit verschillende (React) webapplicaties, maar ook een mobile (React native) app. Hierdoor kom je met verschillende uitdagingen in aanraking en is Mobile kennis natuurlijk mooi meegenomen. De software wordt door vele duizenden professionals dagelijks gebruikt en bevatten grote hoeveelheden data. Aan het team de uitdaging om hierin de best mogelijke gebruiksvriendelijkheid neer te zetten door gebruik

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »
Ozzie PHP

Ozzie PHP

14/10/2013 12:13:54
Quote Anchor link
Ola,

Een (hoop ik) simpel vraagje. Waar zijn class constants eigenlijk voor bedoeld? In sommige gevallen is het vrij duidelijk. Stel je hebt een class en die class moet 5 producten tonen, dan zeg je:

const AMOUNT = 5;

Maar, nu vraag ik me af of je in de nu volgende situatie ook class constants behoort te gebruiken. Stel we hebben een class Foo, en class Foo slaat wel eens gegevens op. Deze gegevens worden altijd opgeslagen in directory "/foobar/bar". Is het dan de bedoeling dat je deze directory in een constante opslaat? Zo dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

class Foo {

  const DIRECTORY = '/foobar/bar';

  public function save($data) {
    file_put_contents(self::DIRECTORY, $data);
  }

}


?>

Zouden jullie hier een constante voor gebruiken (zoals in het voorbeeld) of zouden jullie de directory gewoon hardcoded in de method zetten. Dus zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

class Foo {

  public function save($data) {
    file_put_contents('/foobar/bar', $data);
  }

}


?>

Graag jullie reactie.
Gewijzigd op 14/10/2013 12:14:46 door Ozzie PHP
 
PHP hulp

PHP hulp

06/05/2024 05:21:57
 
Dos Moonen

Dos Moonen

14/10/2013 13:35:31
Quote Anchor link
Bij de voorbeelden die je gaf heb je naar mijn idee geen toegevoegde waarde met een constante. Over het algemeen worden class constante gebruikt om als parameter te gebruiken. Of versienummers.

Als je nou 'static::DIRECTORY' zou gebruiken dan kan je in child classes die constante overschrijven en door 'static' te gebruiken in plaats van 'self' zal de ook echt de overloaded constante gebruikt worden.

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
20
21
22
23
24
25
26
27
28
29
30
<?php

class Foo {

  const DIRECTORY = '/foobar/bar';

  public function save($data) {
    file_put_contents(static::DIRECTORY, $data);
  }

}


class Miauw extends Foo {

  const DIRECTORY = 'miauwwoef/miauw';

  // hier meer code die dingen toevoegt/iets anders wijzigt dan de opslag locatie.
  // anders verdient het waarschijnlijk geen eige class


}

$foo = new Foo;
$miauw = new Miauw;


// vanaf PHP 5.3.0 en hoger, voor lagere versies zou je een getter aan moeten maken.
// maar sinds jij 5.5 gebruikt zit je goed.
// http://php.net/manual/en/language.oop5.constants.php

var_dump($foo::DIRECTORY, $miauw::DIRECTORY);
?>


Het hangt er vanaf of je nog andere dingen met die constante wilt kunnen doen. Als je ergens anders in je code base een methode hebt die de locatie nodig heeft waar Foo zijn spullen opslaat, dan is een constante gebruiken beter dan twee keer een path te hardcoden.
Mocht meerdere objecten willen hebben met de zelfde functieonaliteit als Foo maar voor verschillende paths dan moet je jezelf even afvragen of het niet beter is om het een configuratie optie te maken i.p.v. het voorbeeld hier boven. Vergeet dan geen getter te maken.
 
Ozzie PHP

Ozzie PHP

14/10/2013 13:43:40
Quote Anchor link
Thanks Dos! Ik gebruik trouwens versie 5.4.

Ik wist dus niet dat je een constante kon overschrijven. Is dat iets nieuws? Wat zegt dat "static" dan eigenlijk?

Kijk, waarom ik dus dacht dathet goed is om in zo'n geval een constante te gebruiken, is omdat je dan alle "variabele" info buiten je code kunt houden. In dit geval is de directory een variabele factor (het had namelijk ook een andere directory kunnen zijn). Mocht je dan een keer de directory willen aanpassen, dan hoef je alleen de constante aan te passen, en hoef je niet daadwerkelijk in de code te gaan spitten.
 
Dos Moonen

Dos Moonen

14/10/2013 14:29:58
Quote Anchor link
self betekend de class waar je in zit tijdens het defineren. Dus als je bij mijn voorbeeld self::DIRECTORY zou gebruiken, dan zou Miauw zijn spullen ook opslaan in foobar/foo i.p.v. miauwwoef/miauw.
self wordt dan namelijk gebruikt in de context van class Foo en dan dus vervangen worden door Foo::DIRECTORY.
static wordt gebruikt in de context van class/object gebruikt tijdens het aanroepen. Tenzij je een class final declareert weet je dus niet van te voren wat de context is.

PS. dan ben ik in de war met iemand anders wat betreft je PHP versie :p
 
Ozzie PHP

Ozzie PHP

14/10/2013 14:36:43
Quote Anchor link
Euh, oké... maar ik gebruik dus altijd self::CONSTANT_NAAM om een constante in een class aan te roepen. Klopt dat dan eigenlijk niet? Of zijn beiden goed?

Maar wat vind je van mijn eerdere redenatie? Om dus door middel van constanten de "variabelen" buiten de code te houden?

Dus in je code (method) geef je aan dat je een directory nodig hebt, maar buiten de code geef je via een constante aan om welke directory het gaat. Op deze manier krijg je dus geen variabele data in je code. Snap je wat ik bedoel te zeggen?
 
Dos Moonen

Dos Moonen

14/10/2013 14:59:16
Quote Anchor link
Met self::iets is het makkelijker om classes te hernoemen zonder een search & replace te hoeven doen.

self houd dus in de methode/variabele/constante van de class waarin je het gebruikt of een van zijn ancestors (via inheritance), in die volgorde.
static houd dus in de methode/variabele/constante van de class die je aanroept, de class waarin je het of een van zijn ancestors (via inheritance), in die volgorde.

Veel voorbeelden zijn te vinden op http://php.net/manual/en/language.oop5.late-static-bindings.php
Tussen de comments zitten ook goede voorbeelden.
Gewijzigd op 14/10/2013 15:01:03 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

14/10/2013 15:07:04
Quote Anchor link
"Met self::iets is het makkelijker om classes te hernoemen zonder een search & replace te hoeven doen."

Oké, maar "static::iets" werkt ook, dus dat maakt dan niet uit toch? Maar als ik in dit geval gewoon self gebruik dan klopt het toch?

Al met al nog geen antwoord op mijn vraag...

"Maar wat vind je van mijn eerdere redenatie? Om dus door middel van constanten de "variabelen" buiten de code te houden?

Dus in je code (method) geef je aan dat je een directory nodig hebt, maar buiten de code geef je via een constante aan om welke directory het gaat. Op deze manier krijg je dus geen variabele data in je code. Snap je wat ik bedoel te zeggen?"
 
NOLot -

NOLot -

14/10/2013 15:22:33
Quote Anchor link
Ozzie PHP op 14/10/2013 15:07:04:
"Maar wat vind je van mijn eerdere redenatie? Om dus door middel van constanten de "variabelen" buiten de code te houden?

Dus in je code (method) geef je aan dat je een directory nodig hebt, maar buiten de code geef je via een constante aan om welke directory het gaat. Op deze manier krijg je dus geen variabele data in je code. Snap je wat ik bedoel te zeggen?"



Persoonlijke voorkeur + hangt van de situatie af. Je voorbeeld is zo slecht dat je er eigenlijk niks zinnigs over kan zeggen, aangezien je bij een class dat een file savet in een directory eigenlijk nooit de directory als constante wilt hebben (maar via een setter)
 
Ozzie PHP

Ozzie PHP

14/10/2013 15:33:04
Quote Anchor link
Omdat in jouw ogen iets niet logisch is, wil het niet gelijk zeggen dat het een slecht voorbeeld is.

In dit geval gaat het om een class die altijd iets moet ophalen in een vaste directory. Die directory is onderdeel van een systeem en hoeft in dit specifieke geval niet geset te worden. Maar het gaat erom of het slim is om dit soort data buiten de code te houden.

Ander voorbeeld dan, speciaal voor jou ;)

Stel je verkoopt producten, en (vraag me niet waarom) je wil tijdelijk iedere productnaam suffixen met een text-string, bijv. '-MadeByNOLot!';

Dan kun je dit hardcoded in je method zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
public function getName() {
  return $this->name . '-MadeByNOLot!';
}

?>

... of je gaat een constante gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

const SUFFIX = '-MadeByNOLot!';

public function getName() {
  return $this->name . self::SUFFIX;
}

?>

Zijn constanten hier voor bedoeld is mijn vraag. Ik vind het een mooie manier om "data" los te koppelen van de code, maar is dit gebruikelijk vraag ik me af.
Gewijzigd op 14/10/2013 15:34:31 door Ozzie PHP
 
Dos Moonen

Dos Moonen

14/10/2013 15:44:56
Quote Anchor link
Gebruik 'static' wanneer children het mogen overloaden, daar komt het op neer. Elke 'self' kan je zoals ik al zei in principe vervangen door de class naam van de class waarin de 'self' voorkomt. Voor 'static' is dit niet het geval. Als je dat zou doen kan het zijn dat kan het zijn dat dingen niet meer werken zoals ze horen te werken. Wanneer je 'self' zou vervangen door de class naam zal zoiets voor zover ik weet nooit voorkomen.

Ik kan dus niet met zekerheid zeggen of het in jouw geval uitmaakt of niet, al vermoed ik van niet.

Wat betreft je vraag, als er naast de save method nog een method van Foo dat path nodig heeft kan het het waard zijn. Een paar paths hardcoden in een bestand is zeker niet het ergste om aan te passen, daar hebben editors een search & replace optie voor. Maar als je het path buiten die class nodig hebt is het waarschijnlijk wel een goede reden om er een constante van te maken als het path niet configureerbaar is.
 
Ozzie PHP

Ozzie PHP

14/10/2013 15:51:55
Quote Anchor link
Dos Moonen op 14/10/2013 15:44:56:
Gebruik 'static' wanneer children het mogen overloaden, daar komt het op neer. Elke 'self' kan je zoals ik al zei in principe vervangen door de class naam van de class waarin de 'self' voorkomt. Voor 'static' is dit niet het geval. Als je dat zou doen kan het zijn dat kan het zijn dat dingen niet meer werken zoals ze horen te werken. Wanneer je 'self' zou vervangen door de class naam zal zoiets voor zover ik weet nooit voorkomen.

Ik kan dus niet met zekerheid zeggen of het in jouw geval uitmaakt of niet, al vermoed ik van niet.


Dos Moonen op 14/10/2013 15:44:56:
Wat betreft je vraag, als er naast de save method nog een method van Foo dat path nodig heeft kan het het waard zijn. Een paar paths hardcoden in een bestand is zeker niet het ergste om aan te passen, daar hebben editors een search & replace optie voor. Maar als je het path buiten die class nodig hebt is het waarschijnlijk wel een goede reden om er een constante van te maken als het path niet configureerbaar is.

Thanks! In dit specifieke geval heb ik het path maar in 1 method nodig en hoeft het niet van buitenaf te worden aangeroepen.

De vraag is dan dus of het nuttig en/of gebruikelijk is om het in een constante te zetten. Het enige dat ik in feite doe, is dus dat ik de naam van de directory niet in de method zelf zet, maar (middels een constante) bovenaan de class, buiten de code. Ik vind het ergens wel mooi, omdat je dan geen "data" in de method hebt staan, maar ik vraag me dus nog steeds af of het gebruikelijk is.
 
Dos Moonen

Dos Moonen

14/10/2013 16:11:52
Quote Anchor link
Ik vind het dan onnodig. Ook zijn constante altijd public, dus 'foobar/foo' zal dan zichtbaar zijn buiten de context van die methode, waar dus blijkbaar geen enkele reden voor is.
 
Ozzie PHP

Ozzie PHP

14/10/2013 16:16:30
Quote Anchor link
Oké. Heb er zelf ook nog even over nagedacht. Op zich vind ik het wel mooi om het buiten de code te halen, maar het is denk ik inderdaad een beetje overkill. Want als ik het hier doe, zou ik het overal, in alle classes, moeten doen. En het gaat om een eigen systeem, dus de kans is groot dat ik die directory nooit zal veranderen.

Maar dan wel nog een laatste tegenvraag. In wat voor gevallen gebruik je nu juist WEL class constanten?
 
NOLot -

NOLot -

14/10/2013 16:34:55
Quote Anchor link
Constanten die je buiten je class ook wilt gebruiken. Bijvoorbeeld de HttpKernelInterface van symfony, die heeft een methode handle, om een request af te handelen. Daar kun je aan meegeven of het een sub request of de main request is. De main request is gewoon een int 1, en de sub request een int 2. Dan kun je als gebruiker dit typen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$kernel->handle($request, 1); // main
$kernel->handle($request, 2); // sub


of

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$kernel->handle($request, HttpKernelInterface::MASTER_REQUEST); // main
$kernel->handle($request, HttpKernelInterface::SUB_REQUEST); // sub


In zo'n geval geeft een constante een stuk meer leesbaarheid
 
Dos Moonen

Dos Moonen

14/10/2013 16:39:26
Quote Anchor link
Ooit van magic numbers gehoord?

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
20
21
22
23
24
25
26
27
28
29
<?php

class Magic {

  public function alakazam($mode = 0) {
    switch($magic) {
      case
0:
        ...

        break;
      case
1:
        ...

        break;
      case
2:
        ...

        break;
      case
3:
        ...

        break;
      case
4:
        ...

        break;
    }
  }


  $magic = new Magic;
  $magic->alakazam(4); // wat doet dit ooit?

}
?>


Versus

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

class Magic {

  // even te lui om hier constate te schrijven :p

  public function alakazam($mode = 0) {
    switch($magic) {
      case
Sience::COS:
        ...

        break;
      case
Sience::TAN:
        ...

        break;
      case
Sience::SIN:
        ...

        break;
      case
Sience::ACOS:
        ...

        break;
      case
Sience::ATAN:
        ...

        break;
      case
Sience::ASIN:
        ...

        break;
    }
  }


  $science = new Sience;
  $science->calculate(Science::TAN); // Ok, ik heb een idee wat dit doet.

}
?>


En dan zijn er nog use cases zoals versie nummers en codenames die gebruikt zouden kunnen worden om te bepalen of die versie van de software een feature wel ondersteund, of dat er een workaround voor een bug nodig is.

En bijvoorbeeld de constante Request::POST = 'POST', Request::GET = 'GET', Request::PUT = 'PUT', Request::UPDATE = 'UPDATE' wanneer je een om aan (new Request)->setMethod() mee te geven. Dan weet je al behoorlijk zeker dat methode Request::setMethod() die method ook echt ondersteund. Want als dat niet het geval is krijg je een melding dat die constante niet bestaat.
Gewijzigd op 14/10/2013 16:47:02 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

14/10/2013 16:49:59
Quote Anchor link
@NOLot: oké. Maar is dat de "vuistregel"? Dat je een constante gebruikt als je 'm van buiten de class wilt aanroepen?

@Dos: ah ja, die methode ken ik :)

Maar in general, gebruik je constanten alleen wanneer die van buitenaf moeten kunnen worden aangeroepen? Gebruik je een constante nooit enkel en alleen in de class zelf?
 
Dos Moonen

Dos Moonen

14/10/2013 18:19:23
Quote Anchor link
Dat komt inderdaad het meeste voor, ja. Maar het komt wel voor, http://kohanaframework.org/3.3/guide-api/Route is een voorbeeld. Route::REGEX_SEGMENT is nog te gebruiken (al is dat de default, dus ik zou niet weten waarom) bij het aanmaken van een route, maar de andere twee zal ik nooit nodig hebben.
 
Ozzie PHP

Ozzie PHP

14/10/2013 20:03:02
Quote Anchor link
Allright, thanks.
 



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.