在无编写器的Codeigniter中使用PHPSReadSheet

在无编写器的Codeigniter中使用PHPSReadSheet,php,excel,codeigniter,composer-php,phpspreadsheet,Php,Excel,Codeigniter,Composer Php,Phpspreadsheet,如何在没有安装Composer的情况下使用PHPSReadSheet(PHPExcel的新版本) 我试图与第三方一起使用,但打印了如下错误: require_once __DIR__ . '/path/to/Psr4ClassLoader.php'; $loader = new Symfony\Component\ClassLoader\Psr4ClassLoader(); $loader->addPrefix('PhpOffice\PhpSpreadsheet', FCPATH . 'v

如何在没有安装Composer的情况下使用PHPSReadSheet(PHPExcel的新版本)

我试图与第三方一起使用,但打印了如下错误:

require_once __DIR__ . '/path/to/Psr4ClassLoader.php';
$loader = new Symfony\Component\ClassLoader\Psr4ClassLoader();
$loader->addPrefix('PhpOffice\PhpSpreadsheet', FCPATH . 'vendor/phpoffice/phpspreadsheet/src');
$loader->register();
“致命错误:在第16行的/web/application/third\u party/PhpOffice/PhpSpreadsheet/Spreadsheet.php中找不到类'PhpOffice\PhpSpreadsheet\Spreadsheet'”


“阿尤达啊

我有一个项目,成功地使用了Symfony不推荐的Psr4ClassLoader:

如果您需要执行PSR4样式的自动加载,那么使用这个类加载器是非常好的

例如:

require_once FCPATH . 'Psr4ClassLoader.php';
$loader = new Symfony\Component\ClassLoader\Psr4ClassLoader();
$loader->addPrefix('Skunkbad\Console', FCPATH . 'vendor/skunkbad/console/src');
$loader->register();
在该示例中,我使用了一个控制台类,我可以声明名称空间以及名称空间所在目录的位置

$c = new Skunkbad\Console\Console('ChromePhp');
$c->log([1,2,3,4,5]);
现在我可以加载Console类,在本例中,我将“ChromePhp”作为构造函数参数传递。然后,我继续在控制台对象上调用log方法

在您的情况下,由于名称空间类是PhpOffice\PhpSpreadsheet\Spreadsheet,因此您可能会执行以下操作:

require_once __DIR__ . '/path/to/Psr4ClassLoader.php';
$loader = new Symfony\Component\ClassLoader\Psr4ClassLoader();
$loader->addPrefix('PhpOffice\PhpSpreadsheet', FCPATH . 'vendor/phpoffice/phpspreadsheet/src');
$loader->register();
然后像这样使用它:

$x = new PhpOffice\PhpSpreadsheet\Spreadsheet();

请理解,我不知道使用电子表格类的具体细节,但我将向您展示如何在没有Composer的情况下使用它。您可能需要处理程序包的路径,可能还需要处理名称空间本身。

我有一个项目,成功地使用了Symfony不推荐的Psr4ClassLoader:

如果您需要执行PSR4样式的自动加载,那么使用这个类加载器是非常好的

例如:

require_once FCPATH . 'Psr4ClassLoader.php';
$loader = new Symfony\Component\ClassLoader\Psr4ClassLoader();
$loader->addPrefix('Skunkbad\Console', FCPATH . 'vendor/skunkbad/console/src');
$loader->register();
在该示例中,我使用了一个控制台类,我可以声明名称空间以及名称空间所在目录的位置

$c = new Skunkbad\Console\Console('ChromePhp');
$c->log([1,2,3,4,5]);
现在我可以加载Console类,在本例中,我将“ChromePhp”作为构造函数参数传递。然后,我继续在控制台对象上调用log方法

在您的情况下,由于名称空间类是PhpOffice\PhpSpreadsheet\Spreadsheet,因此您可能会执行以下操作:

require_once __DIR__ . '/path/to/Psr4ClassLoader.php';
$loader = new Symfony\Component\ClassLoader\Psr4ClassLoader();
$loader->addPrefix('PhpOffice\PhpSpreadsheet', FCPATH . 'vendor/phpoffice/phpspreadsheet/src');
$loader->register();
然后像这样使用它:

$x = new PhpOffice\PhpSpreadsheet\Spreadsheet();

请理解,我不知道使用电子表格类的具体细节,但我将向您展示如何在没有Composer的情况下使用它。您可能需要处理到包的路径,可能还要处理名称空间本身。

这是我使用的类:(我对它进行了一些修改)


这是我使用的类:(我修改了一点)


为什么不使用Composer?这会容易得多。Composer是一个很简单的安装,一旦安装到位,安装PhpSpreadsheet是一件很简单的事情。因为我的老板不喜欢使用Composer u-uThat的愚蠢。这项工作现在就可以完成了。每当人们问“为什么不使用composer?”这样的问题时,答案是“为CMS开发一个公开发布的插件”。为什么不使用composer?这会容易得多。Composer是一个很简单的安装,一旦安装到位,安装PhpSpreadsheet是一件很简单的事情。因为我的老板不喜欢使用Composer u-uThat的愚蠢。这项工作现在就可以完成了。每当人们问“为什么不使用composer?”这样的问题时,答案是“为CMS开发一个插件以公开发布”。我也使用类似的方法自动加载命名空间类:@Alex,可能有一些选择。您应该发布一个使用链接到的类的示例。我也使用类似的方法自动加载命名空间类:@Alex,可能有一些选择。你应该发布一个使用链接到的示例。你能更具体一点吗?我需要一步一步地解决这个问题,你能更具体一点吗?我需要一步一步地解决这个问题