Как отредактировать и сохранить документ в PHPOfice/PhpWord?

Собствено вопрос как можно отредактировать и потом сохранить(а в идиале выгрузить пользователю без созранения) фаил. Код состоит из двух классов
namespace entities\TemplateProcessor;

use PhpOffice\PhpWord\TemplateProcessor as Processor;
use PhpOffice\PhpWord\Settings;

class TemplateProcessor  extends Processor
{
    public function getFile(){
        return $this->zipClass;
    }

    public function __construct(string $documentTemplate)
    {
        parent::__construct($documentTemplate);
    }
}
namespace services\DocumentService;

use tiger\entities\TemplateProcessor;
use PhpOffice\PhpWord\IOFactory;

class DocumentService
{
private function getDoc($document,Order $order)
    {
        $processor= new TemplateProcessor($document->getPath());
        /**
        * это не важно просто запрос бд который возвращает назад даные
       */
        $regexps=$this->repository->getRegExp($document->id);
        if($regexps){
            foreach ($regexps as $regexp){
                /**
                 *  @var  $regexp->regKey= 'name';
                 * @var   $regexp->value='Sergalas'
                 */
                $processor->setValue(
                    $regexp->regKey,$regexp->value,
                );
            }
            // вот так фаил сохраняется со всеми данными $processor->saveAs(DownloadDocuments::saveAsPath().'/test2.pdf');
            $phpWord = \PhpOffice\PhpWord\IOFactory::load($processor->getFile());
        }
        return $phpWord;
    }
}


собствено вот ошибка
file_exists() expects parameter 1 to be a valid path, object given

Если кто будет советовать доку курить я сейчас как раз этим и занимаюсь найти не могу информацию.
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
@eternalfire
читайте ошибки плез
это значит в функцию file_exists() первым параметром передаётся объект, а должен - путь
функцию можно найти в в методах, которые вы вызываете
да и вообще должен быть stack trace ошибки

скорей всего ошибка здесь
$processor= new TemplateProcessor($document->getPath());


проверьте, что внутри $document->getPath() - реально ли там путь к документу?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы