mappen opsplitsen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

Junior PHP Developer

Functieomschrijving Junior PHP Developer gezocht! Voor een opdrachtgever in de regio Gelderland zijn wij op zoek naar een Junior PHP Developer die onderdeel gaat worden van het ontwikkelingsteam van deze organisatie. In deze functie ga jij aan de slag met het schrijven van software voor de aansturing van en het managen van windparken en bijbehorende onderdelen. Hiernaast ga jij je bezighouden met het ontwikkelen, testen en onderhouden van diverse webapplicaties. Het team waarin je komt te werken bestaat uit 3 developers, hierdoor krijg je veel verantwoordelijkheid en de kans om jezelf verder te ontwikkelen. Er wordt echter wel van je

Bekijk vacature »

C# .NET Ontwikkelaar ASP.NET

Samengevat: Deze werkgever is een inkooporganisatie. Ben jij een ervaren .Net ontwikkelaar? Heb je ervaring met .Net en C#? Vaste baan: C# .NET Developer .Net MBO HBO €3.100 - €4.300 Onze missie is: “Een essentiële bijdrage leveren aan het verlagen van de integrale kostprijs van de aangesloten groothandels, middels het bundelen van inkoopvolume en het creëren van synergie met en tussen de groothandels en leveranciers, met scherpe inkoopprijzen, goede handelscondities en gerichte dienstverlening als resultaat” Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun goed! De branche van dit

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie 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! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. 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 goed verlopen. Je gaat klanten ondersteunen op

Bekijk vacature »

Software Developer PHP

Functie omschrijving We are looking for a dutch native speaker Voor een opdrachtgever in de regio van Geldrop ben ik op zoek naar een Software Developer PHP. Jij krijgt een rol met veel verantwoordelijkheid in een groeiende organisatie. In deze functie werkt je voornamelijk remote en op een vast moment kom je met het team samen, om samen te werken en nieuwe doelen te bepalen. Wat ga je doen? Je wordt verantwoordelijk voor de interne applicatie; Je zorgt voor de doorontwikkeling van de applicatie: zowel back-end, front-end; De basis van het werk betreft front-end technieken; Periodiek bepaal je samen met

Bekijk vacature »

Senior C# Software Ontwikkelaar te Zaandam

Bedrijfsomschrijving Deze werkgever heeft als missie om haar klanten op ICT-gebied volledig te ontzorgen. Ze zijn een ICT bedrijf met een verscheidenheid aan ICT oplossingen waaronder Cloud oplossingen en een groot deel van het werk is gericht op software realisatie. Voor de Enterprise-klanten voert het relatief kleine ontwikkelteam waar jij deel uit van kan gaan maken binnen deze organisatie te Zaandam de grootste opdrachten uit. Niet alleen websites en complexe webapplicaties maar ook mobile apps, web services en complete systeemintegraties! Je moet dan denken aan Dynamics, Sharepoint en Salesforce. Je komt hier terecht in een relatief kleine organisatie met ontzettend

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en 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 professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

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 »

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

29/12/2024 12:57:12
 
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.