2013-07-28 12 views
7

Po prostu muszę automatycznie ładować niektóre klasy, a ja nie lubię szaleństwa obszaru nazw psr-0 (bez urazy).Jak automatycznie ładować klasy bez przestrzeni nazw z Kompozytorem bez ponownej instalacji?

Ten pracował dobrze w moim projekcie:

"psr-0": { 
    "": [ 
     "app/controller/", 
     "app/model/" 
    ] 
} 

Z jakiegoś powodu to już nie działa, mimo że używam tej samej wersji kompozytora. Potrzebuję go do nowego projektu, który również używa Silex. Czy to może być konflikt z Silex?

Wiem o opcji "classmap", ale jest to bezużyteczne, ponieważ wymaga uruchomienia "instalacji kompozytorki" za każdym razem, gdy dodaję nową klasę.

Wszelkie pomysły?

Odpowiedz

1

Jeśli chcesz zregenerować plik automatyczny, użyj composer dump-autoload.

6

Spróbuj użyć "prymitywnych" właściwości JSON, a nie tablicy (jak w twoim przykładzie). Działa to dla mnie psr-4 jak mówisz, z "": "app/":

{ 
"autoload": { 
    "psr-4": { 
     "Robbie\\": "core/", 
     "": "app/" 
    } 
}, 
"require": { 
     "monolog/monolog": "1.2.*" 
    } 
} 

To daje mi przestrzeń nazw Robbie z katalogu core, jako przykład źródeł niekontrolowanych przez kompozytora, tym 3rd party (sprzedawca) nazw Monolog i mój domyślny lub nie-obszar nazw dla źródeł znajdujących się pod katalogiem app.

Po copmpser update, wszystkie z nich są dostępne, gdy w tym generowanym autoload.php:

<?php  
require_once 'vendor/autoload.php'; 
// ...  
?> 
+0

'„”:„app /”' nie działa – Toskan

+0

myślę kombinacja daje kompozytor złożyć nazwę i uruchomiony kompozytor zainstalować kompozytor aktualizacji kompozytor zainstalować aktualizację kompozytora zrobił to w końcu – Toskan

Powiązane problemy