2015-11-15 3 views
0

Сайт использует Silex.Silex autoload мое пространство имен

Структура выглядеть следующим образом:

root 
    api 
    RSYWX 
     Book.php 
    vendor 
    views 
    web 

В Book.php:

namespace RSYWX; 

class Book { 
    public static function sayHello() 
    { 
     return "Hello, there!"; 
    } 
} 

В composer.json:

{ 
    "require": { 
    "silex/silex": "~1.1", 
    "twig/twig": "^1.23", 
    "doctrine/dbal": "~2.2", 
    "symfony/var-dumper": "^2.7" 
    }, 
    "autoload": { 
    "psr-4": { 
     "RSYWX\\": "/api/RSYWX" 
     } 
    } 
} 

Я побежал composer update обновить автозагрузку соответствующие файлы, в частности vendor/composer/autoload_psr4.php:

return array( 
    ... 
    'RSYWX\\' => array('/api/RSYWX'), 
    ... 

Когда я попытался позвонить sayHello из index.php файла, журнал ошибок имеет следующую строку:

PHP Fatal error: Class 'RSYWX\\Book' not found in vagrant/api.rsywx.com/web/index.php on line 32 

Есть намеки, чтобы загрузить этот класс и статический метод?

ответ

2

Попробуйте с:

"RSYWX\\": "api/RSYWX" 

Поскольку использование / на начало относится к корневой директории сервера, и это, вероятно, не то, что вы хотели. Конечно, позвоните composer update после смены composer.json файла.

+0

Да, это работало как инструкция стиля. Благодаря! – TaylorR

+0

в этом случае 'composer dump-autoload' достаточно – Heah

Смежные вопросы