class zonder public method?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

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 »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

No-Code Betty Blocks ontwikkelaar

Bedrijfsomschrijving Wil jij de bedrijfsprocessen van klanten revolutionair digitaliseren en optimaliseren zonder beperkt te worden door programmeertalen? Kom werken bij een snelgroeiende en professionele organisatie met een gezonde dosis humor en veel vrijheid om jezelf te ontwikkelen. Als No-Code Betty Blocks ontwikkelaar werk je vanuit ons kantoor in het hart van Nederland, je thuiswerkplek of op locatie bij de klant. We faciliteren de juiste trainingen en ondersteuning zodat je een echte Betty Blocks expert wordt. Naast het werk zijn er bij ons bijzondere events, zoals een jaarlijkse zeildag, een zomerse barbecue en een knus kerstdiner om de grillige maanden door

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

11/11/2013 11:33:11
Quote Anchor link
Ola peepz,

Ik heb een autoload functie in een class staan. Nu heb ik in die class ook een register method staan die die de autoload functie, jawel... registreert :)

In mijn code hoef ik dan alleen dit te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$autoloader
= new Autoloader();
$autoloader->register();
?>

Een tijdje terug hadden we het in een ander topic over het constructen van classes en wanneer je dat doet. Ward gaf toen aan dat als je een class hebt waarbij je altijd dit doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$foo
= new Foo();
$foo->doFoo();
?>

Dat je dan net zo goed doFoo() vanuit de constructor kunt laten uitvoeren.

Bij mijn autoloader class heb je nu zo'n zelfde situatie. De enige method die je kunt aanroepen is register. Dus het enige wat je met die class kunt doen is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$autoloader
= new Autoloader();
$autoloader->register();
?>

Nu vraag ik me dus af of ik dan niet beter de register method vanuit de constructor kan triggeren. Als ik dan de autoloader wil registreren, dan hoef ik alleen nog maar dit te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
new Autoloader();
?>

Op zich wel lekker kort, maar is dit gebruikelijk? In principe zie je nu in de code niet wat er gebeurt, maar dat zou je met commentaar kunnen ondervangen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// Register the autoload method.
new Autoloader();
?>

Graag jullie reactie.
 
PHP hulp

PHP hulp

24/11/2024 01:33:45
 
Pieter Jansen

Pieter Jansen

11/11/2013 11:36:09
Quote Anchor link
Hmm goede vraag, over het algemeen wil je alles zo succint mogelijk hebben, dat betekent dat methodes en constructors datgene doen wat ze te horen doen. Als je deze regels na leeft, betekent dat je zelf de register() methode zult moeten aanroepen.
 
Ozzie PHP

Ozzie PHP

11/11/2013 11:45:17
Quote Anchor link
>> over het algemeen wil je alles zo succint mogelijk hebben

Suc-wat?

De vraag is dus inderdaad of je zelf die methode moet willen aanroepen. Je zou ook kunnen zeggen dat de class niet werkt zonder dat die method is aangeroepen, en dat je 'm daarom dus vanuit de constructor aanroept. Daarnaast wil je ook niet dat de register method meer dan 1x wordt aangeroepen. Dus ook dat zou een goede reden kunnen zijn om de constructor te gebruiken. Maar goed, ik weet dus niet of zoiets gebruikelijk is.

Laat ik er nog eens een ander voorbeeld bij geven:

Stel we hebben een class die iets configureert. Dat configureren moet eenmalig gebeuren.

Je zou dan dit kunnen doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$fc
= new fooConfigurator($foo_data);
$fc->configure();
$new_foo = $fc->get();
?>

Echter, je zou ook het configureren vanuit de constructor kunnen triggeren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$fc
= new fooConfigurator($foo_data);
$new_foo = $fc->get();
?>

In het 1e voorbeeld zie je in de code wat er gebeurt. Echter, het enige wat ik van die class wil, is de geconfigureerde gegevens terugkrijgen. Dus het enige wat je eigenlijk aan die class wil vragen, is "geef mij de geconfigureerde gegevens". En als je het zo bekijkt, waarom zou je dan een public configure() method willen hebben?
 
