关于symfony 3.4.32的安装与配置及第一个页面luckynumber 的route书写

1.symfony 的安装与配置

symfony官网文档:https://symfony.com/doc/current/setup.html

2.通过 composer 创建 symfony 应用

我是通过 composer 来创建一个 symfony 应用的(关于 composer 可自行网上搜索)

安装好 composer 后,通过 composer 创建一个 symfony 应用

 

$ composer create-project symfony/framework-standard-edition my_project_name

 

如果你想安装指定版本的 symfony ,可以在命令最后补充版本号

 

$ composer create-project symfony/framework-standard-edition my_project_name "3.0.*"

3.运行 symfony 应用

安装好后就要运行一下运行环境要求 php 版本在 5.4 及以上,才可以执行下面命令来启动 symfony 应用我是安装了集成软件 wamposerver 其中包括了 php、apache、mysql,我选择的 php 版本是 7.2.18

 

$ cd my_project_name/
$ php bin/console server:run

 

然后打开浏览器,输入 http://localhost:8000/ 即可看见 welcome 页面。
你也许会看到 welcome 页面是个空白页面或者报错页面。

可以参考:https://symfony.com/doc/current/setup.html#book-installation-permissions

3.创建一个页面:路由和控制器

跟着官网文档第一个页面是做 luckynumber 
就是创建一个页面 /lucky/number 用来生成一个幸(sui)运(ji)数并打印出来。

首先创建一个类和一个成员方法。
phpstorm 中打开前面创建的 my_project_name

具体的文件位置和命名空间根据实际情况而定

下面的代码是我自己修改过的

 


<?php

// 文件位置 src/appbundle/controller/luckycontroller.php
namespace appbundle\controller;

use symfony\component\httpfoundation\response;

class luckycontroller
{
public function number() { $number = rand(0, 100); return new response( '<html><body>lucky number: '.$number.'</body></html>' ); }
}

 

文档上是在 config/routes.yaml file 创建 route ,但我自己做的时候,自己尝试创建 routes.yaml file 并将下列代码附上去的时候是没有成功的,

当我慢慢看文档后面的内容时就将文件位置改为了 routing.yml file 加上下列代码就成功了。

这是一种 route 书写方法:

 

app_lucky_number:
    path: /lucky/number
    controller: appbundle\controller\luckycontroller::number

 

另一种如下所示:

 

<?php

//  src/appbundle/controller/luckycontroller.php
namespace appbundle\controller;

use sensio\bundle\frameworkextrabundle\configuration\route;
use symfony\component\httpfoundation\response;


class luckycontroller
{
    /**
     * @route("/lucky/number")
     */
    public function number()
    {
        $number = rand(0, 100);

        return new response(
            '<html><body>lucky number: '.$number.'</body></html>'
        );
    }
}

 

目前我就理解到这些,以后有学到新的再更新,如果有大佬教教我的话自然是再好不过了。