I am trying to create a silex application. My file structure:
ROOT /
/ App /
/Controller/{IndexController.php}
/Config/{dev.php,prod.php,route.php}
/ vendor
/web/{index.php, index_dev.php}
When I try to see http://localhost/web/ , I get an error message:
PHP Fatal error: Class 'App \ Controller \ IndexController' not found in .. /App/config/route.php on line 2
Here are the relevant files:
index_dev.php
<?php require_once __DIR__.'/../vendor/autoload.php'; require __DIR__.'/../App/config/dev.php'; $app = require __DIR__.'/../App/app.php'; $app->run(); ?>
app.php
<?php use Silex\Application; use Silex\Provider\TwigServiceProvider; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; $app = new Application(); require __DIR__.'/config/route.php'; return $app; ?>
route.php
<?php $app->mount('/', new App\Controller\IndexController()); ?>
IndexController.php
<?php namespace App\Controller; use Silex\Application; use Silex\ControllerProviderInterface; use Silex\ControllerCollection; class IndexController implements ControllerProviderInterface { public function index(Application $app) { return phpinfo(); } public function connect(Application $app) { $controllers = $app['controllers_factory']; $app->get('/', 'App\Controller\IndexController::index'); return $controllers; } } ?>
composer.json
{ "require": { "silex/silex": "1.0.*" }, "minimum-stability": "dev" }
source share