Composer: directory structuur aanpassen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

01/01/2013 22:46:07
Quote Anchor link
Hoi allemaal,

Ben dus van plan om Composer te gebruiken want ik zou graag gebruik maken van PHPUnit en een paar Symfony components.
M'n structuur ziet er nu zo uit:
Afbeelding
Wat je ziet is m'n framework, Twig, en Spyc (voor parsen .yml bestanden).

Moet ik nu die lib/ veranderen in vender/ omdat Composer daar ook z'n dependencies in plaatst?
En ik zag ook dat Composer hun eigen autoloader heeft. Ik heb mijn eigen autoloader geschreven waar heel wat werk in zit en die ook het beste werkt met m'n framework, moet ik daar nu ook van afstappen?

Raoul
Gewijzigd op 01/01/2013 22:46:15 door - Raoul -
 
PHP hulp

PHP hulp

28/11/2024 14:54:13
 
Wouter J

Wouter J

01/01/2013 23:24:12
Quote Anchor link
Quote:
Moet ik nu die lib/ veranderen in vender/ omdat Composer daar ook z'n dependencies in plaatst?

Wat je kan doen is lib zo laten en alleen je 3th party libraries in vendor te stoppen. Twig en Spyc zijn beide ook 3th parties.

En anders hernoem je lib helemaal naar vendor.

Je kan composer overigens ook een andere map toegeven: http://getcomposer.org/doc/04-schema.md#config

Ik heb vaak een structuur als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
src/
    project code (Framework)
vendor/
    3th party dingen
app/
    configuratie


Quote:
Ik heb mijn eigen autoloader geschreven waar heel wat werk in zit en die ook het beste werkt met m'n framework, moet ik daar nu ook van afstappen?

Moeten is een groot woord, het is wel zeer verstandig. composer slaat de 3th party libraries zo op dat hun autoloader ze makkelijk kan vinden. Jou code vinden is dan een kwestie van "": "lib/" toevoegen.
Het is jammer dat je dan van je autoloader moet afstappen, maar misschien dat je hem nog eens gaat gebruiken als je geen composer gebruikt.
 
- Raoul -

- Raoul -

01/01/2013 23:37:24
Quote Anchor link
Thx voor je reactie. Ik ga toch kijken of ik toch niet mijn eigen autoloader kan blijven gebruiken, hij is namelijk heel flexibel en gebaseerd op die van Symfony.
 
Wouter J

Wouter J

01/01/2013 23:40:25
Quote Anchor link
Symfony heeft zijn autoloader ook weggegooid en is die van composer gaan gebruiken in 2.1.
 
- Raoul -

- Raoul -

01/01/2013 23:42:14
Quote Anchor link
Echt? Dan ga ik toch eens gaan moeten testen hoe dat allemaal werkt. Thanks!
 
Wouter J

Wouter J

01/01/2013 23:46:01
Quote Anchor link
De autoloader van composer is niet moeilijk. Je moet gewoon vendor/autoload.php includen en klaar ben je.

En mocht je Framework in lib houden dan voeg je dit toe aan je composer.json:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
{
    "autoload": {
        "psr-0": { "": "lib" }
    }
}


Of als Raoul\Framework je namespace is in je Framework map maak je er dit van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
{
    "autoload": {
        "psr-0": { "Raoul": "lib" }
    }
}
 
- Raoul -

- Raoul -

02/01/2013 00:53:14
Quote Anchor link
Ik deel mijn namespaces in volgens directory, met uitzondering van lib/ die gaat dan uit de namespacenaam, dus dat eerste zal gewoon werken met namespace's als "Framework\xxx\xxx"?
Gewijzigd op 02/01/2013 00:53:23 door - Raoul -
 
Wouter J

Wouter J

02/01/2013 01:01:58
Quote Anchor link
Ja. Je zegt daar dat mocht hij een namespace niet vinden hij moet kijken in de lib directory.

Ik raad je wel aan de PSR-0 standaard te volgen, hierin staat dat je hem altijd moet prefixen met een vendor. Bijv. Symfony\Component\Console\Application, Wj\AdminBundle\Controller\DashboardController en Zend\EventManager\SharedEventManager.
 



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.