mappen opsplitsen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end Developer C#

Functie omschrijving We are looking for a dutch native speaker Ben jij een ervaren back-end developer, die graag in een in-house functie wil werken? Passen de woorden innovatie, programmeren en teamspeler bij jou? Zoek niet verder en lees snel verder. Voor een echt familiebedrijf in de regio van Uden ben ik op zoek naar een back-end developer, die met name kennis heeft van C# en .NET. Jij gaat de interne applicaties verder optimaliseren en nieuwe features ontwikkelen. Verder ga je de volgende werkzaamheden uitvoeren: Ondersteunen gebruikers; Uitvoeren van analyses van de software/applicaties; Maken van functionele ontwerpen en deze door vertalen

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Medior PHP developer

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

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. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. 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 in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

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 »

Medior/senior PHP ontwikkelaar E-commerce

Functie Het software development team bestaat momenteel 5 scrum teams . Ieder team heeft een eigen SCRUM Master en eigen tester. Zij werken voornamelijk in PHP en met hun eigen geschreven framework wat Symfony based is . Jij bent samen met je collega’s verantwoordelijk voor het interne softwaresysteem en alle projecten die daar omheen lopen. Alles wat jij ontwikkelt, wordt direct toegepast en uitgerold (wereldwijd). Dit maakt jouw werk tastbaar en uitdagend! Een greep uit jouw werkzaamheden: Toevoegen en ontwikkelen van nieuwe functionaliteiten Logistieke software ontwikkelen voor intern gebruik Tientallen gigabytes aan data inzichtelijk maken Altijd op zoek gaan naar

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 »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

25/02/2014 00:42:42
Quote Anchor link
Ola,

Korte vraag. Ik zit me af te vragen... Stel ik heb 2 classes waarin ik de data van een request wil opslaan. In de ene class wil ik client data opslaan en in de andere server data. Voor welke mappenstructuur zouden jullie dan kiezen? A, B of C? (Ik snap dat er nog meer mogelijkheden zijn, maar ik zou graag weten welke van deze 3 jullie voorkeur heeft en waarom.)

A)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
/request/
         clientdata.php
         serverdata.php

Of voor deze manier:

B)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/request/
        data/
             clientdata.php
             serverdata.php

Of...

C)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
/request/
        data/
             client/
                    data.php
             server/
                    data.php

Het gaat me er vooral om wanneer je überhaupt over moet gaan tot het aanmaken van nieuwe directories. Je kunt zeggen dat beide classes onderdeel van het request zijn, en ze dus gewoon in de request map zetten (A). Je kunt ook zeggen dat het fenomeen "data" weliswaar tot het request behoort, maar een apart onderdeel daarvan is (B). En je kunt vervolgens binnen die data ook weer aparte mappen maken omdat het om verschillende typen, client en server, data gaat (C). Ben benieuwd naar jullie reacties en vooral hoe jullie daar mee omgaan en waar jullie je keuzes op baseren.
Gewijzigd op 25/02/2014 01:05:50 door Ozzie PHP
 
PHP hulp

PHP hulp

27/11/2024 17:18:15
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 07:57:25
Quote Anchor link
Uiteindelijk verwerk je altijd data, dus ik zou het niveau /data/ er tussenuit halen.

Daarmee vallen variant B en C af. Variant A zou ik dan wel met andere hoofdletters gebruiken als namespace:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
/Request/
         ClientData.php
         ServerData.php

De eerste klasse /Request/ClientData.php wordt dan met dezelfde tenaamstelling:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
namespace Request;

class ClientData
{
    // ...
}
?>
 
Wouter J

Wouter J

25/02/2014 10:31:12
Quote Anchor link
Behalve dat ik zou aanraden om altijd een vendor naam in je namespace op de eerste plek te zetten.
 
Ozzie PHP

Ozzie PHP