Erwin H

Erwin H

11/11/2013 12:05:01
Quote Anchor link
Succint is Engels voor kort/bondig. Opvallend overigens wel dat succint wordt gebruikt om uit te leggen dat je het dus juist niet kort en bondig moet gaan doen....
Hoe dan ook, volgens mij is het gewoon weer zo'n 'wat heb je liever' vraag. Beide kan, verschil is minimaal en beide zijn duidelijk. Kies dus gewoon zelf en verdoe er niet veel meer tijd aan. Een 'absoluut' antwoord is er toch niet op te geven.
 
Ozzie PHP

Ozzie PHP

11/11/2013 12:10:15
Quote Anchor link
Allright, thanks Erwin. Ik dacht dat het misschien een rare constructie is om een soort "zelfregulerende" class te maken waar je geen variabele aan toekent en waarvan je geen enkele method aanroept. Maar als dat gewoon oké is, dan doet we dat gewoon! :)
 
Pieter Jansen

Pieter Jansen

11/11/2013 12:13:39
Quote Anchor link
Waarschijnlijk heb je gelijk, het is waarschijnlijk een kwestie van smaak. Overigens, wat ik bedoelde met succint is dat je methodes en dus ook constructors zo succint mogelijk moeten zijn. Dat wil zo veel betekenen als dat een methode/constructor alleen datgene hoort te doen wat het aangeeft/claimt te horen doen.

Even breder trekken, als het enige wat jou autoloader doet is register() en je hebt een kale constructor, waarom zou je dat in een aparte methode zetten?
 
Ozzie PHP

Ozzie PHP

11/11/2013 12:19:56
Quote Anchor link
>> Even breder trekken, als het enige wat jou autoloader doet is register() en je hebt een kale constructor, waarom zou je dat in een aparte methode zetten?

Waarom zou je wat in een aparte methode zetten? Je bedoelt de register functie?
 
Ward van der Put
Moderator

Ward van der Put

11/11/2013 12:44:08
Quote Anchor link
Succinct met een c...

Kun je na $foo = new Foo() helemaal niets zonder $foo->doFoo()? Dan hoort de aanroep van Foo::doFoo() volgens mij inderdaad in de constructor. Het draait erom dat de constructor een bruikbaar object oplevert; lukt dat nooit zonder een of meer methoden, dan roep je die in de constructor aan. Je mag hier dus ook een fout verwachten: "Ik kan zonder succesvolle Foo::doFoo() onmogelijk een object van de klasse Foo maken."

Overigens kunnen die vereiste methoden dan zowel public als private zijn. Die keuze staat daar eigenlijk los van.
 
Ozzie PHP

Ozzie PHP

11/11/2013 13:10:43
Quote Anchor link
Oké. In het geval van mijn autloader class wordt het dan dus simpelweg:

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

// Register autoloader.

new Autoloader;

// code
?>
 
Ward van der Put
Moderator

Ward van der Put

11/11/2013 13:18:55
Quote Anchor link
Ja, aangezien je niets kunt met een autoloader die niet is geregistreerd, kun je in de constructor met $this->register() een private function register() aanroepen.

Het draait er, meer in het algemeen, om dat je niet "een PHP-object" krijgt, maar "een geldig Foo-object". Na bijvoorbeeld $db = new mysqli() verwacht je ook niet zomaar "een PHP-object", maar een MySQLi-object.

Zomaar "een PHP-object" maken kan namelijk ook zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Dit is een geldig PHP-object:
$foo = (object) null;

// En ook dit is een geldig PHP-object:
$bar = new stdClass();

// Kijk maar, twee instanties #1 en #2:
echo '<pre>';
var_dump($foo);
var_dump($bar);
?>
Gewijzigd op 11/11/2013 13:19:27 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

