2014-09-25 80 views
3

我想使用PHPWord並有困難使用它。CodeIgniter PHPWord使用作爲third_party

這是我的應用程序/庫/ words.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

有誰知道如何解決這一問題?

+0

你嘗試過'Autoloader :: register();'只有? – 2014-09-25 05:21:10

+0

@kumar_v它說沒有找到類'Autoloader'。我試過file_exist(APPPATH。「/ third_party/PhpWord/Autoloader.php」),它返回1. – Jeremy 2014-09-25 05:24:51

+0

Autoloader.php中有類Autoloader嗎? – 2014-09-25 05:25:50

回答

7

來自俄羅斯的愛情;) 使用像這樣的庫笨:

<?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'); 

測試它的作品!