25/02/2014 13:09:28
Quote Anchor link
Ward, kun je nog iets verder uitleggen wat je bedoelt met "Uiteindelijk verwerk je altijd data". Zelf zat ik zo te denken, "data" is een onderdeel van het request, dus ik zet alles wat met data te maken heeft in een aparte map. Ik stel deze vraag omdat ik mezelf in een situatie aan het manoeuvreren ben, waarbij ik ieder afzonderlijk onderdeeltje in een aparte map aan het zetten ben. Dit is ontstaan toen ik met exceptions ben gaan werken. Ik vind het prettig om met eigen exceptions te werken ipv de spl library exceptions. Iedere class die dan een exception kan gooien, die wil ik een eigen exception class geven, zodat ik specifiek per class kan kijken of er een exception wordt gegooid. Velen zullen dit wellicht niet prettig vinden, maar ik vind het een fijne manier van werken.

Stel je hebt een mapje met autoloaders, dan wil ik dus iedere autoloader een eigen map geven, dus zeg maar dit idee:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/autoloader/
            autoloader.php // dit is de algemene systeem-autoloader
            psr/
               autoloader.php // een psr autoloader

Stel dat de psr autoloader een exception zou moeten gooien, dan gaat dat nu heel makkelijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
/autoloader/
            autoloader.php // dit is de algemene systeem-autoloader
            psr/
               autoloader.php // een psr autoloader
               exception.php // een psr autoloader exception

Stel echter dat ik alles in één map zou zetten, dan zou je zoiets krijge:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/autoloader/
            autoloader.php // dit is de algemene systeem-autoloader
            psrautoloader.php // een psr autoloader
            psrautoloaderexception.php // een psr autoloader exception

Om dit soort lange bestandsnamen te voorkomen leek het me dus een goed idee om met mappen te werken. Maar het probleem daarvan is weer dat je heel veel mappen krijgt, waar vaak maar één bestand in staat (omdat niet zo heel veel classes een exception hoeven te kunnen gooien).

Heb je misschien nog wat advies, of een soort algemene stelregels hoe ik hier het beste mee om kan gaan?

Wouter J op 25/02/2014 10:31:12:
Behalve dat ik zou aanraden om altijd een vendor naam in je namespace op de eerste plek te zetten.

Helemaal gelijk in. Voor het gemak heb ik die even weggelaten.
Gewijzigd op 25/02/2014 13:11:00 door Ozzie PHP
 
Wouter J

Wouter J

25/02/2014 13:20:42
Quote Anchor link
>> Helemaal gelijk in. Voor het gemak heb ik die even weggelaten.

Ik zou ook je vendor naam niet in je mappenstructuur opnemen, maar alleen in je namespace.

>> Heb je misschien nog wat advies, of een soort algemene stelregels hoe ik hier het beste mee om kan gaan?

Een interessant (en kort) artikel voor je: http://verraes.net/2011/10/code-folder-structure/
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 13:24:34
Quote Anchor link
Je schuift voortdurend "data" heen en weer. Een request bevat data, een response bevat data en zelfs elke property is een vorm van data. Data is in dit verband een overbodige toevoeging. En meer praktisch vind ik het overzichtelijker als je de term data reserveert voor databases en andere vormen van data-opslag.

Ik zou één Request-hoofdcontainer gebruiken en die uitgebreider splitsen. Jouw tweedeling client/server is te veel ingegeven door netwerktechnologie. Bij het programmeren heb je eerder afzonderlijke componenten nodig voor bijvoorbeeld de POST bij formulieren, een cookie en een sessie. En die hebben meestal zowel client- als serverdata. Die tweedeling werkt daarom niet goed, denk ik: er is zowel te weinig als te veel overlapping met andere objecten, waardoor verantwoordelijkheden verkeerd verdeeld worden.

PSR heeft een eigen \Psr namespace. Daar hoort dus ook een PSR-autoloader in.
 
Ozzie PHP

Ozzie PHP

25/02/2014 13:32:29
Quote Anchor link
>> Een interessant (en kort) artikel voor je: http://verraes.net/2011/10/code-folder-structure/

Thanks, dit gaat meer over welke onderdelen bij elkaar horen. Ik ben juist benieuw hoe je zo'n "onderdeel" of map op de beste manier kunt inrichten.

>> En meer praktisch vind ik het overzichtelijker als je de term data reserveert voor databases en andere vormen van data-opslag.

Ik snap wat je bedoelt, maar als ik het gewoon "client" zou noemen, dan lijkt het alsof het om de persoon "client" gaat, en niet om de data.

>> Bij het programmeren heb je eerder afzonderlijke componenten nodig voor bijvoorbeeld de POST bij formulieren, een cookie en een sessie.

Ben ik wel met je eens, maar is het nodig om voor cookie, files, get, post aparte classes te maken? Volgens mij zien die classes er toch allemaal hetzelfde uit? Ze moeten een get() en has() method hebben en dan ben je er al. In het kader van DRY (don't repeat yourself) is het toch niet goed om daar dan 4 classes voor te maken?
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 13:50:08
Quote Anchor link
>> maar is het nodig om voor cookie, files, get, post aparte classes te maken? Volgens mij zien die classes er toch allemaal hetzelfde uit? Ze moeten een get() en has() method hebben en dan ben je er al. In het kader van DRY (don't repeat yourself) is het toch niet goed om daar dan 4 classes voor te maken?

Dan delen ze een get() en has() in een gemeenschappelijke RequestInterface of AbstractRequest, maar er is nog steeds een groot verschil tussen een $_POST en een $_COOKIE, zelfs al komen ze allemaal tegelijk binnen via één request. Met de methoden om iets uit $_POST te halen kun je geen fatsoenlijk cookie zetten.
 
Ozzie PHP

Ozzie PHP

25/02/2014 14:00:26
Quote Anchor link
Met de methoden om iets uit $_POST te halen kun je geen fatsoenlijk cookie zetten. Klopt, maar de vraag is dan of je een cookie moet setten in de request of in de response. Ik zou zeggen dat laatste.

Maar goed, eigenlijk ging mijn vraag daar dus niet echt over. Ik wil graag weten hoe ik het beste mijn mappenstructuur kan inregelen. Stel dat ik wel alles een eigen map geef, en dus voor een optie als deze zou kiezen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
/request/
        data/
             client/
                    data.php
             server/
                    data.php

Zitten daar dan nadelen aan? Wordt mijn systeem daar bijvoorbeeld trager door?
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 14:22:55
Quote Anchor link
Het nadeel is vooral dat je dan geen overzichtelijke namespace hebt.

Als je het extreem snel wilt maken, laadt je PHP-opcode via één bestand per applicatie uit een RAM-cache. Maar hoe je de boel later compileert, staat los van hoe je het geheel eerst bouwt.
 
Ozzie PHP

Ozzie PHP

25/02/2014 14:35:43
Quote Anchor link
>> Het nadeel is vooral dat je dan geen overzichtelijke namespace hebt.

Sorry dat ik even een boel vraag, maar wat bedoel je hier meer? Voor de client data zou de namespace dan worden:

Vendor\Request\Data\Client

Wat vind je daar niet overzichtelijk aan?

Nogmaals, ik weet dus niet of mijn idee met mappen goed is, of beter kan. Dus vandaar dit topic. Ik hoop vooral op nieuwe ideeën te komen. Stel dat we bijv. ClientData.php wel in de request map zetten en we willen ook een bijbehorende exception, dan krijg je wel een hele lange bestandsnaam, terwijl ik juist dacht dat het idee van de namespaces (o.a.) was om niet van die lange bestandsnamen te krijgen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
/request/
         ClientDataException.php

Ik wil niet zeggen dat het niet kan, maar ik vraag me dus af of het een "beter" is dan het ander, en wanneer je nu wel of niet mappen moet gebruiken. Jouw eerdere opmerking over "PSR heeft een eigen \Psr namespace. Daar hoort dus ook een PSR-autoloader in." begrijp ik overigens niet. Het is gewoon een type autoloader die overweg kan met psr namespaces. Oh wacht, je bedoelt dat jij die autoloader niet in de "autoloader" map zou zetten, maar in een "psr" map?
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 15:03:28
Quote Anchor link
Het kán zo wel, maar dan krijg je bijvoorbeeld een ander hoofdlettergebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Vendor/
       Request/
               ClientData.php

Een PSR-autoloader is "van PSR" en hoort daarom in een eigen namespace:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
/Psr/
     Psr4AutoloaderClass.php

Kijk, zo zie je meteen wat je aan het doen bent. Dit is niet zomaar een autoloader, maar een PSR-autoloader. En niet een voor PSR-0, maar een die we hebben geleend uit PSR-4.

Vergelijkbare logica vind je in bijvoorbeeld PSR-3:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
Psr/
    Log/
        AbstractLogger.php
        InvalidArgumentException.php
        LoggerAwareInterface.php
        LoggerAwareTrait.php
        LoggerInterface.php
        LoggerTrait.php
        NullLogger.php
        LogLevel.php

Daarom zou ik bij jouw voorbeeld ook zoiets verwachten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Vendor/
       Request/
               AbstractRequest.php
               ClientData.php
               RequestInterface.php
               ServerData.php
 
Ozzie PHP

Ozzie PHP

25/02/2014 15:14:28
Quote Anchor link
>> En niet een voor PSR-0, maar een die we hebben geleend uit PSR-4.

Wat is het verschil tussen de 0 versie en de 4 versie?

>> Een PSR-autoloader is "van PSR" en hoort daarom in een eigen namespace

Is dit jouw eigen mening.. vind jij dat het zo hoort, of zijn daar "regels" voor? Ik zou zelf een (psr)autoloader namelijk eerder zoeken in mijn autoloader map, dan in een aparte psr namespace. En als ik een psr logger zou hebben, dan zou ik die ook eerder zoeken in mijn logger map. Is dat dan fout? Ik snap jouw redenatie ook, maar "mijn" manier kan toch ook?

>> Daarom zou ik bij jouw voorbeeld ook zoiets verwachten:

Ah oké, duidelijk. Ik ben zelf niet zo'n heel erg voorstander van hoofdletters in map- en bestandsnamen. Ik zat net even te experimenteren, en het gebruik van underscores vind ik eigenlijk ook wel heel duidelijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
vendor/
       request/
               abstract_request.php
               client_data.php
               request_interface.php
               server_data.php
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 15:23:04
Quote Anchor link
>> Is dit jouw eigen mening.. vind jij dat het zo hoort, of zijn daar "regels" voor?

Dat is een kip-en-ei-probleem: het zijn de richtlijnen uit PSR-0 en PSR-4, dus als je de PSR-standaarden wilt aanhouden, moet je de PSR-standaarden aanhouden :-)

>> Wat is het verschil tussen de 0 versie en de 4 versie?

PSR-4 is aan aanvulling op andere autoloading-specificaties, waaronder PSR-0. Daarnaast beschrijft PSR-4 wáár je bestanden moet opslaan (PSR-0 niet) en is het daarmee een antwoord op je vraag.
 
Ozzie PHP

Ozzie PHP

25/02/2014 15:31:47
Quote Anchor link
>> PSR-4 is aan aanvulling op andere autoloading-specificaties, waaronder PSR-0. Daarnaast beschrijft PSR-4 wáár je bestanden moet opslaan (PSR-0 niet) en is het daarmee een antwoord op je vraag.

In mijn psr autoloader kan ik zeggen dat de namespace "Foo" moet worden gezocht in de map "bar", dus new Foo\FooBar verwijst dan naar /bar/foobar.php. Is dat dan psr-4?

>> Dat is een kip-en-ei-probleem: het zijn de richtlijnen uit PSR-0 en PSR-4, dus als je de PSR-standaarden wilt aanhouden, moet je de PSR-standaarden aanhouden :-)

