Wenn ich den Server mit php bin/console server:run
starte, erhalte ich die folgende Fehlermeldung .There are no commands defined in the "server" namespace.
Wenn ich den Befehl php bin/console
ausführe, erhalte ich folgende Ausgabe. Was zeigt keinen Server: Befehle.
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
Ich habe versucht, das Problem zu beheben, indem Sie composer require symfony/symfony
und composer update
ausführen, aber es wird immer noch nichts angezeigt. Gibt es noch etwas, das ich ausprobieren kann?
Edit unten ist meine PHP-Info von 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
BEARBEITEN 2
das Verzeichnis vendor\symfon\symfony\src\Symfony\Bundle\FrameworkBundle\Command
ist vorhanden und enthält die folgenden Dateien
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
Wie in meinem Kommentar erwähnt, wurden die Serverbefehle in S3.3 in ein eigenes WebServerBundle verschoben. Einige Änderungen an AppKernel.php sind erforderlich, um das Bundle zu aktivieren. Ich vermute, dass viele andere Entwickler darauf stoßen könnten, wenn 3.3 veröffentlicht wird und die Leute versuchen, ein Upgrade durchzuführen.
Ich mache keine Versprechungen, versuche aber, AppKernel.php zu aktualisieren mit:
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();
}
}
Ich habe kein gutes Testprojekt, um es anzuprobieren, aber zumindest sollten die Befehle angezeigt werden.
Und für den Fall, dass sich jemand wundert, war alles, was ich getan habe, ein neues Entwicklungsprojekt zu installieren und ein bisschen herumzustöbern.
composer create-project symfony/framework-standard-edition s33 "3.3.*" --stability=dev
Ich habe das auch gefunden, aber es erwähnt nicht die Notwendigkeit, AppKernel.php zu aktualisieren http://symfony.com/blog/new-in-symfony-3-3-webserverbundle
Im Upgrade-Handbuch: https://github.com/symfony/symfony/blob/3.4/UPGRADE-3.3.md
Die Befehle server: run, server: start, server: stop und server: status console wurden in ein dediziertes Bundle verschoben. Benötigen Sie symfony/web-server-bundle in Ihrer composer.json und registrieren Sie Symfony\Bundle\WebServerBundle\WebServerBundle in Ihrem AppKernel, um sie zu verwenden.
Solange in Ihrer composer.json symfony/symfony enthalten ist, muss das Webserver-Bundle nicht hinzugefügt werden. Müssen nur die AppKernel-Datei anpassen.
sie müssen diesen Befehl ausführen:
composer req webserver
führen Sie diesen Befehl aus, bevor Sie den Server starten.
composer require symfony/web-server-bundle --dev
Art:
pHP-Bin/Konsole
Sie sehen alle erlaubten Befehle.
Wenn Sie die Serverbefehle verwenden möchten, müssen Sie sie in Ihrem Projekt eingeben:
komponist erfordert Server --dev
führe es nochmals aus
pHP-Bin/Konsole
und Sie sollten es sehen und verwenden können.
Stellen Sie sicher, dass der korrekte APP_ENV in der Umgebung festgelegt ist. In meinem Fall war dies kritisch.
Wie @Barh sagt, müssen Sie APP_ENV=dev
in Ihrer .env
-Datei haben.
Andernfalls wird Symfony 4 nicht im Dev-Modus ausgeführt.
ein Upgrade von symfony <3.3 auf symfony> 3.3 führt zu diesem Problem, da der Webserver in ein separates Bundle extrahiert wurde.
daher benötigen Sie dieses Bundle:
composer require symfony/web-server-bundle --dev
und in deinem AppKernel
if ('dev' === $this->getEnvironment()) {
$bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
}
für weitere Informationen: hier überprüfen
Ich hatte das gleiche Problem mit Symfony 4, nachdem ich .env
stoßen. Einige Befehle sind auf prod nicht sichtbar.
Sie müssen entweder zu dev wechseln oder: bin/console --env=dev
Und so starten Sie den Server: bin/console --env=dev server:run 0.0.0.0:8005
Entfernen Sie die Datei env.local, falls vorhanden.
Reson: Weil server: run in der Produktionsumgebung nicht ausgeführt wird