Symfony4で設定ファイルを定義してみる
Symfony4でパラメーターなどを一つの設定ファイルで定義したかったので、その内容をまとめる。
以下に設定ファイルを作成する
config/parameter.yaml
user:
age: 8
BaseContorollerを作成して、各Controllerはそこから継承するようにする
src/Controller/BaseController.php
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
abstract class BaseController extends AbstractController
{
// 後ほどメソッドなどを定義していく
}
src/Controller/UserController.php
diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php
index de63605..2450323 100644
--- a/src/Controller/UserController.php
+++ b/src/Controller/UserController.php
@@ -2,16 +2,16 @@
namespace App\Controller;
+use App\Controller\BaseController;
use App\Entity\User;
use App\Service\UserService;
use App\Form\UserType;
-use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
-class UserController extends AbstractController
+class UserController extends BaseController
{
/**
* @Route("/user", name="users")
public function index(UserService $user_service): Response
{
BaseConrollerのコンストラクターで、conf情報を持つ変数を設定する(ついでにその変数を取得するメソッドも定義する)
src/Controller/BaseController.php
use Symfony\Component\Yaml\Yaml;
abstract class BaseController extends AbstractController
{
protected $yaml_info = '';
function __construct() {
$yaml_file = file_get_contents("../config/parameter.yaml"); // 読み込むyamlファイルを指定します。
$this->yaml_info = Yaml::parse($yaml_file);
}
public function getServiceConfig() {
return $this->yaml_info;
}
}
各コントローラーで設定ファイルの内容を取得できるか確認してみる。
src/Controller/UserController.php
class UserController extends BaseController
{
/**
* @Route("/user", name="users")
*/
public function index(UserService $user_service): Response
{
$users = $user_service->getUsers();
+ $tmp = $this->getServiceConfig();
+ var_dump($tmp); // 結果を出力します。
+ exit;
return $this->render('user/index.html.twig', [
'title' => 'ユーザー一覧',
'data' => $users,
]);
}
⇒取得できていそうだったので、問題なし。
Author And Source
この問題について(Symfony4で設定ファイルを定義してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/RyotaIhara/items/09abfc1e6e19bb1179b2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .