2013-07-01 11 views
5

Używam Composer do zarządzania zależnościami modułów (kochanie za pomocą autoload.php zamiast tony zawiera i wymaga!).W tym PHP Defines() przy użyciu Composer

Chcę dołączyć plik PHP spoza głównego katalogu Composer (dla bezpieczeństwa) z poświadczeniami zapisanymi w defines().

ten nie działa, composer.json:

{ 
    "autoload": { 
    "classmap": ["../credentials.php"] 
    } 
} 

credentials.php:

define('RYAN','BRODIE'); 

test.php:

require_once __DIR__.'/../vendor/autoload.php'; 
echo RYAN; 

Wyniki w Notice: Use of undefined constant RYAN. Jeśli autoloader firmy Composer jest przeznaczony tylko dla klasy, wówczas byłbym wdzięczny za wszelkie hacki (jak to było), aby to działało.

+0

Używanie stałych klasy zamiast stałych globalnych byłaby jedna opcja –

Odpowiedz

12

Ta metoda powinna działać dobrze, jednak na przykład musisz użyć files zamiast classmap;

{ 
    "autoload": { 
     "files": [ "../constants.php" ] 
    } 
} 
+0

Niesamowite pracowała doskonale, zaakceptuje kiedy mogę, dzięki Tom :) Nie wiem, jak brakowało mi tego w docs –

+1

2,5 roku później pamiętam, aby zaakceptować ! –