[英]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.