[composer]autoloading psr-4

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

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 »

Technical Asset Specialist Substations

TenneT is growing fast to realize its strategic ambitions. We play a leading role in driving the energy transition. We are looking for a passionate Technical Asset Specialist for substations (onshore and offshore) at our location in Arnhem who will contribute to this and that might be you? Your contribution to TenneT We are searching for a motivated and engaged colleague as a technical asset specialist (onshore and offshore) for instrument transformers and surge arresters, with preferably a strong background in the area of insulation coordination. As a specialist for insulation coordination you are responsible for overarching topics regarding insultation

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar 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 Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

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 Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

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 »

Back-end ontwikkelaar

Functie omschrijving Wil jij meebouwen aan diverse databasesystemen in een klein bedrijf met een platte organisatie? In een team van ruim 10 ontwikkelaars wordt er aan diverse ICT oplossingen gewerkt. Jouw taken hierbij zullen bestaan uit: Het onderhouden en door-ontwikkelen van bestaande databases. Denk hierbij aan schema verbeteringen en performance-tuning. Bij nieuwe ontwikkelingen ga jij ook bezig met het bouwen van het databaseschema. Omdat je in een klein team werkt zal je ook de C# routine verder uitbouwen en ontwikkelen. Ook kan je meedraaien in algemene refactory-, ontwikkel- of testwerkzaamheden. Je zal voornamelijk gebruik maken van de volgende technieken: .NET

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

Bekijk vacature »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een erkende werkgever in de regio van Goes zijn wij op zoek naar een enthousiaste software programmeur met PHP/Symfony ervaring. Een gedreven persoon die het development team komt versterken met het aanpakken van complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel professionele als persoonlijke groei? Lees dan snel verder! Dit ga je doen: Beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Testen en door ontwikkelen van software; Ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

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 »

Pagina: 1 2 volgende »

Reshad F

Reshad F

26/06/2014 14:19:35
Quote Anchor link
Hallo,

Ik probeer eigen classes d.m.v. composer te autoloaden. Hiervoor heb ik een directory genaamd app/custom/myclass.php in de class heb ik de volgende namespace

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


Nu heb ik in de composer.json het volgende

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    "autoload": {
        "psr-4": {
            "custom\\": "app/"
        }
    }


wanneer ik een composer.update uitvoer krijg ik helaas de melding dat de class niet bestaat. Wat doe ik hier fout?
 
PHP hulp

PHP hulp

14/05/2024 16:26:26
 
Ozzie PHP

Ozzie PHP

26/06/2014 14:21:28
Quote Anchor link
app/ moet zijn app/custom ??
 
Reshad F

Reshad F

26/06/2014 14:24:51
Quote Anchor link
@Ozzie nee helaas werkt dat ook niet. Volgens de composer manual kom ik er ook niet helemaal uit.. de custom is in dit geval volgens de handleiding al de directory waarnaar gezocht moet worden en deze bevind zich in app/ als ik het goed begrepen heb.
 
Ozzie PHP

Ozzie PHP

26/06/2014 14:28:40
Quote Anchor link
Ik werk niet met Composer dus hoe het exact werkt weet ik niet.

Probeer eens het hardcoded path in te geven vanaf de root, dus "path/to/app". En als dat niet werkt, kijk dan even in je error log. Als he goed is zou je daaruit moeten kunnen afleiden welk path er gebruikt wordt en dan kun je waarschijnlijk zien waar het misgaat.
 
Reshad F

Reshad F

26/06/2014 14:34:43
Quote Anchor link
De app/ zit al in de root dir. verder zit er niets anders in app/ dan die custom directory. Verder wordt ik ook van de error log niks wijzer.. daar krijg ik namelijk exact dezelfde error..
 
Ozzie PHP

Ozzie PHP

26/06/2014 14:35:14
Quote Anchor link
>> daar krijg ik namelijk exact dezelfde error

en die luidt?
 
Reshad F

Reshad F

26/06/2014 14:38:50
Quote Anchor link
Fatal error: Class 'app\custom\JsonFetcher' not found in /Users/username/Sites/demo/config/config.php on line 15

Daar wordt dus aangeroepen..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$app
['JsonFetcher'] = $app->share(function($app) {
    return new app\custom\JsonFetcher($app);
});

?>
 
Tim S

Tim S

26/06/2014 14:42:12
Quote Anchor link
path moet zo zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    "autoload": {
        "psr-4": {
            "custom\\": "app/custom"
        }
    }


en daarna moet je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
composer dump-autoload

uitvoeren, update is voor je packages bij te werken.


Ik zie nu dat je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
return new app\custom\JsonFetcher($app);

gebruikt, maar je definieerd je namespace als "custom" en niet "app\custom".
daarom moet je "app" weglaten uit je namespace, of toevoegen in je autoload statement in je composer file.
Gewijzigd op 26/06/2014 14:45:44 door Tim S
 
Reshad F

Reshad F

26/06/2014 14:55:17
Quote Anchor link
@Tim bedankt het werkt nu :) de edit kwam ik zelf ook al achter tijdens het veranderen.
 
