Contributed by 
            Fabien Potencier 
            in #21039.
        
PHP 5.4版引入了内建的web server,可于开发过程中在本地运行你的PHP程序而毋须配置全功能的web服务器,如Apache或Nginx。
Symfony采纳这一技术已有一段时间,提供了一些控制台的命令以便 控制那个服务器。在Symfony 3.3中我们决定把这些命令移至一个全新的WebServiceBundle之中。
这样做的主要原因是,把命令移出可以让它们更易被发现同时还能去耦合。当没有使用 symfony/symfony 依赖时,可发现性尤其重要。此时,命令并不可用,除非你安装了 symfony/symfony 。有了这个独立的bundle,安装bundle的同时就会安装依赖,令整个过程更容易。
在任何情况下,新bundle都不会改变你使用本地web server时的工作方式:
| 1 2 3 4 5 6 7 8 9 | # start a web server in the foreground and see the logs
# 在前台启动web server并查看日志
$  bin/console server:run
 
# start, stop and manage a web server in the background
# 在后台启动、停止以及管理web server
$  bin/console server:start
$  bin/console server:stop
$  bin/console server:status | 
DX开发体验改进
创建全新bundle还有一个好处就是引入了一些关于那些命令的DX(developer experience/开发者体验)提升,令你获得更多生产力。首先,你 不再需要传入完整的地址和端口 到 server:stop 和 server:status 命令中:
| 1 2 3 4 5 6 7 8 9 10 | $  bin/console server:start 127.0.0.1:8888
...
 
# no need to pass the address again
# 不需要再次传入地址
$  bin/console server:status
 
# no need to pass the address again
# 不需要再次传入地址
$  bin/console server:stop | 
能够这样是因为web server现在把地址存入了当前目录的一个PID文件中。此外 server:start 命令现在 自动查找可用的空闲端口:
Symfony 3.3之前:
| 1 2 3 4 5 6 7 8 9 10 | $  bin/console server:start
  [ERROR] A process is already listening on http://127.0.0.1:8000.
 
$  bin/console server:start 127.0.0.1:8001
  [ERROR] A process is already listening on http://127.0.0.1:8001.
 
# ... 24 attempts later / 24次尝试之后 ...
 
$  bin/console server:start 127.0.0.1:8024
  [OK] Web server listening on http://127.0.0.1:8024 | 
Symfony 3.3:
| 1 2 | $  bin/console server:start
  [OK] Web server listening on http://127.0.0.1:8024 | 
除非你把端口作为参数传入,否则 server:start 现在只使用从 8000 到 8100 的第一个可用空闲端口。
 4.2翻译中
                     4.2翻译中

 
                     
                    