[oo] Correcte benaming namespace?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

.net developer

Hoi! Wij zijn auto.nl en wij verkopen auto's online. je bestelt bij ons een auto net zo makkelijk als een spijkerbroek. En bevalt ie niet? Dan stuur je 'm gewoon weer terug. En dat we dat goed doen bewijst onze hoge klanttevredenheid van een 9,3. Nu maken we de volgende stap bij auto.nl. We starten met fysieke winkels. Online zoeken, offline bekijken. Maar nog altijd, geen gedoe! Gewoon eerlijk, transparant en zonder zorgen een auto kopen.. Maar om dat waar te blijven maken en nóg beter te worden, zoeken we uitbreiding van ons development team. Wat ga je precies doen?

Bekijk vacature »

Software developer

Werkzaamheden voor jou als software developer Voor een goede relatie in de regio Zwolle (meerdere locaties) zoeken wij een software developer die betrokken is bij de ontwikkelcyclus en verantwoordelijk is voor het testen en keuren van nieuwe en geoptimaliseerde software. In deze functie ben je in de implementatiefase de persoon die risico's beoordeelt en intern oplossingen aanbrengt om risico's te verkleinen. Binnen het ontwikkelteam van de software ben je een belangrijke schakel waar je intensief meewerkt met scrum. Het voorkomen van bugs in de programma's en het bevorderen van gebruiksvriendelijkheid voor eindklanten zijn voor jou een uitdaging en geeft voldoening

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

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 »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Software Developer C# / ASP .Net

Functie omschrijving Ben jij een software ontwikkelaar die bekend is met termen ASP .NET, C# en SQL? Lees dan snel verder! Voor een bedrijf binnen de agrarische sector zijn wij namelijk op zoek naar een zelfstandige, enthousiaste en proactieve Software Developer die open staat voor een afwisselende functie met veel uitdaging. Binnen deze organisatie ben jij als Software Developer samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Hierbij draag jij bij aan de vertaling van klantwensen naar effectieve softwareoplossingen. Daarnaast ben je verantwoordelijk voor: Schatten

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

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 »

Full Stack PHP Developer

Functieomschrijving Ervaren PHP Developer gezocht! Wij zijn op zoek naar een ervaren PHP Developer die het IT team van een organisatie in de regio Ermelo gaat versterken. Voor deze functie zijn we op zoek naar een enthousiaste en breed georiënteerde IT-er die deze innovatieve organisatie nog een stap verder gaat brengen. Wij zijn op zoek naar iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je bent verantwoordelijk voor het samenwerken met een externe partij het is hierbij jouw taak om deze partij uit te dagen op het geleverde werk. Het schrijven van concepten aan de AI

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Barendrecht! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »
- Raoul -

- Raoul -

05/12/2012 11:14:57
Quote Anchor link
Hoi,

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
15
<?php

namespace Controller;

use Framework\Mvc\Controller\Controller;
use Framework\Http\Response;

class HelloController extends Controller
{
    public function indexAction()
    {

        return new Response('Halloooo!');
    }
}

?>


De code hierboven leeft in /src/controller/HelloController.php.
Nu mijn vraag: mag ik als namespace zomaar Controller gebruiken? Moet er geen projectnaam bij ofzo? Want ik heb de projectnaam van m'n framework al er bij gezet?

En als ik dan toch een projectnaam erbij zet, moet het dan /src/ProjectNaam/controller/HelloController.php worden ofzo?

Alvast bedankt

Raoul
Gewijzigd op 05/12/2012 11:48:14 door - Raoul -
 
PHP hulp

PHP hulp

10/01/2025 10:12:10
 
Wouter J

Wouter J

07/12/2012 22:01:03
Quote Anchor link
Je hebt in een framework vaak 3 soorten libraries: Het Framework, de 3th-party libraries en de project code. Het Framework is gewoon het framework waar hij op is gebaseerd. De 3th-party libraries zijn libraries van andere die je gebruikt, bijv. Monolog. De project code is de code specifiek voor dat ene project.

Vaak staan het framework en de 3th-party libraries in de vendor/ of library/ map en leeft de project code in de normale map.

Ik raad aan namespaces op te bouwen volgens de PSR-0 standaard, wat inhoudt dat je <vendor-name>\<namespace>\<namespace...>\<class> gebruikt. De vendor name is de naam van je applicatie. Stel je maakt een RaoulPHP framework en die heeft een Mvc\Application class dan wordt de namespace dus RaoulPHP\Mvc\Application. Deze leeft dan in: vendor/RaoulPHP/Mvc/Application.php

Voor de 3th party geldt hetzelfde. Ik raad je aan composer te gebruiken, die zorgt dat alles goed komt en al je dependencies (=3th-party libraries) in de vendor library staan en dat de namespaces allemaal kloppen.

De project specifieke code is natuurlijk een ander verhaal. Die moet je ook prefixen, in ZF1 gebeurd dit met de Application preffix als ik het goed heb. Je stelt dan in de autoloader in dat de Application namespace gewoon in de project root leeft.

Je krijgt dan klassen als Application\Controller\HelloController welke dan in Controller/HelloController.php leeft.

Maar wat je tegenwoordig steeds meer ziet (in ZF2 en Symfony sowieso) is het gebruik van Bundles/Modules. Je groepeert code op basis van hun functie. Je hebt bijv. bundle voor alles met de user (de UserBundle) en een bundle voor een admin interface (de AdminBundle) en nog eentje voor alle blog dingen (de BlogBundle), ect. Deze zet je allemaal in een map en geef je dus hun eigen vendor mee. Je krijgt dan dus een BlogBundle\Controller\PostController klasse die bijv. in src/BlogBundle/Controller/PostController.php leeft.

