apache — Silex: фатальная ошибка: класс не найден

Я сделал приложение PHP с Silex. Я использую решение WAMP на своем ноутбуке для разработки в сочетании с Composer.

Теперь, когда я загружаю приложение (карты ‘app’, ‘src’ и ‘web’) и загружаю базу данных, меняю config.php на правильные учетные данные базы данных, которые я использую для команды composer (composer.phar -o install) установить зависимости поставщика.

До этого момента все работает, Composer создает карту «vendor» и устанавливает зависимости без ошибок. Но когда я захожу на сайт, он показывает мне ошибку:

Fatal error: Class 'WanaKo\Provider\Controller\HomeController' not found in /home/wanako/domains/wanako.net/app/app.php on line 37

Что я могу сделать, чтобы исправить эту ошибку? Я должен добавить, что на сервере запущен DirectAdmin с PHP 5.5.16 и что я сделал символическую ссылку с ‘public_html /’ на ‘web /’

Структура каталогов:

/home/wanako/domains/wanako.net/
├── app
├── logs
├── public_ftp
│   └── incoming
├── public_html -> web/
├── src
│   ├── wanako
│   │   ├── provider
│   │   │   └── controller
│   │   └── repository
│   └── views
│       ├── errors
│       └── home
├── vendor
│   ├── composer
│   ├── doctrine
│   │   ├── common
│   │   └── dbal
│   ├── igorw
│   │   └── config-service-provider
│   ├── imagine
│   │   └── imagine
│   ├── ircmaxell
│   │   └── password-compat
│   ├── knplabs
│   │   └── repository-service-provider
│   ├── monolog
│   │   └── monolog
│   ├── neutron
│   │   └── silex-imagine-provider
│   ├── pimple
│   │   └── pimple
│   ├── psr
│   │   └── log
│   ├── silex
│   │   └── silex
│   ├── swiftmailer
│   │   └── swiftmailer
│   ├── symfony
│   │   ├── config
│   │   ├── debug
│   │   ├── event-dispatcher
│   │   ├── filesystem
│   │   ├── form
│   │   ├── http-foundation
│   │   ├── http-kernel
│   │   ├── icu
│   │   ├── intl
│   │   ├── locale
│   │   ├── options-resolver
│   │   ├── property-access
│   │   ├── routing
│   │   ├── security-core
│   │   ├── security-csrf
│   │   ├── translation
│   │   ├── twig-bridge
│   │   └── validator
│   └── twig
│       └── twig
└── web
├── css
├── font
├── images
└── js

composer.json

{
"name": "Wanako/Wakano.net",
"require": {
"silex/silex": "1.0.*@dev",
"twig/twig": ">=1.8,<2.0-dev",
"doctrine/dbal": "2.*",
"knplabs/repository-service-provider": "dev-master",
"symfony/twig-bridge": "~2.1",
"symfony/form": "~2.1",
"symfony/validator": "~2.1",
"symfony/config": "~2.1",
"symfony/translation": "~2.1",
"symfony/locale": "~2.1",
"monolog/monolog": ">=1.0.0",
"igorw/config-service-provider": "~1.1",
"swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev",
"ircmaxell/password-compat": "dev-master",
"neutron/silex-imagine-provider": "~0.1"},
"autoload": {
"psr-0": {
"WanaKo": "./src/"}
}
}

В строке 37 Приложение / app.php У меня есть:

$app->mount('/', new WanaKo\Provider\Controller\HomeController());

homecontroller.php (в папке src / wanako / provider / controller /)

<?php

namespace WanaKo\Provider\Controller;

use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;
use Symfony\Component\Validator\Constraints as Assert;

class HomeController implements ControllerProviderInterface {
$controllers = $app['controllers_factory'];
// Bind sub-routes
$controllers->get('/', array($this, 'home'))->method('GET')->bind('home.news');
return $controllers;
}

public function home(Application $app) {
// STUFF
}

Я не имею понятия об этом. Что-то я не так сделал? Неправильная структура папок? Что-то я забыл? Если кому-то нужна дополнительная информация, просто спросите. Спасибо за помощь!

2

Решение

Я считаю, что для правильной работы psr0 вы должны указать структуру папок и файлы в правильном регистре, например:

    src/WanaKo/Provider/Controller/HomeController.php
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]