11/11/2013 13:21:19
Quote Anchor link
yesss... ik snap wat je bedoelt Ward!

>> kun je in de constructor met $this->register() een private function register() aanroepen.

Precies hoe ik het in gedachten had!
 
Wouter J

Wouter J

11/11/2013 13:28:08
Quote Anchor link
Merk op dat de autoloader wel meer methods moet hebben dan alleen register. Je moet kunnen aangeven waar een namespace gevonden kan worden in de directory structure
 
Ozzie PHP

Ozzie PHP

11/11/2013 13:32:06
Quote Anchor link
>> Je moet kunnen aangeven waar een namespace gevonden kan worden in de directory structure

Dat kan in sommige gevallen nodig zijn, maar in dit geval is het niet nodig.
 
Dos Moonen

Dos Moonen

11/11/2013 14:07:49
Quote Anchor link
Ozzie PHP op 11/11/2013 13:32:06:
>> Je moet kunnen aangeven waar een namespace gevonden kan worden in de directory structure

Dat kan in sommige gevallen nodig zijn, maar in dit geval is het niet nodig.


Wat is dan je reden om een object aan te maken?
Als je alles gaat hardcoden zou je ook een functie/static method/lambda kunnen registreren als autoloader. Daar zal maar een instantie van zijn. Waarom je meerdere instanties van een Autoloader object waar je niets aan kan instellen zou willen kunnen hebben snap ik niet.
Alles in een class stoppen puur omdat het kan is in elk geval geen goede reden.
Als ik alleen 'new Autoloader();' in een code base zie staan is het mij niet meteen duidelijk of dit correct is. Ik weet niet wat er in de constructor gebeurd zonder het op te zoeken, wat mijn IDE makkelijk maakt ALS de constructor/classe gedocumenteerd is met phpdoc blocks.
Het gebruik van een methode als 'Autoloader::register( [$autoloader = NULL] )' zou een stuk duidelijker zijn.

Ik ben het trouwens niet eens dat register() in dit geval deel moet zijn van de constructor. Als voorbeeld:
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

    // https://gist.github.com/jwage/221634
    include 'SplClassLoader.php';

    $classLoader = new SPLClassLoader();

    // doet het prima, het hoeft niet geregistreerd te staan als autoloader om te werken
    $classLoader->loadClass('Meow');

    // laten we $classLoader als nog maar eens registreren als autoloader
    $classLoader->register();
?>


De class hoort het niet uit te maken of het als autoloader geregistreerd staat of niet. De class moet doen wat er van de class gevraagd wordt, of ik het nou vraag, of PHP's core maakt niet uit.
Gewijzigd op 11/11/2013 14:12:52 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

11/11/2013 14:13:32
Quote Anchor link
@Dos: het is de autoloader voor m'n eigen framework. Die hoeft in dit geval niet flexibel te zijn. Maar je hebt gelijk dat er situaties zijn waarin dat zeker wel wenselijk is.

Merk overigens op dat ik het over een Autoloader heb en niet over een class loader. Ik heb geen public loadClass() method nodig.
Gewijzigd op 11/11/2013 14:17:13 door Ozzie PHP
 
Dos Moonen

Dos Moonen

11/11/2013 14:32:52
Quote Anchor link
Ozzie PHP op 11/11/2013 14:13:32:
het is de autoloader voor m'n eigen framework. Die hoeft in dit geval niet flexibel te zijn.

En wat zijn je redenen om een Autoloader object te creëren in plaats van een functie/static method aan te roepen?

Mijn mening is dat als zoiets als dit nooit hoort tegen te komen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// code...

// Register autoloader.

new Autoloader;

// code
?>


Het is te magisch.
Gewijzigd op 11/11/2013 14:33:10 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

11/11/2013 14:36:40
Quote Anchor link
Wat bedoel je met "te magisch"? Je vindt het te onduidelijk wat er gebeurt ofzo?
 
Ward van der Put
Moderator

Ward van der Put

