Symfony-通过服务容器传递ZipArchive(PHP核心类)类
我需要将ZipArchive类作为我的一个类的依赖项传递。我希望可以这样做,但不知道如何在services.yml文件中定义Symfony-通过服务容器传递ZipArchive(PHP核心类)类,php,symfony,Php,Symfony,我需要将ZipArchive类作为我的一个类的依赖项传递。我希望可以这样做,但不知道如何在services.yml文件中定义 任何想法都可以。您可以将ZipArchive类作为服务的参数传递 首先,您需要为ZipArchive创建服务 services: lib.ziparchive: class: Lib\ZipArchive #your ZipArchive Class Namespace 然后您可以将lib.ziparchive传递给您的类服务 ap
任何想法都可以。您可以将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;
}
}
查看更多详细信息以了解更多信息
希望有帮助。您可以将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;
}
}
我将在服务构造中实例化核心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;
}
}
谢谢你的回答,但是我的问题是ZipArchive是一个PHP核心类,我们可以通过容器注入核心类吗?我收到错误“\\ZipArchive”不是“zip_archive”服务的有效类名。也许symfony文档就是您所需要的。谢谢您的回复。我做了一些类似于LMS94的回答谢谢你的回答,但我的问题是ZipArchive是一个PHP核心类我们可以通过容器注入核心类吗?我收到错误“\\ZipArchive”不是“zip_archive”服务的有效类名。也许symfony文档就是您所需要的。谢谢您的回复。我做了一些类似于LMS94的回答为什么不在类本身中实例化它?如果它的核心没有问题,那么为什么不在类本身中实例化它呢?如果它的核心,那么这应该是没有问题,这应该是所有你需要的。我做了一些类似的解决方案。谢谢这应该是你所需要的。我做了类似的解决方案。谢谢