我正在尝试使用一个名为的php库tcpdf-extension
。该库使用namespaces
和命令'use'
。我的其余代码则没有。我还很陌生,namespaces
不了解如何使用它们。
如果我包含该库,则会遇到php无法找到其他包含/必需文件的问题。例如:'PHP Fatal error: require_once(): Failed opening required <filepath>(include_path='.;C:\php\pear') in <filepath> on line 29'
另一个问题是我以前使用的某些网站页面只是挂起而没有任何错误消息。如果我删除了该库的包含文件,一切将恢复正常。
如果我在其余代码的单独页面中使用该库,则没有问题,但是只要将其包含在其他页面中,它就会失败。
为什么会发生这种情况,我该怎么解决?
更新:包含库的示例:
require_once ('tcpdf/Extension/Helper.php');
require_once ('tcpdf/Extension/Table/Table.php');
require_once ('tcpdf/Extension/Table/Cell.php');
require_once ('tcpdf/Extension/Table/Row.php');
require_once ('tcpdf/Extension/Table/TableConverter.php');
require_once ('tcpdf\Extension\Attribute\AbstractAttribute.php');
require_once ('tcpdf\Extension\Attribute\BackgroundAttribute.php');
require_once ('tcpdf\Extension\Attribute\BackgroundFormatterOptions.php');
如果将其注释掉,问题将消失,但是我需要使用该库。
这是Table.php的一部分:
<?php
namespace Tcpdf\Extension\Table;
class Table{
...
这是Cell.php的一部分:
namespace Tcpdf\Extension\Table;
use Tcpdf\Extension\Attribute\BackgroundAttribute;
class Cell
{
...
我的猜测是use和/或名称空间命令与它有关,因为这是该库中唯一与我使用的其他库不同的东西,没有任何问题。我还尝试注释掉use命令,这可以使库外的代码正常工作,但是会使库无法工作。也许在添加了该库之后,我需要给出另一个“使用”命令,以返回其余代码所用的正确名称空间。但是,由于我从未为代码设置名称空间,所以我不知道use命令是什么。
这是有问题的库:https : //github.com/naitsirch/tcpdf-extension
另一个可能相关的细节:我的大部分代码是过程样式。我经常使用类,但是大多数(很大)的代码库根本不在类中。如果它们全部在类中,那么我可以为每个类添加use语句,但事实并非如此。
我发现将此库与现有的未命名间隔的过程代码一起使用的唯一方法是从该库中删除所有use语句和命名空间语句。该库只有8个文件,因此并不难。如果人们有更好的方法,我仍然想听听他们的答案,因为我敢肯定,这个问题还会再次出现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句