Composer 库和 CodeIgniter 的未定义方法
Undefined method with Composer library and CodeIgniter
我正在做一个项目,它对我来说有点太难了...
我解释一下。
我需要用 PHP 解析 PDF 文件,以分析这些文件的内容。为此,我使用 pdfparser.org 库。
我首先尝试像往常一样包含这个库,但没有任何结果。
在浏览了所有 Internet 之后,由于该库需要安装 Composer(而在我的虚拟主机上我无法安装 Composer),因此我在 Windows PC 上应用了 Composer 进程。我得到了 "vendor" 文件夹和 "autoload.php" 文件。很好!!
然后,我尝试将它正确地包含在 CodeIgniter 中。我选择的解决方案是:
正在 application/libraries/
中创建文件 "Pdfparser.php"
class Pdfparser
{
public function __construct()
{
require_once APPPATH."/third_party/pdfparser.php";
}
}
然后,我在 application/third_party/ 中添加 PdfParser "Composer" 应用程序,在 /third_party/pdfparser.php 中我简单地输入:
if (!defined('pdfparser')) {
define('pdfparser', dirname(__FILE__) . '/');
require(pdfparser . 'pdfparser/autoload.php');
}
然后,我将这个库添加到 CodeIgniter /application/config/autoload。php 作为 :
$autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser');
最后,我在application/controllers/Admin的函数中调用了它。php :
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
(此 4. 代码块直接取自此处的官方文档:http://www.pdfparser.org/documentation,并进行了改编)。
但是现在,我断网了...我有这个错误:
PHP Fatal error: Call to undefined method PdfParser::parseFile() in /path/application/controllers/Admin.php on line 3083
在查看了 CodeIgniter 文档之后,我尝试将 Composer 自动加载器添加到核心中...在 application/config/autoload.php 我输入:
$config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php";
当然不行。我迷路了...
替换您的代码
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()
{
}
}
包括 class 之外的内容。
您可以像这样加载库,而不是使用自动加载...
$this->load->library('library_name');
示例:
$this->load->library('pdfparser');
正确使用composer。 $config['composer_autoload'] = TRUE;
和您的应用程序文件夹内 运行 composer install smalot/pdfparser
。然后在你的控制器里面它应该运行,如果不使用使用:)
use Smalot\PdfParser;
class My_controller extends CI_Controller {
}
使用 Composer 时,要在您的项目中包含一个库,您可以这样做:
composer install smalot/pdfparser
然后,要包含新安装的库,你只需要包含composer提供的"autoload.php"文件:
<?php
include 'vendor/autoload.php';
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
var_dump($full_text);
仅此而已。
我正在做一个项目,它对我来说有点太难了... 我解释一下。
我需要用 PHP 解析 PDF 文件,以分析这些文件的内容。为此,我使用 pdfparser.org 库。 我首先尝试像往常一样包含这个库,但没有任何结果。 在浏览了所有 Internet 之后,由于该库需要安装 Composer(而在我的虚拟主机上我无法安装 Composer),因此我在 Windows PC 上应用了 Composer 进程。我得到了 "vendor" 文件夹和 "autoload.php" 文件。很好!!
然后,我尝试将它正确地包含在 CodeIgniter 中。我选择的解决方案是:
正在 application/libraries/
中创建文件 "Pdfparser.php"class Pdfparser { public function __construct() { require_once APPPATH."/third_party/pdfparser.php"; } }
然后,我在 application/third_party/ 中添加 PdfParser "Composer" 应用程序,在 /third_party/pdfparser.php 中我简单地输入:
if (!defined('pdfparser')) { define('pdfparser', dirname(__FILE__) . '/'); require(pdfparser . 'pdfparser/autoload.php'); }
然后,我将这个库添加到 CodeIgniter /application/config/autoload。php 作为 :
$autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser');
最后,我在application/controllers/Admin的函数中调用了它。php :
$parser = new Pdfparser(); $pdf = $parser->parseFile(myfile.pdf); $full_text = $pdf->getText();
(此 4. 代码块直接取自此处的官方文档:http://www.pdfparser.org/documentation,并进行了改编)。
但是现在,我断网了...我有这个错误:
PHP Fatal error: Call to undefined method PdfParser::parseFile() in /path/application/controllers/Admin.php on line 3083
在查看了 CodeIgniter 文档之后,我尝试将 Composer 自动加载器添加到核心中...在 application/config/autoload.php 我输入:
$config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php";
当然不行。我迷路了...
替换您的代码
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()
{
}
}
包括 class 之外的内容。
您可以像这样加载库,而不是使用自动加载...
$this->load->library('library_name');
示例:
$this->load->library('pdfparser');
正确使用composer。 $config['composer_autoload'] = TRUE;
和您的应用程序文件夹内 运行 composer install smalot/pdfparser
。然后在你的控制器里面它应该运行,如果不使用使用:)
use Smalot\PdfParser;
class My_controller extends CI_Controller {
}
使用 Composer 时,要在您的项目中包含一个库,您可以这样做:
composer install smalot/pdfparser
然后,要包含新安装的库,你只需要包含composer提供的"autoload.php"文件:
<?php
include 'vendor/autoload.php';
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
var_dump($full_text);
仅此而已。