Haha, ja ik hou de richtlijnen ook aan, maar ik bedoel... is het jouw eigen mening dat een psr autoloader thuishoort in een psr mapje? Je zou ook kunnen zeggen, het is een autoloader van het "type" psr en ik stop 'm gewoon in de autoloader map.

Als ik dus bijv. gebruik wil maken van een psr autoloader of logger, dan zou ik zeggen:
$autoloader = new Ozzie\Autoloader\PsrAutoloader;
$logger = new Ozzie\Logger\PsrLogger;
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 15:49:21
Quote Anchor link
>> is het jouw eigen mening dat een psr autoloader thuishoort in een psr mapje? Je zou ook kunnen zeggen, het is een autoloader van het "type" psr en ik stop 'm gewoon in de autoloader map.

Eerlijk gezegd, smokkel ik wel eens. Ik heb bijvoorbeeld een PSR-0-autoloader (geen class maar een functie) in de library staan, dus op het niveau /lib/ bóven alle vendor-mappen /lib/Psr/ en /lib/Google/ enzovoort.

Verder smokkel ik ook wel eens door binnen een package op het niveau /Vendor/Package/ een config.php met een doodgewoon rijtje require-statements op te nemen. Niet netjes, maar soms is require 'config.php' wel praktisch als je toch uitsluitend iets uit één package nodig hebt.