11/11/2013 14:42:58
Quote Anchor link
Ozzie PHP op 11/11/2013 14:13:32:
@Dos: het is de autoloader voor m'n eigen framework. Die hoeft in dit geval niet flexibel te zijn. Maar je hebt gelijk dat er situaties zijn waarin dat zeker wel wenselijk is.

Merk overigens op dat ik het over een Autoloader heb en niet over een class loader. Ik heb geen public loadClass() method nodig.
Dan nog heeft Dos inderdaad een punt, meerdere zelfs.

Voor de performance zou ik van een autoloader die één keer wordt geladen en daarna alle class loading voor één namespace (je framework) regelt in jouw geval geen klasse maken. Dan zou ik het in drie stappen anders doen:

• registreer rechtstreeks één autoload-functie (in plaats van een klasse);

• laat die autoload-functie relatieve in absolute paden omzetten (meetbaar sneller);

• prepend de autoload-functie (zodat deze als eerste aan de beurt is en niet — je zal ze ertussen hebben zitten — een autoloader die een directoryscan gebruikt).
 
Ozzie PHP

Ozzie PHP

11/11/2013 14:48:45
Quote Anchor link
>> registreer rechtstreeks één autoload-functie (in plaats van een klasse);

Maar waar laat je die dan? Zet je die functie in je bootstrap?

>> laat die autoload-functie relatieve in absolute paden omzetten (meetbaar sneller);

Hij gebruikt nu al absolute paden.

>> prepend de autoload-functie (zodat deze als eerste aan de beurt is en niet — je zal ze ertussen hebben zitten — een autoloader die een directoryscan gebruikt).

Wat bedoel je precies met prepend? Ik heb maar 1 autoloader.

Maar waarom niet in een class? Dat zal qua performance toch niks uitmaken?
 
Dos Moonen

Dos Moonen

11/11/2013 14:49:48
Quote Anchor link
Ozzie PHP op 11/11/2013 14:36:40:
Wat bedoel je met "te magisch"? Je vindt het te onduidelijk wat er gebeurt ofzo?

Ja. Je creëert een Autoloader instantie en je doet er vervolgens niets mee. Maar op magische wijzigen gaat een ander deel van je codebase daardoor blijkbaar werken.

Mijn eerste gedachte zal zijn "Oh, die instantie zal nooit gebruikt worden. Dan hoef ik dat object ook nooit aan te maken."
Het mag voor jou dan duidelijk zijn, maar het is geen goede gewoonte om aan te leren. Begin er dus a.u.b. ook niet aan.
Gewijzigd op 11/11/2013 14:51:27 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

11/11/2013 14:57:27
Quote Anchor link
>> Het mag voor jou dan duidelijk zijn, maar het is geen goede gewoonte om aan te leren. Begin er dus a.u.b. ook niet aan.

Oké, maar dat was dus ook precies mijn vraag.

Eerder had ik met Ward een discussie of je een method die altijd moet worden aangeroepen wel of niet in de constructor moet stoppen. De conclusie was toen, zie ook hierboven, dat als iets altijd moet gebeuren, dat je dat door de constructor moet laten doen.

Stel je hebt een class die gegevens moet configureren, even weer het voorbeeld van hierboven, dan kun je dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$fc
= new fooConfigurator($foo_data);
$fc->configure();
$new_foo = $fc->get();
?>

of dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$fc
= new fooConfigurator($foo_data);
$new_foo = $fc->get();
?>

In dit laatste voorbeeld zal de constructor intern de configure() method aanroepen. Op zich is dat niet heel vreemd. Het enige wat jij als gebruiker kunt doen, is de data terug ophalen. Dus... je stopt iets in de configurator new fooConfigurator($foo_data) en vervologens haal je het er weer uit $new_foo = $fc->get(). Het zou dan toch eigenlijk ook onzinnig zijn om handmatig de configure() method nog eens aan te roepen?
 

Pagina: 1 2 3 volgende »



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.