Symfony5 系列教程6 - 配置文件

这个教程是基于symfony5进行编写,以后再出高版本的symfony,那么就可以只出一套针对这个高版本的特性进行编写,该系列教程会一直延续更新。

点赞再看,养成习惯,微信搜索公众号【程序员老班长】关注这个互联网老班长,查看更多系列文章

目录

1,目录结构:

2,在控制器中获取配置变量

3,使用ContainerBagInterface访问配置变量

4,配置文件类型


配置文件是symfony程序里面的定义各种环境变量的地方。

1,目录结构:

 

1
2
3
4
5
6
7

 

your-project/
├─ config/
│  ├─ packages/
│  ├─ bundles.php
│  ├─ routes.yaml
│  └─ services.yaml
├─ ...

 

 routes.yaml

                该文件为路由配置文件

 services.yaml

                该文件是为容器配置服务的文件

  bundles.php 

                该文件是管理容器是否启用第三方包的文件

  config/packages

                该目录是安装的第三方包的时候,所默认安装的配置文件

 

2,在控制器中获取配置变量

写的控制器类推荐继承于AbstractController,

这样便可使用getParameter方法获取变量

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17

 

// src/Controller/UserController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class UserController extends AbstractController
{
    // ...

    public function index()
    {
        $projectDir = $this->getParameter('kernel.project_dir');
        $adminEmail = $this->getParameter('app.admin_email');

        // ...
    }
}

 

3,使用ContainerBagInterface访问配置变量

在服务中声明这个ContainerBagInterface类型,就可以被容器自动创建实例,后期便可调用这个实例。

 

namespace App\Service;

// ...

use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;

class MessageGenerator
{
    private $params;

    public function __construct(ContainerBagInterface $params)
    {
        $this->params = $params;
    }

    public function someMethod()
    {
        // get any container parameter from $this->params, which stores all of them
        $sender = $this->params->get('mailer_sender');
        // ...
    }
}

4,配置文件类型

.env:定义应用程序所需的环境变量的默认值;

.env.local:定义应用程序所需的本地环境变量的值,该文件不提交到代码库中,并且这个文件里面定义的变量会覆盖.env里面的文件。.env.test为测试环境下使用的配置文件。

​文章持续更新,可以微信搜索公众号「 程序员老班长 」查看更多文章。

你可能感兴趣的:(PHP,Symfony)