Symfony gaat nog een stap verder en gebruikt vendors. Je hebt geen BlogBundle maar bijv. een WjBlogbundle. Hierdoor heb je de mogelijk 2 verschillende bundles te gebruiken. Je krijgt dan een Wj\BlogBundle\Controller\PostController klasse die in src/Wj/BlogBundle/Controller/PostController.php leeft.
 
- Raoul -

- Raoul -

07/12/2012 22:34:02
Quote Anchor link
Heel erg bedankt voor je lang bericht, ik apprecieër het.
Zo ziet alles er nu uit:
Afbeelding

(Framework is trouwens het framework, heb nog niet echt een naam).

Dat van Composer is trouwens een goeie tip, ben alleen beetje bang of Spyc wel zo'n repo heeft (of hoe dat ook heet) anders kan ik altijd nog steeds yaml loader van Symfony gebruiken.

Dat van bundles en modules lijkt me trouwens heel interessant en zeker overzichtelijk! Als ik dan bijvoorbeeld aan routing doe, en ik wil een controller mappen aan een route, is dit dan een correcte manier van doen?
(voorbeeld yml code van hoe ik het wil doen)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
blogpost:
  pattern: /blog/post/{id}
  method: [ GET, POST ]
  controller: Sitenaam:BlogModule:Hello:index
 
Wouter J

Wouter J

07/12/2012 22:42:37
Quote Anchor link
Quote:
Dat van Composer is trouwens een goeie tip, ben alleen beetje bang of Spyc wel zo'n repo heeft (of hoe dat ook heet) anders kan ik altijd nog steeds yaml loader van Symfony gebruiken.

Mocht je wat meer informatie willen over composer kun je eventueel mijn blogpost erover lezen: http://wouterj.nl/php/werken-met-composer/509/

Quote:
Dat van bundles en modules lijkt me trouwens heel interessant en zeker overzichtelijk! Als ik dan bijvoorbeeld aan routing doe, en ik wil een controller mappen aan een route, is dit dan een correcte manier van doen?

Ja, al vindt ik Sitenaam: een beetje onnodig. In Symfony gebruiken we gewoon WjBlogBundle:Post:show wat we dan een logical name noemen die naar een Wj\BlogBundle\Controller\PostController::showAction() method verwijst.

Overigens zou ik de route config wat anders doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
show_post:
    pattern: /blog/post/{id}
    defaults: { _controller: WjBlogBundle:Post:show }
    requirements:
        _method: [ GET, POST ]
        id: [0-9]*


Het voordeel van bundles is dat je ook een eigen Config mapje erin kunt maken met een routing.yml bestand en dan in de globale routing.yml iets van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
blog_bundle:
    Resource: @WjBlogBundle/Config/routing.yml

Welke dan dat bestand inlaad, zo heb je al helemaal een afhankelijke bundle.

Het mooie van zo'n bundle is dat als je hem goed maakt je hem altijd kunt gebruiken. Symfony heeft zo een hele collectie aan geweldige bundles van andere mensen die je zo kunt inladen (http://knpbundles.com ). Ik laad vaak de FosUserBundle in en bijv. een SinatraAdminbundle en ik heb zo een Admin interface gemaakt.
 
- Raoul -

- Raoul -

07/12/2012 22:56:50
Quote Anchor link
Hmm dat importen van resources in een yml is wel cool!
Dus je wilt eigenlijk zeggen dat die Sitenaam aan de bundlenaam kan?

Ik snap alleen iets niet in je config, namelijk 'defaults'... waarom zou een controller een standaard waarde moeten hebben en kan je die niet 'gewoon' definen als controller?

En voor wat staat die '_' voor method en controller?

Thanks!
 
Wouter J

Wouter J

07/12/2012 23:05:49
Quote Anchor link
In een route heb je soms optionele placeholders. Bijv. een standaard pagina 'home':
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
show_page:
    pattern: /{slug}
    defaults:
        slug: home

Deze stel je in onder de defaults. En soms heb je ook requirements, een bepaalde placeholder moet aan voorwaarden voldoen. Deze stel je in onder requirements.

Nu is de controller eigenlijk niks meer dan een default waarde die bij die route hoort, vandaar dat Symfony en ZF hem bij de defaults gooien. De method is een requirement voor de route, vandaar dat die onder requirements staat.

De _ voor deze namen staat ervoor dat dit systeem namen zijn, het zijn geen parameters uit de route maar parameters die het framework gebruikt.

Je kan ook deze manier trouwens ook mooi de route variabel maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
application:
    route: /{_controller}



Quote:
Dus je wilt eigenlijk zeggen dat die Sitenaam aan de bundlenaam kan?

Nee, een sitenaam heeft totaal geen nut voor een back-end applicatie. De bundles kunnen overal gebruikt worden en zijn zomaar wat componenten, dus nergens heb je die sitenaam nodig, omdat de applicatie niet aan een bepaalde site vast zit.
 
- Raoul -

- Raoul -

07/12/2012 23:10:34
Quote Anchor link
Ah zo, ik dacht al zoiets. Bedankt voor je heldere uitleg, ik ga aan de slag met die bundles te integreren.
 



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.