Неопределенный метод с библиотекой Composer и CodeIgniter

Я работаю над проектом, и мне становится слишком тяжело … Я объясню.

Мне нужно разобрать PDF-файлы с PHP, чтобы проанализировать содержимое этих файлов. Для этого я использую библиотеку pdfparser.org . Сначала я попытался включить эту библиотеку, как обычно, без какого-либо результата. После прочтения всего Интернета, поскольку для этой библиотеки требуется, чтобы Composer был установлен (и на моем веб-хостинге я не могу установить Composer), я применил процесс Composer на своем ПК с Windows. Я получил папку «vendor» с файлом «autoload.php». Отлично!

Затем я попытался правильно включить его в CodeIgniter. Решение, которое я выбрал, это:

  1. Создание файла «Pdfparser.php» в приложении / библиотеках /

    class Pdfparser { public function __construct() { require_once APPPATH."/third_party/pdfparser.php"; } } 
  2. Затем я добавляю приложение PdfParser «Композитор» в application / third_party /, а в /third_party/pdfparser.php я просто добавляю:

     if (!defined('pdfparser')) { define('pdfparser', dirname(__FILE__) . '/'); require(pdfparser . 'pdfparser/autoload.php'); } 
  3. Затем я добавляю эту библиотеку в CodeIgniter /application/config/autoload.php как:

     $autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser'); 
  4. Наконец, я называю это своей функцией в приложении / контроллерах / Admin.php:

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

    (Этот блок кода непосредственно взят из официальной документации здесь: 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, я пытаюсь добавить автозагрузчик Composer в ядро ​​… в application / config / autoload.php Я поставил:

     $config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php"; 
  7. Конечно, это не работает. И я потерялся …

Related of "Неопределенный метод с библиотекой Composer и CodeIgniter"

Используйте композитор правильно. $config['composer_autoload'] = TRUE; и внутри вашей папки приложения запустить composer install smalot/pdfparser . Затем внутри вашего контроллера он должен работать, если не использовать Use 🙂

 use Smalot\PdfParser; 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');