Search code examples
symfonycomposer-phpphpword

Wrap PHPWord on bundle


I just want to use PHPWord for Symfony 2. But Im new on Symfony 2.

I paste PHPWord source into my util folder bundle but there is an error loading autoloader class from PHPWord...

Question is simple, How can I "wrap" code (in this case PHPWord) in to bundle? or someway I can use it.

Any solution?


Thanks for answering, that gives me some light. Altough, This doen't work for me. I download composer.phar and I edit my composer.json as you say: adding in my require region "phpword/phpword": "0.6.2" and creating new repository phpword...

Doesn't work, I run "php composer.phar" command but It doesn't download anything...

Any tutorial or tip to make this work?

Thank you


Solution

  • You shouldn't be copying the source code yourself. Use composer to install PHPWord.

    Since PHPWord doesn't use composer (yet), you'll need to define a repository in your 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": ["."]
                    }
                }
            }
        ]
    }
    

    Than you'll be able to use PHPWord in your Symfony project (any PHP project in fact):

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

    Update: I just realized the URL to download changes with time. It'd be better to replace it with something that doesn't change (if possible, otherwise host it somewhere yourself).