Wouter J

Wouter J

26/06/2014 18:54:45
Quote Anchor link
Dit is dus juist geen PSR-4. In PSR-4 zet je je namespace niet meer in je mappen structuur. Dus al die mappen die alleen andere mappen bevatten (zoals app in dit geval) moeten weg. Dus de klassen van custom moeten direct in app/ en custom/ moet weg. Dan voer je in dat de custom namespace zich in de app map bevindt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
{
    "autoload": {
        "psr-4": {"custom\\": "app/"}
    }
}
 
Ozzie PHP

Ozzie PHP

26/06/2014 23:00:17
Quote Anchor link
Kan het niet zo zijn dat Reshad juist bewust onderscheid wil maken tussen z'n eigen "custom" classes, en tussen 3rd party libraries?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
app
   /custom
   /mail_lib
   /pdf_lib
 
Reshad F

Reshad F

26/06/2014 23:38:06
Quote Anchor link
Wouter dat had ik dus, maar dat werkte niet.. Hoe ziet mijn namespace etc er dan uit in dat geval?
 
Ozzie PHP

Ozzie PHP

27/06/2014 00:18:25
Quote Anchor link
Zoals in je 1e voorbeeld volgens mij en dan hier:

return new app\custom\JsonFetcher($app);

het begin "app\" weghalen.

Maar let wel, de class JsonFetcher moet dan dus direct in de map app worden geplaatst:

app/JsonFetcher.php
 
Tim S

Tim S

