创建PHPExcel编写器

时间:2016-05-02 16:43:30

标签: php phpexcel

在PHPExcel的各种教程中,有两种方法可用于创建编写器:

$writer = new PHPExcel_Writer_Excel2007($document);

$writer = PHPExcel_IOFactory::createWriter($document, 'Excel2007');

这两个陈述有什么区别?

1 个答案:

答案 0 :(得分:1)

静态实用程序类有一个内部过程来提供编写器的不同类型/实现,作为覆盖或添加,而直接创建" stock"的实例。当然,使用new关键字的编写者总是会为您提供代码中特定类的实例。

使用工厂将允许您覆盖项目范围内的编写器,而无需修改创建实例的代码中的各个位置。

查看代码有助于理解:

https://github.com/PHPOffice/PHPExcel/blob/1.8/Classes/PHPExcel/IOFactory.php#L129

但值得注意的是,应该谨慎对待这样的静态工厂 - 它可以在代码中创建隐藏的依赖项。