Temiz Yol - 2018+, Symfony 3.4+
2017 ve Symfony 3.3 + 3.4'ten beri çok daha temiz bir yol var - kurulumu ve kullanımı kolay.
Kap ve servis / parametre konumlandırıcı anti-modelini kullanmak yerine, parametreleri yapıcısı aracılığıyla sınıfa geçirebilirsiniz . Endişelenmeyin, zaman alıcı bir iş değil, bir kez kurun ve unutun yaklaşımı .
2 adımda nasıl kurulur?
1. app/config/services.yml
parameters:
api_pass: 'secret_password'
api_user: 'my_name'
services:
_defaults:
autowire: true
bind:
$apiPass: '%api_pass%'
$apiUser: '%api_user%'
App\:
resource: ..
2. Herhangi Controller
<?php declare(strict_types=1);
final class ApiController extends SymfonyController
{
private $apiPass;
private $apiUser;
public function __construct(string $apiPass, string $apiUser)
{
$this->apiPass = $apiPass;
$this->apiUser = $apiUser;
}
public function registerAction(): void
{
var_dump($this->apiPass);
var_dump($this->apiUser);
}
}
Anında Yükseltmeye Hazır!
Daha eski bir yaklaşım kullanmanız durumunda, şunları yapabilirsiniz: Rektör ile otomatikleştirebilirsiniz .
Daha fazla oku
Bu denir hizmet bulucu üzerinden yapıcı ekleme yaklaşımı .
Bununla ilgili daha fazlasını okumak için gönderimi kontrol edin için Symfony Controller'da Parametre Nasıl Temiz Şekilde Elde Edilir .
(Test edildi ve yeni Symfony ana sürümü için güncel tutuyorum (5, 6 ...)).
get
denetleyici yöntem de kabı kullanır, ancak yalnızca bir kap değil, parametreler gelen hizmet alabilirsiniz. İhtiyacınızgetParameter
parametreleri alır.