作曲家库和CodeIgniter的未定义方法



我正在从事一个项目,这对我来说太难了...我解释。

我需要用PHP解析PDF文件,以分析这些文件的内容。为此,我使用pdfparser.org库。我首先尝试将此库放在通常的情况下,而没有任何结果。阅读了所有Internet后,由于此库需要安装作曲家(在我的网络托管上,我无法安装作曲家),因此我已经在Windows PC上应用了Composer进程。我在" autoLoad.php"文件中获得了"供应商"文件夹。很好!

然后,我试图将其正确包含在CodeIgniter中。我选择的解决方案是:

  1. 在应用程序/库/

    中创建一个文件" pdfparser.php"
    class Pdfparser
    {
        public function __construct()
        {
            require_once APPPATH."/third_party/pdfparser.php";
        }
    }
    
  2. 然后,我在应用程序/thix_party/以及/third_party/pdfparser.php中添加了pdfparser" composer"应用程序,我简单地put:

    if (!defined('pdfparser')) {
        define('pdfparser', dirname(__FILE__) . '/');
        require(pdfparser . 'pdfparser/autoload.php');
    }
    
  3. 然后,我将此库添加到codeigniter/application/config/autoload.php as:

    $autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser');
    
  4. 最后,我在应用程序/controllers/admin.php中称其为我的功能:

    $parser = new Pdfparser();
            $pdf    = $parser->parseFile(myfile.pdf);
            $full_text = $pdf->getText();
    

    (此4.代码块直接从官方文档中获取:http://www.pdfparser.org/documentation,并且只是改编)。

  5. ,但是现在,我打破了互联网...我有一个错误:

    PHP Fatal error:  Call to undefined method PdfParser::parseFile() in /path/application/controllers/Admin.php on line 3083
    
  6. 看了查看Codeigniter文档后,我尝试将作曲家自动加载器添加到Core ...在Application/config/config/autoload.php中,我放置了:

    $config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php";
    
  7. 当然,它行不通。我迷路了...

正确使用作曲家。$config['composer_autoload'] = TRUE;并在您的应用程序文件夹内运行composer install smalot/pdfparser。然后在您的控制器内部运行,如果不使用:)

use SmalotPdfParser;
class My_controller extends CI_Controller {
}

使用作曲家时,要在项目中包括一个库,您会做类似的事情:

composer install smalot/pdfparser

然后,要包括新安装的库,您只需要包括作曲家提供的" autoLoad.php"文件:

<?php
include 'vendor/autoload.php';
$parser = new Pdfparser();
$pdf    = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
var_dump($full_text);

仅此而已。

替换您的代码

class Pdfparser
{
    public function __construct()
    {
        require_once APPPATH."/third_party/pdfparser.php";
    }
}

   <?php
require_once APPPATH."/third_party/pdfparser.php";
class Pdfparser
{
    public function __construct()
    {
    }
}

包括班级外。

而不是使用自动加载,您可以像这样加载库...

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

示例:

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

相关内容

  • 没有找到相关文章

最新更新