提交 95278da4 编写于 作者: W wizardforcel

2020-06-20 14:52:55

上级 187e3cd2
...@@ -12,7 +12,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -12,7 +12,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
在下面的示例中,我们有一个简单的表单,其中有一个输入框用于输入用户名。 如果用户输入的名称无效(空或仅包含空格),则应用将在表单上方显示一个闪烁通知。 在下面的示例中,我们有一个简单的表单,其中有一个输入框用于输入用户名。 如果用户输入的名称无效(空或仅包含空格),则应用将在表单上方显示一个闪烁通知。
**注意:**在我们的应用中,我们有一个 GET 表单。 GET 方法被认为是[安全](https://developer.mozilla.org/en-US/docs/Glossary/safe),因此我们未实现 CSRF 保护。 [Symfony CSRF 教程](/symfony/csrf/)涵盖了 Symfony 中的 CSRF 保护。 **注意**在我们的应用中,我们有一个 GET 表单。 GET 方法被认为是[安全](https://developer.mozilla.org/en-US/docs/Glossary/safe),因此我们未实现 CSRF 保护。 [Symfony CSRF 教程](/symfony/csrf/)涵盖了 Symfony 中的 CSRF 保护。
```php ```php
$ composer create-project symfony/skeleton flashmsg $ composer create-project symfony/skeleton flashmsg
...@@ -40,7 +40,7 @@ $ composer require server maker --dev ...@@ -40,7 +40,7 @@ $ composer require server maker --dev
``` ```
我们安装了开发 Web 服务器和 Symfony maker 我们安装了开发 Web 服务器和 Symfony `maker`
`src/Service/Validate.php` `src/Service/Validate.php`
...@@ -67,7 +67,7 @@ class Validate ...@@ -67,7 +67,7 @@ class Validate
`Validate`服务检查提供的字符串是否为空或仅包含空格。 `Validate`服务检查提供的字符串是否为空或仅包含空格。
**注意:**在生产应用中,我们使用一些验证库,例如 Symfony 的`symfony/validator`或 PHP Rackit 或 Respect。 **注意**在生产应用中,我们使用一些验证库,例如 Symfony 的`symfony/validator`或 PHP Rackit 或 Respect。
```php ```php
$ php bin/console make:controller FormController $ php bin/console make:controller FormController
...@@ -247,4 +247,4 @@ $ php bin/console server:run ...@@ -247,4 +247,4 @@ $ php bin/console server:run
在本教程中,我们在 Symfony 中处理了 Flash 消息。 在本教程中,我们在 Symfony 中处理了 Flash 消息。
您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Symfony 验证教程](/symfony/validation/)[Symfony 服务教程](/symfony/service/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)或列出[所有 Symfony](/all/#symfony) 教程。 您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Symfony 验证教程](/symfony/validation/)[Symfony 服务教程](/symfony/service/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)或列出[所有 Symfony 教程](/all/#symfony)
\ No newline at end of file \ No newline at end of file
...@@ -8,9 +8,9 @@ Symfony 邮件教程显示了如何在 Symfony 中发送简单邮件。 Symfony ...@@ -8,9 +8,9 @@ Symfony 邮件教程显示了如何在 Symfony 中发送简单邮件。 Symfony
Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架。 Symfony 是带有一些商业附加组件的免费软件。 Symfony 的灵感来自 Ruby on Rails,Django 和 Spring Framework。 Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架。 Symfony 是带有一些商业附加组件的免费软件。 Symfony 的灵感来自 Ruby on Rails,Django 和 Spring Framework。
## `SwiftMailer` ## SwiftMailer
`SwiftMailer`是免费的功能丰富的 PHP 邮件程序。 Symfony 通过其`symfony/swiftmailer-bundle`集成了 SwiftMailer。 SwiftMailer 是免费的功能丰富的 PHP 邮件程序。 Symfony 通过其`symfony/swiftmailer-bundle`集成了 SwiftMailer。
## Symfony 发送邮件示例 ## Symfony 发送邮件示例
...@@ -18,7 +18,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -18,7 +18,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
### 建立应用 ### 建立应用
我们首先使用 composer 建立应用。 我们首先使用`composer`建立应用。
```php ```php
$ composer create-project symfony/skeleton mail $ composer create-project symfony/skeleton mail
...@@ -112,7 +112,7 @@ class TestMailController extends AbstractController ...@@ -112,7 +112,7 @@ class TestMailController extends AbstractController
``` ```
`TestMailController's` `index()`方法中,我们发送电子邮件。 请注意,发送电子邮件的代码不应在生产应用的控制器中。 它应该在某种服务。 但是出于简单原因,我们将其保留在此处。 `TestMailController``index()`方法中,我们发送电子邮件。 请注意,发送电子邮件的代码不应在生产应用的控制器中。 它应该在某种服务。 但是出于简单原因,我们将其保留在此处。
```php ```php
public function index(Request $request, \Swift_Mailer $mailer, public function index(Request $request, \Swift_Mailer $mailer,
...@@ -137,7 +137,7 @@ $message->setTo('example2@example.com'); ...@@ -137,7 +137,7 @@ $message->setTo('example2@example.com');
``` ```
创建了`Swift_Message`from 和 to 电子邮件值经过硬编码,以简化此示例。 您可以删除硬编码的值作为练习。 (将源电子邮件设置为参数,从表单中获取目标电子邮件。) 创建了`Swift_Message``from``to`电子邮件值经过硬编码,以简化此示例。 您可以删除硬编码的值作为练习。 (将源电子邮件设置为参数,从表单中获取目标电子邮件。)
```php ```php
$message->setBody( $message->setBody(
...@@ -347,4 +347,4 @@ flash.addEventListener('click', function () { ...@@ -347,4 +347,4 @@ flash.addEventListener('click', function () {
您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Symfony 服务教程](/symfony/service/)[Symfony 请求教程](/symfony/request/)[Symfony Flash 消息](/symfony/flash/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/) 您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Symfony 服务教程](/symfony/service/)[Symfony 请求教程](/symfony/request/)[Symfony Flash 消息](/symfony/flash/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)
请参阅 Mailtrap 的[如何以示例](https://blog.mailtrap.io/send-emails-in-symfony/)的形式在 Symfony 中发送电子邮件。 请参阅 Mailtrap 的[如何在 Symfony 中发送电子邮件的示例](https://blog.mailtrap.io/send-emails-in-symfony/)
\ No newline at end of file \ No newline at end of file
...@@ -18,7 +18,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -18,7 +18,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
### 建立应用 ### 建立应用
我们首先使用 composer 建立应用。 我们首先使用`composer`建立应用。
```php ```php
$ composer create-project symfony\skeleton formkeepvals $ composer create-project symfony\skeleton formkeepvals
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/symfony/routeannotation/](http://zetcode.com/symfony/routeannotation/) > 原文: [http://zetcode.com/symfony/routeannotation/](http://zetcode.com/symfony/routeannotation/)
Symfony @Route 注解教程展示了如何在 Symfony 中使用@Route 注解创建路由。 Symfony `@Route`注解教程展示了如何在 Symfony 中使用`@Route`注解创建路由。
## Symfony ## Symfony
...@@ -10,7 +10,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -10,7 +10,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
## `@Route`注解 ## `@Route`注解
路由是从 URL 路径到控制器的映射。 例如,`/about` URL 映射到`MyController's` `about()`方法。 路由是从 URL 路径到控制器的映射。 例如,`/about` URL 映射到`MyController``about()`方法。
`@Route`注解用于创建路径。 其他选项是 XML 和 YAML 配置文件以及 PHP 代码。 该注解用于文档字符串中。 `@Route`注解用于创建路径。 其他选项是 XML 和 YAML 配置文件以及 PHP 代码。 该注解用于文档字符串中。
......
...@@ -10,7 +10,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -10,7 +10,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
## 路由 ## 路由
路由是从 URL 路径到控制器的映射。 例如,`/about` URL 映射到`MyController's` `about()`方法。 路由是从 URL 路径到控制器的映射。 例如,`/about` URL 映射到`MyController``about()`方法。
Symfony 允许使用注释,XML,YAML 和 PHP 创建路由。 Symfony 允许使用注释,XML,YAML 和 PHP 创建路由。
...@@ -184,4 +184,4 @@ This is Contacts page ...@@ -184,4 +184,4 @@ This is Contacts page
在本教程中,我们使用注释,XML,YAML 配置和 PHP 代码在 Symfony 中创建了路由。 在本教程中,我们使用注释,XML,YAML 配置和 PHP 代码在 Symfony 中创建了路由。
您可能也对以下相关教程感兴趣: [Symfony @Route 注释教程](/symfony/routeannotation/)[Symfony 简介](/symfony/intro/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/) 您可能也对以下相关教程感兴趣: [Symfony `@Route`注释教程](/symfony/routeannotation/)[Symfony 简介](/symfony/intro/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)
\ No newline at end of file \ No newline at end of file
...@@ -10,11 +10,11 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架 ...@@ -10,11 +10,11 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
## Symfony 控制台组件 ## Symfony 控制台组件
Symfony 控制台组件使我们可以创建命令行命令。 控制台命令可用于创建 cronjob,导入,批处理作业或某些支持性任务。 Symfony 控制台命令可以在 Symfony 控制台应用或 Web 应用中使用。 在本教程中,我们将为控制台应用创建命令。 Symfony 控制台组件使我们可以创建命令行命令。 控制台命令可用于创建 CronJob,导入,批处理作业或某些支持性任务。 Symfony 控制台命令可以在 Symfony 控制台应用或 Web 应用中使用。 在本教程中,我们将为控制台应用创建命令。
## Symfony 控制台命令示例 ## Symfony 控制台命令示例
在以下示例中,我们使用 Symfony Console 组件创建 Symfony 控制台应用。 在以下示例中,我们使用 Symfony 控制台组件创建 Symfony 控制台应用。
```php ```php
$ mkdir commands $ mkdir commands
...@@ -464,7 +464,7 @@ $ php application.php books ...@@ -464,7 +464,7 @@ $ php application.php books
``` ```
我们运行 books 命令。 我们运行`books`命令。
```php ```php
$ php application.php time $ php application.php time
...@@ -472,7 +472,7 @@ Current date and time: 2018-12-20T23:27:16+01:00 ...@@ -472,7 +472,7 @@ Current date and time: 2018-12-20T23:27:16+01:00
``` ```
我们运行时间命令。 我们运行`time`命令。
在本教程中,我们在 Symfony 控制台应用中创建了五个控制台命令。 在本教程中,我们在 Symfony 控制台应用中创建了五个控制台命令。
...@@ -483,7 +483,7 @@ Hello Peter! ...@@ -483,7 +483,7 @@ Hello Peter!
``` ```
我们运行 ask 命令。 我们运行`ask`命令。
在本教程中,我们在 Symfony 控制台应用中创建了五个控制台命令。 在本教程中,我们在 Symfony 控制台应用中创建了五个控制台命令。
......
...@@ -49,7 +49,7 @@ $ composer req server maker --dev ...@@ -49,7 +49,7 @@ $ composer req server maker --dev
``` ```
我们安装了开发 Web 服务器和 Symfony maker 我们安装了开发 Web 服务器和 Symfony `maker`
`countries_mysql.sql` `countries_mysql.sql`
...@@ -149,7 +149,7 @@ public function index(DataService $dserv) ...@@ -149,7 +149,7 @@ public function index(DataService $dserv)
通过参数注入创建`DataService` 通过参数注入创建`DataService`
**注意:**为简单起见,我们已将数据库访问代码放置在服务类中。 生产应用中还有另一层:存储库。 数据库访问代码放置在存储库类中,该存储库类从服务类中调用。 **注意**为简单起见,我们已将数据库访问代码放置在服务类中。 生产应用中还有另一层:存储库。 数据库访问代码放置在存储库类中,该存储库类从服务类中调用。
`src/Service/DataService.php` `src/Service/DataService.php`
...@@ -213,7 +213,7 @@ public function findAll() { ...@@ -213,7 +213,7 @@ public function findAll() {
``` ```
我们使用 DBAL QueryBuilder 从表中获取所有行。 Doctrine DBAL QueryBuilder 提供了一个方便,流畅的界面来创建和运行数据库查询。 我们使用 DBAL `QueryBuilder`从表中获取所有行。 Doctrine DBAL `QueryBuilder`提供了一个方便,流畅的界面来创建和运行数据库查询。
```php ```php
$ php bin/console server:run $ php bin/console server:run
...@@ -244,4 +244,4 @@ $ curl localhost:8000/data ...@@ -244,4 +244,4 @@ $ curl localhost:8000/data
在本教程中,我们在 Symfony 中创建了一个简单的服务。 该服务从数据库中获取数据,并在 Symfony 控制器中自动连线。 在本教程中,我们在 Symfony 中创建了一个简单的服务。 该服务从数据库中获取数据,并在 Symfony 控制器中自动连线。
您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Doctrine DBAL QueryBuilder 教程](/doctrine/querybuilder/)[Symfony DBAL 教程](/symfony/dbal/)[Symfony 上传文件教程[](/symfony/uploadfile/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)或列出[所有 Symfony 教程](/all/#symfony/) 您可能也对以下相关教程感兴趣: [Symfony 简介](/symfony/intro/)[Doctrine DBAL `QueryBuilder`教程](/doctrine/querybuilder/)[Symfony DBAL 教程](/symfony/dbal/)[Symfony 上传文件教程](/symfony/uploadfile/)[Symfony 表单教程](/symfony/form/)[PHP 教程](/lang/php/)或列出[所有 Symfony 教程](/all/#symfony/)
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ Symfony 验证教程展示了如何在 Symfony 应用中验证数据。 在本 ...@@ -6,7 +6,7 @@ Symfony 验证教程展示了如何在 Symfony 应用中验证数据。 在本
## Symfony ## Symfony
Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架。 Symfony 于 2005 年发布为免费软件。Symfony 的原始作者是 Fabien Potencier。 Symfony 的灵感来自 Ruby on Rails,Django 和 Spring Framework Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架。 Symfony 于 2005 年发布为免费软件。Symfony 的原始作者是 Fabien Potencier。 Symfony 的灵感来自 Ruby on Rails,Django 和 Spring 框架
## Symfony 验证 ## Symfony 验证
...@@ -172,7 +172,7 @@ class FormController extends AbstractController ...@@ -172,7 +172,7 @@ class FormController extends AbstractController
`FormController`中,我们检查 CSRF 令牌,验证表单输入值,并将响应发送回客户端。 `FormController`中,我们检查 CSRF 令牌,验证表单输入值,并将响应发送回客户端。
**注意:**为简单起见,我们将验证代码放入控制器中。 在生产应用中,最好将此类代码放在单独的服务类中。 **注意**为简单起见,我们将验证代码放入控制器中。 在生产应用中,最好将此类代码放在单独的服务类中。
```php ```php
public function index(Request $request, ValidatorInterface $validator, public function index(Request $request, ValidatorInterface $validator,
...@@ -246,7 +246,7 @@ foreach ($violations as $violation) { ...@@ -246,7 +246,7 @@ foreach ($violations as $violation) {
``` ```
Symfony PropertyAccess 用于在将违规消息发送到模板之前对其进行处理。 `ConstraintViolationList`转换为 PHP 数组,其中的键是表单字段,值是错误消息。 稍后使用`for`指令在 Twig 中处理该数组。 Symfony `PropertyAccess`用于在将违规消息发送到模板之前对其进行处理。 `ConstraintViolationList`转换为 PHP 数组,其中的键是表单字段,值是错误消息。 稍后使用`for`指令在 Twig 中处理该数组。
```php ```php
return $this->render('form/violations.html.twig', return $this->render('form/violations.html.twig',
...@@ -254,7 +254,7 @@ return $this->render('form/violations.html.twig', ...@@ -254,7 +254,7 @@ return $this->render('form/violations.html.twig',
``` ```
我们在单独的页面中呈现错误消息。 这通常是使用 Flash 消息完成的。 看看 [Symfony 保持表单值教程](/symfony/keepformvalues/)如何使用闪烁 我们在单独的页面中呈现错误消息。 这通常是使用 Flash 消息完成的。 看看 [Symfony 保持表单值教程](/symfony/keepformvalues/)如何使用 Flash
```php ```php
} else { } else {
......
...@@ -10,9 +10,9 @@ Symfony 翻译教程显示了如何在 Symfony 中使用不同的语言。 ...@@ -10,9 +10,9 @@ Symfony 翻译教程显示了如何在 Symfony 中使用不同的语言。
对于国际化和本地化,Symfony 包含用于这些任务的`symfony/translation`程序包。 对于国际化和本地化,Symfony 包含用于这些任务的`symfony/translation`程序包。
翻原文件具有以下强制格式: `domain.locale.loader``domain`是将消息组织成组的一种可选方式。 默认域为`messages``locale`定义翻原文件的语言环境; 例如 zh,sk 或 de`loader`是一种加载和解析文件的方式。 例如 xlf,php 或 yaml。 翻原文件具有以下强制格式: `domain.locale.loader``domain`是将消息组织成组的一种可选方式。 默认域为`messages``locale`定义翻原文件的语言环境; 例如`zh``sk``de``loader`是一种加载和解析文件的方式。 例如 xlf,php 或 yaml。
可以将翻译后的文本写入不同的文件格式。 Symfony 转换组件支持许多转换格式,例如 XLIFF,PHP,Qt,.po,.mo,JSON,CSV 或 INI。 推荐的格式是 XLIFF。 可以将翻译后的文本写入不同的文件格式。 Symfony 转换组件支持许多转换格式,例如 XLIFF,PHP,Qt,`.po``.mo`,JSON,CSV 或 INI。 推荐的格式是 XLIFF。
可以将翻原文件放在三个不同的目录中,其中第一个位置具有最高优先级:`translations/``src/Resources/%bundle name%/translations/``Resources/translations/` 可以将翻原文件放在三个不同的目录中,其中第一个位置具有最高优先级:`translations/``src/Resources/%bundle name%/translations/``Resources/translations/`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册