# emacs-symfony-cli
Status: Pre-Alpha

This Emacs package offers an interface of for Symfony development, inspired by the functionality and user experience of Magit.
It aims to streamline usage of Symfony cli making it easier to interact with Symfony projects using Emacs.

## Features
- List all Symfony console actions and their options [planned]
- Execute actions and see output buffers with links to the classes for quick jumps [planned]
- Debug routes / service containers and use other debug symfony actions [planned]

## How to start contributing
You will need PHP, composer and Symfony installation.
[Symfony PHP extension

- `fossil clone # change username to your login in fossil
- `sudo apt install php composer git `
- `git clone
- `cd demo`
- `sudo apt install php-sqlite3 php-tokenizer php-xml php-opcache` # install symfony required php extensions
- `composer install`
- # The screen that we need to wrap

## Example of output
```

Symfony 7.2.3 (env: dev, debug: true)

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
      --silent          Do not output any message
  -q, --quiet           Only errors are displayed. All other output is suppressed
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -e, --env=ENV         The Environment name. [default: "dev"]
      --no-debug        Switch off debug mode.
      --profile         Enables profiling (requires debug).
  -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                                      Display information about the current project
  completion                                 Dump the shell completion script
  help                                       Display help for a command
  list                                       List commands
 app
  app:add-user                               Creates users and stores them in the database
  app:delete-user                            Deletes users from the database
  app:list-users                             [app:users] Lists all the existing users
 asset-map
  asset-map:compile                          Compile all mapped assets and writes them to the final public output directory
 assets
  assets:install                             Install bundle's web assets under a public directory
 cache
  cache:clear                                Clear the cache
  cache:pool:clear                           Clear cache pools
  cache:pool:delete                          Delete an item from a cache pool
  cache:pool:invalidate-tags                 Invalidate cache tags for all or a specific pool
  cache:pool:list                            List available cache pools
  cache:pool:prune                           Prune cache pools
  cache:warmup                               Warm up an empty cache
 config
  config:dump-reference                      Dump the default configuration for an extension
 dbal
  dbal:run-sql                               Executes arbitrary SQL directly from the command line.
 debug
  debug:asset-map                            Output all mapped assets
  debug:autowiring                           List classes/interfaces you can use for autowiring
  debug:config                               Dump the current configuration for an extension
  debug:container                            Display current services for an application
  debug:dotenv                               List all dotenv files with variables and values
  debug:event-dispatcher                     Display configured listeners for an application
  debug:firewall                             Display information about your security firewall(s)
  debug:form                                 Display form type information
  debug:router                               Display current routes for an application
  debug:translation                          Display translation messages information
  debug:twig                                 Show a list of twig functions, filters, globals and tests
  debug:twig-component                       Display components and them usages for an application
  debug:validator                            Display validation constraints for classes
 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              Clear all metadata cache of the various cache drivers
  doctrine:cache:clear-query                 Clear all query cache of the various cache drivers
  doctrine:cache:clear-query-region          Clear a second-level cache query region

  doctrine:cache:clear-result                Clear all result cache of the various cache drivers
  doctrine:database:create                   Creates the configured database
  doctrine:database:drop                     Drops the configured database
  doctrine:fixtures:load                     Load data fixtures to your database
  doctrine:mapping:info                      Show basic information about all mapped entities
  doctrine:migrations:current                Outputs the current version
  doctrine:migrations:diff                   Generate a migration by comparing your current database to your mapping information.
  doctrine:migrations:dump-schema            Dump the schema for your database to a migration.
  doctrine:migrations:execute                Execute one or more migration versions up or down manually.
  doctrine:migrations:generate               Generate a blank migration class.
  doctrine:migrations:latest                 Outputs the latest version
  doctrine:migrations:list                   Display a list of all available migrations and their status.
  doctrine:migrations:migrate                Execute a migration to a specified version or the latest available version.
  doctrine:migrations:rollup                 Rollup migrations by deleting all tracked versions and insert the one version that exists.
  doctrine:migrations:status                 View the status of a set of migrations.
  doctrine:migrations:sync-metadata-storage  Ensures that the metadata storage is at the latest version.
  doctrine:migrations:up-to-date             Tells you if your schema is up-to-date.
  doctrine:migrations:version                Manually add and delete migration versions from the version table.
  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                     Processes the schema and either create it directly on EntityManager Storage Connection or generate the SQL output
  doctrine:schema:drop                       Drop the complete database schema of EntityManager Storage Connection or generate the corresponding SQL output
  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
 importmap
  importmap:audit                            Check for security vulnerability advisories for dependencies
  importmap:install                          Download all assets that should be downloaded
  importmap:outdated                         List outdated JavaScript packages and their latest versions
  importmap:remove                           Remove JavaScript packages
  importmap:require                          Require JavaScript packages
  importmap:update                           Update JavaScript packages to their latest versions
 lint
  lint:container                             Ensure that arguments injected into services match type declarations
  lint:translations                          Lint translations files syntax and outputs encountered errors
  lint:twig                                  Lint a Twig template and outputs encountered errors
  lint:xliff                                 Lint an XLIFF file and outputs encountered errors
  lint:yaml                                  Lint a YAML file and outputs encountered errors
 mailer
  mailer:test                                Test Mailer transports by sending an email
 make
  make:auth                                  Create a Guard authenticator of different flavors
  make:command                               Create a new console command class
  make:controller                            Create a new controller class
  make:crud                                  Create CRUD for Doctrine entity class
  make:docker:database                       Add a database container to your compose.yaml file

  make:entity                                Create or update a Doctrine entity class, and optionally an API Platform resource
  make:fixtures                              Create a new class to load Doctrine fixtures
  make:form                                  Create a new form class
  make:listener                              [make:subscriber] Creates a new event subscriber class or a new event listener class
  make:message                               Create a new message and handler
  make:messenger-middleware                  Create a new messenger middleware
  make:migration                             Create a new migration based on database changes
  make:registration-form                     Create a new registration form system
  make:reset-password                        Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle
  make:schedule                              Create a scheduler component
  make:security:custom                       Create a custom security authenticator.
  make:security:form-login                   Generate the code needed for the form_login authenticator
  make:serializer:encoder                    Create a new serializer encoder class
  make:serializer:normalizer                 Create a new serializer normalizer class
  make:stimulus-controller                   Create a new Stimulus controller
  make:test                                  [make:unit-test|make:functional-test] Create a new test class
  make:twig-component                        Create a twig (or live) component
  make:twig-extension                        Create a new Twig extension with its runtime class
  make:user                                  Create a new security user class
  make:validator                             Create a new validator and constraint class
  make:voter                                 Create a new security voter class
  make:webhook                               Create a new Webhook
 router
  router:match                               Help debug routes by simulating a path info match
  ...
```