在bundle上包装PHPWord

时间:2012-11-26 16:00:18

标签: symfony composer-php phpword

我只想将PHPWord用于Symfony 2.但我是Symfony 2的新手。

我将PHPWord源粘贴到我的util文件夹包中但是从PHPWord加载自动加载器类时出错......

问题很简单,如何将代码(在本例中为PHPWord)“包装”到bundle中?或者我可以使用它。

任何解决方案?


感谢您的回答,这给了我一些启发。尽管如此,这对我不起作用。 我下载composer.phar并编辑我的composer.json,如你所说:在我的需求区域添加“phpword / phpword”:“0.6.2”并创建新的存储库phpword ...

不起作用,我运行“php composer.phar”命令,但它没有下载任何内容......

任何使这项工作的教程或提示?

谢谢

4 个答案:

答案 0 :(得分:4)

composer require phpoffice/phpword dev-master为我做了工作。

它应该下载并在您的Symfony2安装中的vendor文件夹下安装PhpOffice \ PHPWord(除了自动修改您的composer.json)。

在控制器中,您即将use PhpWord:

use PhpOffice\PhpWord\PhpWord;

在操作中,您可以按如下方式创建新实例:

$doc = new PhpWord();

答案 1 :(得分:1)

您不应该自己复制源代码。使用composer安装PHPWord。

由于PHPWord不使用composer(还),你需要在composer.json中定义一个存储库:

{
    "require": {
        "phpword/phpword": "0.6.2"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "phpword/phpword",
                "version": "0.6.2",
                "dist": {
                    "url": "http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpword&DownloadId=138035&FileTime=129545976016270000&Build=19692",
                    "type": "zip"
                },
                "autoload": {
                    "classmap": ["."]
                }
            }
        }
    ]
}

您可以在Symfony项目中使用PHPWord(事实上任何PHP项目):

$word = new PHPWord();
$writer = new PHPWord_Writer_Word2007($word);
$writer->save('test.doc');

更新:我刚刚意识到要下载的网址随时间变化。最好用不会改变的东西替换它(如果可能的话,否则自己将它托管在某个地方)。

答案 2 :(得分:0)

随着URL的更改,如果您对开发版本没有任何问题,可以使用github存储库:

{
    "require": {
        "phpword/phpword": "dev"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "phpword/phpword",
                "version": "dev",
                "dist": {
                    "url": "https://github.com/PHPOffice/PHPWord/archive/develop.zip",
                    "type": "zip"
                },
                "autoload": {
                    "classmap": ["."]
                }
            }
        }
    ]
}

答案 3 :(得分:0)

您可以将此简单包用作PhpWord的包装器: https://packagist.org/packages/ggggino/wordbundle

相关问题