Hallo,

Na het lezen van de volgende pagina; https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md, is me iets niet helemaal duidelijk. Er wordt aangegeven dat je bij het gebruik maken van namespaces, een "vendor namespace" moet gebruiken.

Nu heb ik mijn huidige project zo ingedeeld:

- public_html
   - app
      - models
      - controllers
      - views
   - system
      - core
         - Model.php
         - Controller.php


Op dit moment twijfel ik of ik dit wel goed heb gedaan, ik zou namelijk niet weten wat nu mijn "vendor namespace" is. Op Google heb ik uren zitten zoeken naar een goed voorbeeld, maar ik kan niks vinden, ook van het kijken naar bestaande frameworks word ik niets wijzer. Is er nergens een handleiding te vinden die alle aspecten van het maken van een MVC Framework met PSR-4 goed uitlegt?

Alvast bedankt!
Jouw Vendor namespace zou "LordGaga" kunnen zijn. Maar waarom zou je het niet goed gedaan hebben? Wie zijn hun om te bepalen wat je wel of niet moet doen?

Mijn mening?
Als jij met je eigen project bezig bent heeft het geen meerwaarde om daar overal LordGaga voor te gaan zetten. Het wordt anders als je een leuke module / plugin / bundle geschreven hebt en deze voor het publiek beschikbaar wilt maken. Dan is het wel handig om jouw code van de rest te onderscheiden om zo dubbele classnamen te voorkomen.

Overigens zou je project dan zo ingedeeld kunnen worden:

-src
	- LordGaga
		- app
		- models
		- controllers
		- views
	- system
		- core
			- Model.php
			- Controller.php
// en stel je wilt mijn code gebruiken in je project
-vendors
	- FrankNB
		- app
		- models
		- controllers
		- views
	- system
		- core
			- Model.php
			- Controller.php
Het project waar ik mee bezig ben is inderdaad gewoon voor mezelf, maar ik probeer me wel zoveel mogelijk aan de standaarden te houden. Maar zoals ik het begrijp zou ik de "vendor namespace" dus gewoon weg kunnen laten?
Ja dat kan zeker.

Symfony had dit: (kan overigens nog steeds)

-src
	-Acme
		-MainBundle
			-Controllers 
				DefaultController.php ( namespace Acme\MainBundle\Controller; )
-vendor
	-knplabs
		-PaginatorBundle
			-Controllers 
				DefaultController.php ( namespace knplabs\PaginatorBundle\Controller; )

Waar in src dus je eigen code staat en in vendor third party code

Nu heeft Symfony echter dit gedaan:

-src
	-AppBundle
		-Controllers
			DefaultController.php ( namespace AppBundle\Controller; )
-vendor
	-knplabs
		-PaginatorBundle
			-Controllers 
				DefaultController.php ( namespace knplabs\PaginatorBundle\Controller; )


Zoals je ziet is in de src directory de Vendor directory verdwenen. Dit hebben ze gedaan omdat het je eigen code is en een vendor naam geen zin heeft en voor veel mensen zelfs verwarrend is. Als je een nieuw Symfony project aanmaakt dan zit de AppBundle er standaard in. De bedoeling is dat je hierin je applicatie gaat maken.
[offtopic]De AppBundle gaat ook weer verdwijnen en je houdt gewoon alleen maar app/Controller, etc. over in Symfony 3.[/offtopic]

Wouter,

Dat is toch maar een heel klein verschil? van AppBundle naar app?.
Ik vraag me nu tevens af waar ik meer van dit soort nieuwtjes kan lezen.
Hoop dat je niet weer met IRC aankomt :p :-)

Reageren