27/06/2014 00:34:07
Quote Anchor link
Je moet het zo zien... stel je wilt een namespace "Reshad\CustomPackage" gebruiken, dan kun je met psr-4 zorgen dat je die prefix vanuit welke map dan ook kunt gebruiken.
dus stel dit is je mappen-structuur:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
`-- app
|   `-- controller
|   |-- views
|-- CustomPackage
|   `-- src
|   |   `-- JsonFetcher.php
|   |-- tests
|   |   `-- JsonFetcherTest.php


En dit je classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php namespace Reshad\CustomPackage;

class JsonFetcher {} ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php namespace Reshad\CustomPackage;

class JsonFetcherTest {} ?>


dan zou je die zo kunnen autoloaden met psr-4:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    "autoload": {
        "psr-4": {
            "Reshad\CustomPackage\\": "Custompackage/src",
            "Reshad\CustomPackage\\": "Custompackage/tests"
        }
    }
Gewijzigd op 27/06/2014 00:37:16 door Tim S
 
Reshad F

Reshad F

27/06/2014 00:34:11
Quote Anchor link
@ozzie maar dan kan ik dus niet ordenen? of krijgt elke category zijn eigen folder in de root dir?

Toevoeging op 27/06/2014 00:37:12:

@Tim stel ik zet de JSonFetcher dus direct in de app folder wat wordt daar dan de namespace? en de autoloader?
 
Ozzie PHP

Ozzie PHP

27/06/2014 00:39:39
Quote Anchor link
>> @ozzie maar dan kan ik dus niet ordenen?

Wat bedoel je met "ordenen"?

Tim S op 27/06/2014 00:34:07:
dan zou je die zo kunnen autoloaden met psr-4:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    "autoload": {
        "psr-4": {
            "Reshad\CustomPackage\\": "Custompackage/src",
            "Reshad\CustomPackage\\": "Custompackage/tests"
        }
    }

Lijkt me niet echt efficiënt om dezelfde namespace naar 2 verschillende mappen te laten verwijzen eerlijk gezegd.

Toevoeging op 27/06/2014 00:40:59:

Reshad, ik zou eerst een directorystructuur maken, die jij zelf prettig en overzichtelijk vindt. Daarna zou ik me gaan bezighouden met het autoloaden. Je bent vrij om het te doen zoals je het zelf fijn vindt.
 
Tim S

Tim S

27/06/2014 00:43:40
Quote Anchor link
Ozzie PHP op 27/06/2014 00:39:39:
Lijkt me niet echt efficiënt om dezelfde namespace naar 2 verschillende mappen te laten verwijzen eerlijk gezegd.

Dit is juist de kracht van psr-4, zodat je je mappen kan indelen zoals je wilt.
Zonder dat je je hoeft te houden aan een bepaalde mappen stuctuur.
Anders kun je net zo goed psr-0 gebruiken.

---------


Ik ga er even vanuit dat je het zo wilt dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
`-- app
|   `-- JsonFetcher.php


Het maakt eigenlijk niet uit wat je namespace is, als je het ook maar goed in je JsonFetcher.php declareert.
Je zou nu dit kunnen hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    "autoload": {
        "psr-4": {
            "custom\\": "app",
        }
    }

met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php namespace custom;

class JsonFetcher {}; ?>

maar je kan ook bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    "autoload": {
        "psr-4": {
            "app\\custom\\": "app"
        }
    }

met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php namespace app\custom;

class JsonFetcher {}; ?>


je bepaald dus eigenlijk gewoon welke namespace prefix gekoppeld moet worden aan welke map.
Gewijzigd op 27/06/2014 09:26:57 door Tim S
 
Reshad F

Reshad F

27/06/2014 00:47:38
Quote Anchor link
Ah oke dus de 'key' als het ware staat gelijk aan de namespace? en de value gelijk aan de directory?

Maar hoe zit dat dan wanneer ik meerdere subfolders heb? bepaal ik zelf tot waar de normale directory gaat en tot waar de subdirectory?
 
Ozzie PHP

Ozzie PHP

27/06/2014 00:49:28
Quote Anchor link
>> Dit is juist de kracht van psr-4, zodat je je mappen kan indelen zoals je wilt.
Zonder dat je je hoeft te houden aan een bepaalde mappen stuctuur.

Dat kan toch nog steeds? Het lijkt me handiger om dan een Test namespace te maken. Je koppelt nu 1 namespace aan 2 folders. Stel dat de classes 50/50 verdeeld zijn dan betekent het dat je in 50% van de gevallen een onnodige controle uitvoert.

Je kunt dan beter een aparte Reshad\Test namespace aanmaken die naar de test-map verwijst.

Toevoeging op 27/06/2014 00:54:24:

Reshad, je hebt verschillende type autoloaders die op een bepaalde manier autoloaden. PSR-0 en PSR-4 zijn de bekendste. Maar je kunt ook zelf een autloader maken.

Het principe is dat als een class nog niet geladen is (via require) de naam van die class naar de autoloader wordt gestuurd. Op basis van die naam, en op basis van de namespaces die jij hebt ingesteld, wordt de class geladen.

Heel simpel... even de basis-gedachte. Je hebt een class Foo(). Die zet jij in het mapje "Reshad". Vervolgens zeg je tegen de autoloader: stel de namespace Reshad in op het pad "Reshad".

Vervolgens doe jij:

$foo = new Reshad\Foo();

De autoloader ziet nu de namespace "Reshad". Aha! Bij deze namespace hoort de map "Reshad". Blijkbaar moet ik dus het bestand "Reshad/Foo.php" requiren.

Dat is de basis-gedachte van autoloading.
 
Tim S

Tim S

27/06/2014 01:05:58
Quote Anchor link
Reshad F op 27/06/2014 00:47:38:
Ah oke dus de 'key' als het ware staat gelijk aan de namespace? en de value gelijk aan de directory?

Maar hoe zit dat dan wanneer ik meerdere subfolders heb? bepaal ik zelf tot waar de normale directory gaat en tot waar de subdirectory?


Je kan je mappen nu gewoon verder uitbreiden, zolang je die classes die je wilt autoloaden correct blijft namespacen iig.

Bijv:
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
`--app
|  `-- Sub
|      `-- MeerSub
|          `-- BesteClassOoit.php

    "autoload": {
        "psr-4": {
            "Custom\\": "app",
        }
    }

<?php namespace Custom\Sub\MeerSub;

class BesteClassOoit {} ?>


Toevoeging op 27/06/2014 02:23:30:

Ozzie PHP op 27/06/2014 00:49:28:
Dat kan toch nog steeds? Het lijkt me handiger om dan een Test namespace te maken. Je koppelt nu 1 namespace aan 2 folders. Stel dat de classes 50/50 verdeeld zijn dan betekent het dat je in 50% van de gevallen een onnodige controle uitvoert.

Je kunt dan beter een aparte Reshad\Test namespace aanmaken die naar de test-map verwijst.


Ik bewaar liever mijn unit tests in een aparte map indien mogelijk.
En qua performance maakt het niks uit, zolang je maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
composer dump-autoload -o

uitvoerd.

Overigens zou ik op deze manier in een production omgeving mijn tests nu makkelijk uit de autoloader kunnen halen. Wat weer een performance winst is ten opzichte van jouw manier.
Gewijzigd op 27/06/2014 02:25:15 door Tim S
 
Ward van der Put
Moderator

Ward van der Put

27/06/2014 09:19:15
Quote Anchor link
Tim S op 27/06/2014 00:43:40:
Dit is juist de kracht van psr-4, zodat je je mappen kan indelen zoals je wilt.
Was dat maar waar. PSR-4 schrijft juist heel expliciet een directorystructuur voor. Met de highlights in vet:

[...] This PSR also describes where to place files that will be autoloaded according to the specification.

3. When loading a file that corresponds to a fully qualified class name ...

i. A contiguous series of one or more leading namespace and sub-namespace names, not including the leading namespace separator, in the fully qualified class name (a "namespace prefix") corresponds to at least one "base directory".

ii. The contiguous sub-namespace names after the "namespace prefix" correspond to a subdirectory within a "base directory", in which the namespace separators represent directory separators. The subdirectory name MUST match the case of the sub-namespace names.

iii. The terminating class name corresponds to a file name ending in .php. The file name MUST match the case of the terminating class name.

Met andere woorden: basisdirectory, subdirectory én bestandsnaam liggen in PSR-4 alle drie vast.
 

Pagina: 1 2 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.