Symfony 5シリーズチュートリアル6-プロファイル

2273 ワード

このチュートリアルはsymfony 5に基づいて作成され、後で高バージョンのsymfonyを出すと、この高バージョンの特性に対して1セットだけ作成することができ、このシリーズのチュートリアルはずっと更新されます.
点赞再看,养成习惯,微信搜索公众号【プログラマー老班长】注目このインターネット老班长,查看更多系列文章
目次
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はテスト環境で使用するプロファイルです.
文章は更新を続け、微信で公衆番号「プログラマー老班長」を検索してより多くの文章を見ることができる.