簡體   English   中英

Symfony-通過服務容器傳遞ZipArchive(PHP核心類)類

[英]Symfony - Pass ZipArchive (PHP core class) class through service container

我需要通過ZipArchive類作為我的一個類的依賴項。 我希望可以這樣做,但不知道如何在services.yml文件中進行定義。

任何想法,請。

您可以將ZipArchive類作為服務的參數傳遞

首先,您需要為ZipArchive創建服務

services:
    lib.ziparchive:
        class: Lib\ZipArchive   #your ZipArchive Class Namespace


然后,您可以將lib.ziparchive傳遞給類服務

    app.my_service:
        class: AppBundler\Services\MyService
        arguments: ['lib.ziparchive']


在MyService類中,您需要創建構造函數。

namespace AppBundle\Services;

use Lib\ZipArchive

class MyService
{
    protected $ziparchive;

    public function __construct(ZipArchive $ziparchive)
    {
        $this->ziparchive = $ziparchive;
    }

}

檢查服務容器的更多詳細信息

希望對您有所幫助。

我將實例化服務構造中的核心php對象,並提供一個setter來覆蓋此對象(即稍后進行測試):

services.yml:

app.my_service:
    class: AppBundler\Services\MyService

的appbundle \\ SERVICES \\為MyService:

namespace AppBundle\Services;

class MyService
{
    protected $ziparchive;

    public function __construct()
    {
        $this->ziparchive = new ZipArchive();
    }

    public function setZipArchive(\ZipArchive $zipArchive)
    {
        $this->zipArchive = $zipArchive;

        return $this;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM