我正在尝试使用webchemistry中的发票生成器。我用composer require webchemistry/invoice:^1.0
安装了它。
我将此文件夹移至我的APPPATH . 'third_party\vendor\';
文件夹。所以在我的配置文件中,我有以下几行:
$config['composer_autoload'] = APPPATH . 'third_party\vendor\autoload.php';
我的index.php文件(在root中)包含以下代码:
include_once BASEPATH.'../application/third_party/vendor/autoload.php';
在我的控制器中,我尝试执行以下操作:
public function createInvoice()
{
$company = new \WebChemistry\Invoice\Data\Company();
}
这会导致以下错误:
消息:Class' WebChemistry \ Invoice \ Data \ Company'找不到
在我的IDE(PhpStorm)中,我按住Ctrl键并单击公司,它可以正确解析并指向正确的文件。 为什么PHP无法将其解析为正确的文件位置?
答案 0 :(得分:1)
在开始时在控制器中添加文件include和以下代码
$config['composer_autoload'] = false; // no need change this, make it default
<?php
require_once(APPPATH . '/third_party/vendor/autoload.php');
use \WebChemistry\Invoice\Data\Company as Company;
class Invoice extends CI_Controller {
public function createInvoice(){
$company = new Company();
}
}
答案 1 :(得分:1)
除非您知道自己在做什么,否则不应对vendor
目录执行任何操作。如果要更改Composer安装依赖项的目录,可以通过在composer.json
config中设置vendor-dir
来完成此操作:
{
...
"config":{
"vendor-dir": "third_party/vendor"
}
}