[oop] autoloader inregelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in de regio van Bergen op Zoom ben je als PHP Developer niet alleen gefocust op het ontwikkelen van Software. Daarnaast ben je ook voortdurend bezig met het zoeken naar nieuwe mogelijkheden en innovaties die essentieel kunnen zijn voor de efficiëntie van software ontwikkeling. Je deelt veel kennis en informatie met het team en ontvangt deze dan ook graag terug. Techstack: PHP, Symfony & mySQL. Bedrijfsprofiel Deze uitdagende opdrachtgever is ruim 20 jaar actief in de regio Bergen op Zoom. Het vooruitstrevende team staat de hele dag voor je klaar om je te helpen en ondersteunen.

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Als Front-end developer bijdragen aan het onderwij

Functie Als front-end developer om je terecht in een team van goede en ervaren developers, en ga je werken aan de software die door miljoenen mensen gebruikt wordt. Je bent in staat om designs effectief te vertalen naar werkende feautures en hebt oog voor een goede UX van het product. Je staat voor clean code en goede documentatie. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit software en code. Je dagelijkse werk bestaat uit het werken aan componenten in de Storybook. Het verbeteren en refactoren van de huidige

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Modern, innovatief en Informeel bedrijf waar veel mogelijk is Werken met diverse robot merken Meehelpen met inbedrijfstellingen bij de klant De organisatie Hier ga je aan de slag Dit groeiende bedrijf van totaaloplossingen in de automatisering van productieprocessen, is hoofdzakelijk actief in de Benelux. Vanuit het kantoor in regio Amersfoort worden veel oplossingen geboden in de vorm van robotica. Geen project is hetzelfde wat garant staat voor bijzonder veel afwisseling. De bedrijfsgrootte is ongeveer 80 man. Van gerobotiseerde machinebeladingen tot aan assemblage automatiseringen wordt vanuit krachtige engineering maatwerk equipment geleverd.

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

Bekijk vacature »

Back end developer

Functie Jij als full stack ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor 90% van je tijd je bezig houden met het ontwikkelen van grote maatwerk applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. De technische uitdaging momenteel is dat

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 »
Ozzie PHP

Ozzie PHP

15/06/2014 15:45:03
Quote Anchor link
Ola,

Ik heb zelf een autoloader gemaakt waarbij ik de namespaces (uitsluitend) via de constructor doorgeef via een array:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$autoloader
= new Autoloader(['foo' => 'path/to/foo', 'bar' => 'path/to/bar']);
$autoloader->register();
?>

Nu zag ik dat de Composer autoloader van Symfony het anders doet, ongeveer zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$autoloader
= new Composer();
$autoloader->add('foo', 'path/to/foo');
$autoloader->add('bar', 'path/to/bar');
$autoloader->register();
?>

Nu vraag ik me af wat daar het voordeel eigenlijk van is (als er dat is). Of maakt het niks uit?
 
PHP hulp

PHP hulp

07/05/2024 08:03:37
 
NOLot -

NOLot -

15/06/2014 17:25:48
Quote Anchor link
Wat denk/vind je zelf?
 
Ozzie PHP

Ozzie PHP

15/06/2014 17:28:24
Quote Anchor link
@NOLot:

Ik stel een vraag... als ik het antwoord wist zou ik de vraag niet stellen...
 
Wouter J

Wouter J

15/06/2014 18:37:10
Quote Anchor link
Na het registeren zou je best nog een klasse kunnen aanpassen door er namespaces aan toe te voegen.
 
Ozzie PHP

Ozzie PHP

15/06/2014 22:15:51
Quote Anchor link
Oké... dat stukje begrijp ik. Van de andere kant....

Op het moment dat je de autoloader aanmaakt en je hebt geen namespaces ingesteld, is er dan wel sprake van een valid object? Je kunt de autoloader registeren, maar er zitten dan geen namespaces in... Vandaar eigenlijk mijn vraag. Is een "lege" autoloader dan toch een valid object omdat je er via de add functie nog namespaces aan kunt toevoegen?? Moet ik dat zo zien?

En nog 2 andere vragen waar je me wellicht bij kunt helpen.

1) De composer autoloader heeft een add method. Vind jij die naam (vanuit jouw persoonlijke voorkeur) goed? Of had je liever addNamespace() als naam gehad?

2) Weet je toevallig of er een reden is waarom bij Composer zo'n add method 2 parameters heeft (een namespace en een path) en waarom ze niet één array als parameter kiezen waardoor je in 1 keer meerdere namespaces kunt meegeven? Dus waarom zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$autoloader
->add('foo', 'path/to/foo');
$autoloader->add('bar', 'path/to/bar');
?>

en niet zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$autoloader
->add(['foo' => 'path/to/foo', 'bar' => 'path/to/bar'];
?>

Is dat ook weer een kwestie van persoonlijke voorkeur, of zit daar nog een bepaalde beweegreden achter?
 
Ward van der Put
Moderator

Ward van der Put

16/06/2014 08:51:33
Quote Anchor link
De beweegreden is misschien dat de tweede parameter paths van add() ook een array kan zijn:

public add(string $prefix, array|string $paths, bool $prepend = false)

Voor uitgebreidere mapping met een array kun je de methode addClassMap() gebruiken met $classMap voor een "class to filename map":

public addClassMap(array $classMap)
 
Ozzie PHP

Ozzie PHP

16/06/2014 11:25:10
Quote Anchor link
Thanks voor je uitleg Ward. Zover was ik nog niet gekomen. Wat vreemd trouwens dat je via de add functie kunt prependen, vind je niet? Je zou toch verwachten dat je die beslisssing pas kunt maken op het moment dat je de autoloader registreert? Of is dit geen prepend van de autoloader-stack, maar een prepend van de namespace zelf binnen de autoloader? Dus stel je hebt namespace 1) foo en 2) bar. En dat je dan foobar toevoegt, en als je die dan prependt, dat het dan 1) foobar, 2) foo en 3) bar wordt. Zou dat het zijn? Als ik de uitleg lees dan lijkt het daar wel op.

Wat vind jij trouwens in dit verband van de method-naam "add"? VInd jij dat duidelijk? Of vind jij dat het addNamespace of iets dergelijks zou moeten zijn?
 
Ward van der Put
Moderator

Ward van der Put

16/06/2014 11:35:58
Quote Anchor link
Het is ook geen autoloader, maar een class loader. Het geheel wordt pas een autoloader als je het registreert.

Die $prepend hoort er eigenlijk wel in ja, anders ondersteun je de PHP-autoloading niet volledig.

>> Wat vind jij trouwens in dit verband van de method-naam "add"?

Aangezien er hier verschillende betekenissen zijn van "to add", zou ik die add() inderdaad anders noemen. Hetzelfde geldt voor set(), want wat betekent "to set"? Je kunt van alles "instellen", dus wees dan liever concreter.

Je moet daarvoor nu naar de signature van de methode kijken. De een vindt dat afdoende, de ander niet:

public set(string $prefix, array|string $paths)
 
Ozzie PHP

Ozzie PHP

16/06/2014 12:02:01
Quote Anchor link
>> Het is ook geen autoloader, maar een class loader. Het geheel wordt pas een autoloader als je het registreert.

Wat is volgens jou het verschil dan tussen een autoloader en class loader?

Het is toch een autoloader, alleen om 'm te activeren moet je 'm nog even registreren. Toch?
 
Ward van der Put
Moderator

Ward van der Put

16/06/2014 12:24:18
Quote Anchor link
Een autoloader laadt niet-geladen klassen automatisch. Dus ja, van een class loader die weet waar bepaalde klassen vandaan te laden zijn, kun je een autoloader maken door deze te registreren.

Eenvoudige oplossingen zonder autoloader gebruiken bijvoorbeeld wel eens een class loader die wordt getriggerd via class_exists(), function_exists() of defined().

Ik denk zelf dat je een autoloader pas een volwaardige autoloader mag noemen als die de autoloading-functionaliteit van PHP zelf gebruikt. Los je het op een andere manier op, dan is het eerder een class loader of een bootstrap.
 
Ozzie PHP

Ozzie PHP

16/06/2014 13:00:05
Quote Anchor link
Ah, op die fiets. Ik snap 'm :)
 
NOLot -

NOLot -

16/06/2014 14:59:08
Quote Anchor link
Ozzie PHP op 15/06/2014 17:28:24:
@NOLot:

Ik stel een vraag... als ik het antwoord wist zou ik de vraag niet stellen...


Dat is nog geen antwoord op mijn vraag. Een eigen mening vormen is helemaal niet slecht. Je loopt echt veel te veel na te denken over dingen, en aan de vragen die je af en toe stelt vraag ik me af of je die tijd niet beter kunt besteden aan het opdoen van ervaring (daadwerkelijk programmeren).

Just my 2 cents...
 
Ozzie PHP

Ozzie PHP

16/06/2014 17:16:19
Quote Anchor link
Oh 2 cents mag je altijd hebben... ik ben alleen tot de conclusie gekomen dat het soms slimmer is om eerst over een juiste aanpak na te denken en daarna pas te gaan programmeren, in plaats van andersom (hoe verleidelijk dat laatste ook is).
 
NOLot -

NOLot -

16/06/2014 20:05:22
Quote Anchor link
Ozzie PHP op 16/06/2014 17:16:19:
Oh 2 cents mag je altijd hebben... ik ben alleen tot de conclusie gekomen dat het soms slimmer is om eerst over een juiste aanpak na te denken en daarna pas te gaan programmeren, in plaats van andersom (hoe verleidelijk dat laatste ook is).


True op het moment dat je al veel kennis hebt is het uitdenken van te voren de logische stap. Ik denk echter dat jij nog lang niet op dat niveau zit, en je veel meer profijt hebt van daadwerkelijk programmeren. Maarja het feit dat je al twee jaar lang dezelfde vragen stelt zegt eigenlijk al meer dan genoeg. Just my 2 cents again...
 



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.