Autoloading, hoe hoort het?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Productontwikkelaar Food

Wat ga je doen Als Productontwikkelaar Food ga je nieuwe producten ontwikkelen en bestaande producten verbeteren. Je bent hierbij betrokken bij het gehele proces: van productconcept naar proefreceptuur, het realiseren va het product (op kleine schaal) en het testen van producten in een productieomgeving. Verder: Bewaak je de status van verschillende fases van productontwikkeling en lever je tijdig de benodigde data aan Ben je bezig met de optimalisatie van oude en nieuwe recepturen Begeleid of organiseer je proefsessies (sensorisch onderzoek) in het team en/of bij klanten Onderhoud je contacten met de klanten, leveranciers van grondstoffen e.a. externe partijen Houd je

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

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 »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

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 »

.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. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

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 »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

NodeJS developer

Functie Als Fullstack developer kom je te werken in het ontwikkelteam. Je bent samen met je collega’s continu bezig om de software uit te breiden, maar hiernaast doe je onderzoek naar de inzet van nieuwe technieken, tools of bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Qua technische kennis zoeken ze iemand die goed op de hoogte is van de nieuwste ontwikkelingen, daar zij nu ontwikkelen op NodeJs back-end,

Bekijk vacature »
Pieter Jansen

Pieter Jansen

28/01/2012 11:42:08
Quote Anchor link
Beste leden,

Graag wil ik wat meer informatie over de correcte manier van autoload. Ik gebruik vaak de __autoload() methodes om dingen te includen maar zoals sommigen hier wellicht weten is dat eigenlijk niet de correcte manier om classes en interfaces te autoloaden. Het is een last resort middel, dus wanneer al het andere gefaald heeft, wordt de __autoload() nog aangeroepen. Ik ben er op gaan vertrouwen, iets wat eigenlijk erg slecht is. Ik zit er dan ook aan te denken om terug te gaan naar een simpele config waar ik gewoon alle bestanden ga includen. Maar dan denk ik toch: wat zonde van al die resources als ik ze niet allemaal nodig heb..

Nu weet ik dat je met php 5.3 de namespaces kunt gebruiken op zo`n manier dat je ze aan de hand van de namespace kunt autoloaden. Vergelijkbaar met elke willekeurige echte OO taal zoals C# of Java. Uiteraard werkt PHP weer eens heel anders en zitten er addertjes onder het gras. Vandaar dat ik nieuwsgierig ben naar wat de juiste manier is om te autoloaden. Ik ga liever niet voor elke class een mapje maken, al groepeer ik vaak bepaalde classes wel.

Ik heb al gegoogled op het correcte gebruik maar gezien de datering van de meeste artikelen vertrouw ik daar ook niet op.

Waar ik voornamelijk naar kijk is de spl_autoload_extension('.php'); en de spl_autoload_register();

Wie o wie kan mij hier mee helpen?
 
PHP hulp

PHP hulp

24/11/2024 00:48:01
 
Wouter J

Wouter J

28/01/2012 12:19:14
Quote Anchor link
Ik gebruik wel altijd de __autoload functie. Dat het het laatste redmiddel is vind ik een beetje vreemd. Het werkt goed en is naar mijn mening ook kloppend, nu ben ik niet heel lang bezig met OO scripten dus kan hier fout zitten.

De structuur om voor elke class een map aan te maken vind ik zelf wel heel handig en lijkt me het ook best. Zo hou je alles goed overzichtelijk.

Voorbeeldje:
WJ_Log_File
verwijst naar:
/lib/log/file/file.php
En WJ_Log verwijst naar
/lib/log/log.php

Dit is heel mooi en simpel te maken met __autoload.
 
Pieter Jansen

Pieter Jansen

28/01/2012 12:43:09
Quote Anchor link
Wouter, ja het werkt inderdaad goed, ik gebruik het zelf ook vaak, maar het is niet de "correcte" manier om te gebruiken. En de structuur om voor elke class een map aan te maken, daar ben ik op tegen. Het is niet nodig, vaak kun je classes prima groeperen binnen een goed georganiseerde mappen structuur. Zo heb ik de meest gebruike REQUEST classes zoals de GET, de POST, de SESSION en de HTTP classes allemaal onder de noemer voor request.

/Request/Get.php
/Request/Post.php
/Request/Session.php
/Request/HTTP.php

Dat werkt prima voor mij, bovendien hou ik de structuur overzichtelijk. Als ik snel een bestand wil inzien hoef ik niet 4 mappen door om vervolgens bij m`n bestand te komen.

Jou naamgeving doet vermoeden dat je de ZEND structuur vast houdt, klopt dit? Los daarvan, ik hanteer zelf niet de Zend standaard, beetje paradoxiaal op sommige punten, waaronder de naamgeving. Voor de rest een prima standaard maar de _ in de naamgeving van classes is tegenstrijdig. Bovendien heeft PHP namespaces inmiddels wat een oplossing is op de naamgevingsproblemen. Doet Zend daar trouwens wat mee?

Afijn, zoals ik al zei, de __autoload() is een bindmiddel, een lapmiddel maar wel eentje die goed werkt, getuige ons gebruik ervan :) Punt is alleen dat het niet de correcte manier is om het op te lossen. Het hoort op een andere manier te kunnen, sterker, als je op een windows server zit, kun je de namespace gebruiken als pad.

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

namespace \Library\Request
{
     class Post
    {
        public function __construct(){}
    }
}

?>


kan in principe direct geinstantieerd worden d.m.v. het use keyword.

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

use Library\Request as LR;

$post = new Lr\Post();

?>
 
Pim -

Pim -

29/01/2012 13:17:36
Quote Anchor link
Mijn visie op correcte autoloading is dat je ofwel psr-0 (namespaces) of zend (underscore) gebruikt en dan een standaard autoloader gebruikt om je bestanden te laden, zoals die van symfony of zend.
 
Pieter Jansen

Pieter Jansen

29/01/2012 16:17:33
Quote Anchor link
Pim, zou je wat meer informatie kunnen verschaffen over beide methodes? Ik heb hierboven de namespace methode al aangereikt maar zal niet werken op linux machines, of eigenlijk werkt het alleen op windows machines. De Zend methode is weer anders, maar de autoloader class, daar ben ik dan wel weer nieuwsgierig naar.
 
Pim -

Pim -

30/01/2012 00:46:29
 
Pieter Jansen

Pieter Jansen

30/01/2012 01:00:05
Quote Anchor link
Dank je, ik zal ze alle drie eens bekijken. Wat heb je zelf als voorkeur?
 
Pim -

Pim -

30/01/2012 02:29:29
Quote Anchor link
Symfony boven Zend, maar dat is vrij persoonlijk.

Toevoeging op 30/01/2012 02:30:32:

Even als aanvulling: de eerste twee links zijn classloaders, dus stukken code die de autoloading uitvoeren. De derde is een standaard die richtlijnen geeft voor naamgeving van klassen en locatie van de bestanden.
 



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.