Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

server:run Exception There are no commands defined in the "server" namespace

Tags:

php

symfony

When I run the server using php bin/console server:run I get the following error. There are no commands defined in the "server" namespace.

When I run php bin/console command I egt the following output. Which does't show any server: commands.

Symfony 3.3.0-DEV (kernel: app, env: dev, debug: true)  Usage:   command [options] [arguments]  Options:   -h, --help            Display this help message   -q, --quiet           Do not output any message   -V, --version         Display this application version       --ansi            Force ANSI output       --no-ansi         Disable ANSI output   -n, --no-interaction  Do not ask any interactive question   -e, --env=ENV         The environment name [default: "dev"]       --no-debug        Switches off debug mode   -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug  Available commands:   about                                   Displays information about the current project   help                                    Displays help for a command   list                                    Lists commands  app   app:download-beameemail                 download beame emails.   app:download-businessunits              download businessunits.   app:download-drivers                    download drivers.   app:download-fleets                     download fleets.   app:download-fmpositions                download fm_positions.   app:download-fmtrips                    download fm_trips.   app:download-fmunits                    download fm_units.   app:download-skypositions               download skytrack_positions.   app:download-skyunits                   download skytrack_units.   app:download-vehicles                   download vehicles.  assets   assets:install                          Installs bundles web assets under a public web directory  cache   cache:clear                             Clears the cache   cache:pool:clear                        Clears cache pools   cache:warmup                            Warms up an empty cache  config   config:dump-reference                   Dumps the default configuration for an extension  debug   debug:config                            Dumps the current configuration for an extension   debug:container                         Displays current services for an application   debug:event-dispatcher                  Displays configured listeners for an application   debug:router                            Displays current routes for an application   debug:swiftmailer                       [swiftmailer:debug] Displays current mailers for an application   debug:translation                       Displays translation messages information   debug:twig                              Shows a list of twig functions, filters, globals and tests  doctrine   doctrine:cache:clear-collection-region  Clear a second-level cache collection region.   doctrine:cache:clear-entity-region      Clear a second-level cache entity region.   doctrine:cache:clear-metadata           Clears all metadata cache for an entity manager   doctrine:cache:clear-query              Clears all query cache for an entity manager   doctrine:cache:clear-query-region       Clear a second-level cache query region.   doctrine:cache:clear-result             Clears result cache for an entity manager   doctrine:database:create                Creates the configured database   doctrine:database:drop                  Drops the configured database   doctrine:database:import                Import SQL file(s) directly to Database.   doctrine:ensure-production-settings     Verify that Doctrine is properly configured for a production environment.   doctrine:generate:crud                  [generate:doctrine:crud] Generates a CRUD based on a Doctrine entity   doctrine:generate:entities              [generate:doctrine:entities] Generates entity classes and method stubs from your mapping information   doctrine:generate:entity                [generate:doctrine:entity] Generates a new Doctrine entity inside a bundle   doctrine:generate:form                  [generate:doctrine:form] Generates a form type class based on a Doctrine entity   doctrine:mapping:convert                [orm:convert:mapping] Convert mapping information between supported formats.   doctrine:mapping:import                 Imports mapping information from an existing database   doctrine:mapping:info                      doctrine:query:dql                      Executes arbitrary DQL directly from the command line.   doctrine:query:sql                      Executes arbitrary SQL directly from the command line.   doctrine:schema:create                  Executes (or dumps) the SQL needed to generate the database schema   doctrine:schema:drop                    Executes (or dumps) the SQL needed to drop the current database schema   doctrine:schema:update                  Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata.   doctrine:schema:validate                Validate the mapping files.  fos   fos:js-routing:debug                    Displays currently exposed routes for an application   fos:js-routing:dump                     Dumps exposed routes to the filesystem  generate   generate:bundle                         Generates a bundle   generate:command                        Generates a console command   generate:controller                     Generates a controller  lint   lint:twig                               Lints a template and outputs encountered errors   lint:xliff                              Lints a XLIFF file and outputs encountered errors   lint:yaml                               Lints a file and outputs encountered errors  router   router:match                            Helps debug routes by simulating a path info match  security   security:check                          Checks security issues in your project dependencies   security:encode-password                Encodes a password.  swiftmailer   swiftmailer:email:send                  Send simple email message   swiftmailer:spool:send                  Sends emails from the spool  translation   translation:update                      Updates the translation file 

I've tried to fix it by running composer require symfony/symfony and composer update but it still doesn't show. Is there anything else that I can try?

Edit below is my php info from php -version

PHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies     with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies     with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans 

EDIT 2

the directory vendor\symfon\symfony\src\Symfony\Bundle\FrameworkBundle\Command exists and contains the following files

AboutCommand.php AbstractConfigCommand.php AssetsInstallCommand.php CacheClearCommand.php CachePoolClearCommand.php CacheWarmupCommand.php ConfigDebugCommand.php ConfigDumpReferenceCommand.php ContainerAwareCommand.php ContainerDebugCommand.php EventDispatcherDebugCommand.php RouterDebugCommand.php RouterMatchCommand.php TranslationDebugCommand.php TranslationUpdateCommand.php WorkflowDumpCommand.php XliffLintCommand.php YamlLintCommand.php 
like image 339
Sarah Richardson Avatar asked Mar 30 '17 11:03

Sarah Richardson


2 Answers

As I mentioned in my comment, in S3.3 the server commands have been moved to their own WebServerBundle. Some editing of AppKernel.php is required to activate the bundle. I suspect that many other developers might run into this once 3.3 is actually released and people try upgrading.

I make no promises but try updating AppKernel.php with:

    if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {         $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();         $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();         $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();          if ('dev' === $this->getEnvironment()) {             $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();             $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();         }     } 

I don't have a good test project to try it on but at least the commands should show up.

And in case anyone is wondering, all I did was to install a fresh development project and poked around a bit.

composer create-project symfony/framework-standard-edition s33 "3.3.*" --stability=dev 

I also found this but it does not mention the need to update AppKernel.php http://symfony.com/blog/new-in-symfony-3-3-webserverbundle

From the upgrade guide: https://github.com/symfony/symfony/blob/3.4/UPGRADE-3.3.md

The server:run, server:start, server:stop and server:status console commands have been moved to a dedicated bundle. Require symfony/web-server-bundle in your composer.json and register Symfony\Bundle\WebServerBundle\WebServerBundle in your AppKernel to use them.

As long as your composer.json has symfony/symfony in it then there is no need to add the web server bundle to it. Just need to adjust the AppKernel file.

like image 121
Cerad Avatar answered Sep 27 '22 00:09

Cerad


run this command before starting the server.

composer require symfony/web-server-bundle --dev 
like image 28
Sarath Kumar Avatar answered Sep 24 '22 00:09

Sarath Kumar