CodeIgniter PHPWord используется в качестве третьего_партии

Я пытаюсь использовать PHPWord и испытываю трудности с его использованием.

Это мой код в приложении / библиотеки / слова.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH."/third_party/PhpWord/Autoloader.php";

\PhpOffice\PhpWord\Autoloader::register(); \\NOT SURE IF THIS IS CORRECT

class Word extends PhpWord {
public function __construct() {
parent::__construct();
}
}

Основанный на PHPWord GitHub, я должен использовать его так:

Alternatively, you can download the latest release from the releases page. In this case, you will have to register the autoloader.

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register(); // WHERE SHOULD I PUT THIS?

Когда я пытаюсь загрузить библиотеку из моего контроллера как такового:

$this->load->library('word');

это дает мне ошибку, которая говорит:

Fatal error: Class 'PhpWord' not found in C:\xampp\htdocs\path\to\application\libraries\Word.php on line 7

Я пытался расширить класс Autoloader, но PHP по-прежнему жалуется, что не может найти Autoloader.php.

когда я делаю

file_exist(APPPATH."/third_party/PhpWord/Autoloader.php") // Similarly with PhpWord.php

возвращается 1.

Кто-нибудь знает, как это исправить?

3

Решение

Из России с любовью;)
Используйте это в библиотеке для CodeIgniter:

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');require_once  APPPATH.'/libraries/PHPWord/src/PhpWord/Autoloader.php';
use PhpOffice\PhpWord\Autoloader as Autoloader;
Autoloader::register();

class Word extends Autoloader {

}

?>

В контроллере вроде кода из примеров:

$this->load->library('word');
/* remove ;)
#require_once 'PHPWord/src/PhpWord/Autoloader.php';
#PhpOffice\PhpWord\Autoloader::register();
*/

// Template processor instance creation
echo date('H:i:s') , ' Creating new TemplateProcessor instance...' ;
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('text.docx');$templateProcessor->setValue('sss','123');

echo date('H:i:s'), ' Saving the result document...';
$templateProcessor->saveAs('test1.docx');

Проверено, работает!

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]