Study
Symfony

Autowiring & Konfigurasi Service Lanjutan

Penjelasan

Untuk kasus yang tidak bisa ditangani autowiring otomatis (mis. Service butuh nilai string/angka konfigurasi, bukan class lain), konfigurasi tambahan ditulis di config/services.yaml — termasuk membaca environment variable lewat helper %env(...)%.

Contoh Konsep

<?php

namespace App\Service;

class NotifikasiService
{
    public function __construct(private string $apiKey) {}

    public function kirim(string $pesan): void
    {
        // pakai $this->apiKey untuk otentikasi ke layanan eksternal
    }
}

// config/services.yaml (YAML, bukan PHP):
// services:
//     App\Service\NotifikasiService:
//         arguments:
//             $apiKey: '%env(NOTIFIKASI_API_KEY)%'

Praktikum

Buat Service PembayaranService dengan constructor menerima string $merchantId. Tulis (sebagai komentar YAML) konfigurasi services.yaml yang mengisi $merchantId dari environment variable bernama MERCHANT_ID.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Autowiring OTOMATIS hanya bekerja untuk parameter bertipe CLASS/INTERFACE (mis. HargaService, Request) — parameter tipe primitif (string, int, bool, array) SELALU butuh konfigurasi manual di services.yaml seperti dicontohkan, karena Symfony tidak bisa menebak nilai konkretnya sendiri.