Verder houd ik er niet zo van om rigide alles met alleen een beginhoofdletter te schrijven, bijvoorbeeld Ideal en Postnl in plaats van iDEAL en PostNL.
 
Ozzie PHP

Ozzie PHP

25/02/2014 15:58:37
Quote Anchor link
>> Verder houd ik er niet zo van om rigide alles met alleen een beginhoofdletter te schrijven, bijvoorbeeld Ideal en Postnl in plaats van iDEAL en PostNL.

Ik denk dat ik alles met kleine letters ga schrijven.. tenzij het een externe library is, maar voor de rest, alles voortaan met kleine letters. Hoef ik er nooit meer over na te denken, en kan ik me ook nooit meer vergissen. Ideal, of was het nu iDEAL of IDEAL? Gewoon ideal :)

Wat betreft het psr gebeuren. Dat zijn toch gewoon richtlijnen hoe je iets kunt aanpakken? Het is toch geen library?

Weet je nog het antwoord op mijn vorige vraag?

"In mijn psr autoloader kan ik zeggen dat de namespace "Foo" moet worden gezocht in de map "bar", dus new Foo\FooBar verwijst dan naar /bar/foobar.php. Is dat dan psr-4?"
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 16:10:10
Quote Anchor link
Ja, dat is PSR-4. In de voorbeelden bij PSR-4 vind je een methode addNamespace() die een $prefix voor de namespace accepteert.
 
Ozzie PHP

Ozzie PHP

25/02/2014 16:13:46
Quote Anchor link
Ah oké, zo'n method heb ik inderdaad zelf ook in mijn class gemaakt.

Maar dat psr gebeuren is toch geen library? Het zijn toch enkel richtlijnen hoe je iets op een handige manier kunt aanpakken?
 
Ward van der Put
Moderator

Ward van der Put

25/02/2014 16:19:29
Quote Anchor link
PSR draait nu inderdaad vooral nog om API's, dus de interfaces waarmee je uiteenlopende PHP-projecten aan elkaar kunt koppelen. Daar begint standaardiseren immers mee: de interne werking van een klasse is niet interessant, zolang de interface maar is gestandaardiseerd.

In de PSR-recommendations vind je echter wel bruikbare klassen. Officieel zijn dat vaak maar voorbeelden, maar ze zijn goed te gebruiken als library.
 
Ozzie PHP

Ozzie PHP

25/02/2014 16:25:32
Quote Anchor link
Maar het is toch niet zo dat bijv. een externe library een psr "library" nodig heeft om te kunnen werken? Een externe library kan bijv. een autoloader nodig hebben "op basis van de psr" richtlijnen, maar dat is het toch wel?

Even nog terugkomend op de request map...

Jij gaf dus dit voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Vendor/
       Request/
               AbstractRequest.php
               ClientData.php
               RequestInterface.php
               ServerData.php

Alle bestanden staan nu in de request map. Ik ben benieuwd of jij een voorbeeld kan geven wanneer je gebruik zou maken van een of meerdere submappen. Dus je hebt zeg maar eerst de vendor, en dan de hoofdmap. In die hoofdmap (in dit geval "request") staan nu alle bestanden, maar zijn er ook situaties waarin je een hoofdmap hebt, waar ook submappen in staan?
 

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.