Reputation: 31709
I have this app/AppKernel
:
<?php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new JMS\I18nRoutingBundle\JMSI18nRoutingBundle(),
new FOS\UserBundle\FOSUserBundle(),
new Sports\FrontendBundle\SportsFrontendBundle(), // line 25
new Sports\UserBundle\SportsUserBundle(),
new Sonata\DefaultBundle\SonataDefaultBundle(),
new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
new Sonata\AdminBundle\SonataAdminBundle(),
new Sonata\BlockBundle\SonataBlockBundle(),
new Sonata\CacheBundle\SonataCacheBundle(),
new Knp\Bundle\MenuBundle\KnpMenuBundle(),
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle()
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
#$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
And this class src/Sports/FrontendBundle/SportsFrontendBundle.php
:
namespace Sports\FrontendBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class SportsFrontendBundle extends Bundle
{
}
And Im getting this error:
Fatal error: Class 'Sports\FrontendBundle\SportsFrontendBundle' not found in /home/tirengarfio/programacion/sports/app/AppKernel.php on line 25
This is my app/autoload.php
:
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
if (!$loader = @include __DIR__.'/../vendor/autoload.php') {
$message = <<< EOF
<p>You must set up the project dependencies by running the following commands:</p>
<pre>
curl -s http://getcomposer.org/installer | php
php composer.phar install
</pre>
EOF;
if (PHP_SAPI === 'cli') {
$message = strip_tags($message);
}
die($message);
}
// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
$loader->add('Sports', __DIR__ . '/../src');
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
and my composer.json
:
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.1",
"doctrine/orm": "2.2.*",
"doctrine/doctrine-bundle": "dev-master",
"twig/extensions": "dev-master",
"symfony/assetic-bundle": "dev-master",
"symfony/swiftmailer-bundle": "dev-master",
"symfony/monolog-bundle": "dev-master",
"sensio/framework-extra-bundle": "*",
"sensio/distribution-bundle": "*",
"sensio/generator-bundle": "*",
"friendsofsymfony/user-bundle": "*",
"jms/security-extra-bundle": "1.1.*",
"jms/di-extra-bundle": "1.0.*",
"jms/i18n-routing-bundle" : "1.0.*",
"sonata-project/exporter" : "dev-master",
"sonata-project/jquery-bundle" : "dev-master",
"sonata-project/block-bundle" : "dev-master",
"sonata-project/cache-bundle" : "dev-master",
"sonata-project/admin-bundle" : "dev-master",
"sonata-project/user-bundle" : "dev-master",
"sonata-project/doctrine-orm-admin-bundle" : "dev-master",
"stof/doctrine-extensions-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
},
"minimum-stability": "dev",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web"
}
}
Any idea?
sf 2.1.1
Javi
Upvotes: 4
Views: 23922
Reputation: 2527
For future references, similar issues can happen if you checkout your code and copy the vendor folder directly without running composer.
To rule autoload issues out, you can simply run install
in your symfony2 folder ( assuming you have composer.phar
there ):
php composer.phar install
This will install the project dependencies from the composer.lock file if present, or fall back on the composer.json.
Upvotes: 7
Reputation: 31709
It just was a permissions issue. My bundle folder somehow got wrong permissions. I set them to 755 and it fixes the issue.
Upvotes: 5
Reputation: 48865
In your autoload.php you need something like:
$loader->add('Sports', __DIR__ . '/../src');
Unless you have Sports coming in under vendor?
===========================================
So just to confirm you have:
sports
sports/app
sports/app/console
sports/src
sports/src/Sports/FrontendBundle/SportsFrontendBundle.php
sports/vendor
Windows or unix? And you get the error when you run the console command?
Upvotes: 4