Symfony Cheat Sheet - 快速参考指南,收录常用语法、命令与实践。
curl -sS https://get.symfony.com/cli/installer | bash
{.marker-round}
| Command | Description |
|---|---|
symfony check:requirements | Check system requirements for running Symfony |
symfony version | Display the Symfony CLI version |
symfony help | Display all available commands |
symfony help <cmd> | Display help for a specific command |
symfony server:start | Start server |
symfony server:stop | Stop server |
symfony serve -d | Run Symfony server in background |
| Command | Description |
|---|---|
symfony new <dir> | Create a new Symfony project in <dir> |
symfony new my_project_directory --version="7.3.x" --webapp | Create a new web application |
symfony new my_project_directory --version="7.3.x" | Create a new API application |
composer create-project symfony/skeleton <dir> | Create a new Symfony project using Composer |
Doc Symfony creating app {.link-arrow}
| CMD | Description |
|---|---|
bin/console | List all available commands |
bin/console <namespace> | List all commands in a specific namespace or bundle |
bin/console <cmd> | Run a specific command |
bin/console help <cmd> | Show help for a specific command |
bin/console --env=<env> | Run console in environment: dev, test, or prod |
bin/console cache:clear | Clear the cache |
| CMD | Description |
|---|---|
bin/console lint:container | Check service arguments for type mismatches |
bin/console lint:twig <dir> | Lint Twig templates for syntax errors |
bin/console lint:yaml <dir> | Lint YAML files for syntax errors |
bin/console lint:xliff <dir> | Lint XLIFF translation files |
| CMD | Description |
|---|---|
bin/console debug:asset-map | Show all mapped assets |
bin/console debug:autowiring | List all autowireable services |
bin/console debug:config <bundle> | Dump configuration of a bundle |
bin/console debug:container | List all public services |
bin/console debug:container <service> | Get info about a specific service |
bin/console debug:container --env-vars | Show environment variables in container |
bin/console debug:container --tags | List tagged public services |
bin/console debug:container --tag=<t> | List services with a specific tag |
bin/console debug:dotenv | Display parsed dotenv values |
bin/console debug:dotenv <search> | Show dotenv values matching a search |
bin/console debug:event-dispatcher | List all event listeners |
bin/console debug:firewall <name> | Show details of a firewall |
bin/console debug:form | Show form type information |
bin/console debug:messenger | List dispatchable messages |
bin/console debug:router | List all registered routes |
bin/console debug:router <name> | Get info about a specific route |
bin/console debug:translation <loc> | Show messages for a locale |
| CMD | Description |
|---|---|
bin/console asset-map:compile | Compile assets for production |
bin/console importmap:require <pkg> | Add an NPM package to the import map |
bin/console importmap:install | Download all importmap packages |
bin/console importmap:update | Update all importmap packages |
bin/console importmap:remove <pkg> | Remove a package from import map |
bin/console importmap:outdated | List outdated importmap packages |
bin/console importmap:audit | Check dependencies for vulnerabilities |
# MySQL
DATABASE_URL="mysql://username:password@127.0.0.1:3306/db_name?serverVersion=X.Y.Z&charset=utf8mb4"
# MariaDB
DATABASE_URL="mysql://username:password@127.0.0.1:3307/db_name?serverVersion=X.Y.Z-MariaDB&charset=utf8mb4"
# PostgreSQL
DATABASE_URL="postgresql://username:password@127.0.0.1:5432/db_name?serverVersion=X.Y.Z&charset=utf8"
username : user of DBMS <br>
password : password of DBMS <br>
127.0.0.1: 3306 MySQL 3307 MariaDB 5432 PostgreSQL <br>
db_name : name of data base <br>
serverVersion : to know server version <code>SHOW GLOBAL VARIABLE LIKE</code> %version% in your DBMS
| CMD | Description |
|---|---|
bin/console doctrine:database:createor php bin/console d:d:c | Create the configured database |
bin/console doctrine:database:drop or php bin/console d:d:d | Drop the configured database |
bin/console doctrine:mapping:info | List mapped entities |
bin/console doctrine:schema:update --dump-sql | Generate SQL to sync DB schema |
bin/console doctrine:schema:update --force | Sync DB schema with mapping info |
bin/console doctrine:schema:validate | Validate the mapping files |
bin/console doctrine:query:sql <sql cmd> | Run a raw SQL query |
bin/console doctrine:query:dql <dql cmd> | Run a DQL query |
bin/console doctrine:fixtures:load | Load data fixtures into the database |
You can run <code>php bin/console doctrine:schema:drop --force && php bin/console doctrine:schema:update --force && php bin/console doctrine:fixtures:load -n</code> to Load data fixtures & reset sequence to 0
Doc Symfony Database {.link-arrow}
| CMD | Description |
|---|---|
bin/console make:migration | Generate a new migration based on schema changes |
bin/console doctrine:migration:generate | Generate a new migration based on schema changes |
bin/console doctrine:migration:migrate or php bin/console d:m:m | Execute pending migrations to update the database |
bin/console doctrine:migration:status | Show status of migrations (pending, executed) |
bin/console doctrine:migration:diff | Compare current schema with the database and generate migration SQL |
| Command | Description |
|---|---|
bin/console list make | List all make commands available |
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:functional-test | Create a new test 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:subscriber | Creates a new event subscriber class or a new event listener class |
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:unit-test | Create a new test 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 |
Doc Symfony Maker Bundle {.link-arrow}
use Symfony\Component\Routing\Attribute\Route;
| Attribute | Description |
|---|---|
#[Route('/path')] | Define a route for a controller method |
#[Route('/path', name: 'name')] | Define a named route for a method |
#[Route('/path', methods: ['GET'])] | Define allowed HTTP methods |
#[Route('/blog/{slug}')] | Define a route with a parameter |
#[Route('/page/{page}', requirements: ['page' => '\d+'])] | Define a route with a parameter constraint |
#[Route(path: ['en' => '/about-us', 'nl' => '/over-ons'], name: 'about')] | Define localized routes |
Doc Symfony Route Parameters {.link-arrow}
| Method | Description |
|---|---|
$this->render('template.html') | Returns a Response with the rendered template |
$this->redirectToRoute('homepage') | Returns a RedirectResponse to a named route |
$this->redirectToRoute('name', ['param' => 'value']) | Returns a redirect to a route with parameters |
$this->redirectToRoute('name', [], 301) | Returns a RedirectResponse with status code |
$this->redirect('http://example.com') | Returns a RedirectResponse to an external URL |
$this->createNotFoundException($msg) | Returns a NotFoundHttpException |
$this->createForm(FormType::class, $data) | Creates a new Form instance based on the type |
| Method | Description |
|---|---|
$form->handleRequest($request) | Handle a form submission |
$form->isSubmitted() | Check if the form was submitted |
$form->isValid() | Check if the form is valid |
| Type | Description |
|---|---|
TextType | A basic text input field |
TextareaType | A multi-line textarea field |
EmailType | An email field (<input type="email">) |
PasswordType | A password field |
SearchType | A search field |
UrlType | A URL field (<input type="url">) |
TelType | A tel (phone number) input field |
UuidType | A UUID field |
| Type | Description |
|---|---|
IntegerType | A number field for integers |
MoneyType | A money field, with a specifiable currency |
NumberType | A number field |
PercentType | A number field for percentages |
RangeType | A range input field (slider) |
| Type | Description |
|---|---|
ChoiceType | Field for selecting one or more options |
EnumType | Choose from PHP enum cases |
EntityType | Choose from a Doctrine entity |
CountryType | Choose a country |
LanguageType | Choose a language |
LocaleType | Choose a locale |
TimezoneType | Choose a timezone |
CurrencyType | Choose a currency |
| Type | Description |
|---|---|
CropperType | A Cropper.js image cropper field |
DropzoneType | A Dropzone file upload field |
| Type | Description |
|---|---|
DateType | A date field |
DateIntervalType | A date interval field |
DateTimeType | A date and time field |
TimeType | A time field |
BirthdayType | A date field for birthdays |
WeekType | Select a year and week |
| Type | Description |
|---|---|
CheckboxType | A single checkbox field |
FileType | A file upload field |
RadioType | A radio button field |
HiddenType | A hidden field |
| Type | Description |
|---|---|
CollectionType | A group of fields that can be added or removed |
RepeatedType | A field that is repeated (e.g., password confirmation) |
| Attribute | Description |
|---|---|
#[Assert\NotBlank] | Value is not an empty string/array, false or null |
#[Assert\Blank] | Value is an empty string or null |
#[Assert\NotNull] | Value is not strictly equal to null |
#[Assert\IsNull] | Value is exactly equal to null |
#[Assert\Type('string')] | Value is of a specific type |
| Attribute | Description |
|---|---|
#[Assert\<Not>EqualTo('Foo')] | Value is (not) equal to another value |
#[Assert\<Not>IdenticalTo('Foo')] | Value is (not) identical to another value |
#[Assert\LessThan<OrEqual>(5)] | Value is less than (or equal to) another value |
#[Assert\GreaterThan<OrEqual>(5)] | Value is greater than (or equal to) another value |
#[Assert\Range(min: 2, max: 10)] | Number or DateTime object is within a range |
| Attribute | Description |
|---|---|
#[Assert\Length(2, 10)] | String is between <min> and <max> characters long |
#[Assert\Email] | String is a valid email address |
#[Assert\Url] | String is a valid URL |
#[Assert\Hostname] | String is a valid hostname |
#[Assert\Ip] | String is a valid IP address |
#[Assert\NoSuspiciousCharacters] | String does not contain spoofing characters |
#[Assert\Uuid] | String is a valid UUID |
#[Assert\CssColor] | String is a valid CSS color |
| Attribute | Description |
|---|---|
#[Assert\Date] | Value is a valid date string in Y-m-d format |
#[Assert\DateTime] | Value is a valid datetime in the specified format |
#[Assert\Time] | Value is a valid time string in H:i:s format |
#[Assert\Timezone] | Value is a valid timezone identifier |
| Attribute | Description |
|---|---|
#[Assert\UserPassword] | String is the authenticated user's password |
#[Assert\NotCompromisedPassword] | Password is not found in any data breaches |
#[Assert\PasswordStrength] | Password has sufficient entropy |
| Attribute | Description |
|---|---|
#[Assert\Bic] | Value is a valid Business Identifier Code (BIC) |
#[Assert\CardScheme] | Value is a valid credit card number |
#[Assert\Currency] | Value is a valid 3-letter ISO 4217 currency code |
#[Assert\Luhn] | Value passes the Luhn algorithm |
#[Assert\Iban] | Value is a valid IBAN |
#[Assert\Isbn] | Value is a valid ISBN |
| Attribute | Description |
|---|---|
#[Assert\File] | Value is a valid file path or File object |
#[Assert\Image] | Same as File, but only accepts image MIME types |
| Attribute | Description |
|---|---|
#[Assert\Positive<OrZero>] | Value is positive (or zero) |
#[Assert\Negative<OrZero>] | Value is negative (or zero) |
| Attribute | Description |
|---|---|
#[Assert\Choice(['A', 'B', 'C'])] | Value is one of the specified choices |
#[Assert\Country] | Value is a valid ISO 3166-1 country code |
#[Assert\Language] | Value is a valid two-letter language code |
#[Assert\Locale] | Value is a valid locale identifier |
地址
Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)Level 2, 171 La Trobe St, Melbourne VIC 3000四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号Business Hub, 155 Waymouth St, Adelaide SA 5000Disclaimer
JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.
匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议
© 2017-2025 JR Academy Pty Ltd. All rights reserved.
ABN 26621887572