使用名称空间的PHP类导致我的代码不使用名称空间的问题。为什么?

星星般的531

我正在尝试使用一个名为的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语句,但事实并非如此。

星星般的531

我发现将此库与现有的未命名间隔的过程代码一起使用的唯一方法是从该库中删除所有use语句和命名空间语句。该库只有8个文件,因此并不难。如果人们有更好的方法,我仍然想听听他们的答案,因为我敢肯定,这个问题还会再次出现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我不使用全局名称空间时,为什么web.xml不起作用?

来自分类Dev

使用PHP变量实例化类-名称空间问题

来自分类Dev

在isinstance中仅使用类名而不使用名称空间

来自分类Dev

在不使用类名称空间的情况下声明对象

来自分类Dev

不使用c#名称空间会发生什么

来自分类Dev

为什么我的类朋友功能不能使用名称空间访问受保护的成员?

来自分类Dev

当我使用dir([用户定义的对象])时,为什么它还返回对象的父类的命名空间中的名称?

来自分类Dev

找不到PHP laravel类。如何使用名称空间解决此问题?

来自分类Dev

使用__autoload包含类并使用名称空间

来自分类Dev

为什么环境声明使用名称空间和模块?

来自分类Dev

XML:为什么不能使用其他名称空间?

来自分类Dev

XML:为什么不能使用其他名称空间?

来自分类Dev

在父名称空间中使用PHP类

来自分类Dev

为什么我不能在名称空间中使用CURL?

来自分类Dev

为什么我不能在名称空间中使用CURL?

来自分类Dev

我应该使用什么名称空间搜索此XML文档?

来自分类Dev

使用名称空间解析xml的问题

来自分类Dev

PHP:PSR-2:为什么在名称空间/使用声明后留空行?

来自分类Dev

PHP名称空间-为什么在声明Parent \ Child时必须“使用{Parent}”?

来自分类Dev

在使用时将类名=名称空间

来自分类Dev

使用名称空间std和Template类

来自分类Dev

使用名称空间找不到类

来自分类Dev

使用名称空间std和Template类

来自分类Dev

名称空间和全局类的使用

来自分类Dev

使用名称空间访问扩展类中的$ this

来自分类Dev

为什么W3C RDF验证程序不使用完整名称空间替换URI?

来自分类Dev

为什么当我将此类带入我的项目时找不到某些名称空间\类?

来自分类Dev

使用std名称空间,为什么(或为什么不)我应该在std ::前面加上前缀?

来自分类Dev

使用std名称空间,为什么(或为什么不)我应该在std ::前面加上前缀?

Related 相关文章

  1. 1

    当我不使用全局名称空间时,为什么web.xml不起作用?

  2. 2

    使用PHP变量实例化类-名称空间问题

  3. 3

    在isinstance中仅使用类名而不使用名称空间

  4. 4

    在不使用类名称空间的情况下声明对象

  5. 5

    不使用c#名称空间会发生什么

  6. 6

    为什么我的类朋友功能不能使用名称空间访问受保护的成员?

  7. 7

    当我使用dir([用户定义的对象])时,为什么它还返回对象的父类的命名空间中的名称?

  8. 8

    找不到PHP laravel类。如何使用名称空间解决此问题?

  9. 9

    使用__autoload包含类并使用名称空间

  10. 10

    为什么环境声明使用名称空间和模块?

  11. 11

    XML:为什么不能使用其他名称空间?

  12. 12

    XML:为什么不能使用其他名称空间?

  13. 13

    在父名称空间中使用PHP类

  14. 14

    为什么我不能在名称空间中使用CURL?

  15. 15

    为什么我不能在名称空间中使用CURL?

  16. 16

    我应该使用什么名称空间搜索此XML文档?

  17. 17

    使用名称空间解析xml的问题

  18. 18

    PHP:PSR-2:为什么在名称空间/使用声明后留空行?

  19. 19

    PHP名称空间-为什么在声明Parent \ Child时必须“使用{Parent}”?

  20. 20

    在使用时将类名=名称空间

  21. 21

    使用名称空间std和Template类

  22. 22

    使用名称空间找不到类

  23. 23

    使用名称空间std和Template类

  24. 24

    名称空间和全局类的使用

  25. 25

    使用名称空间访问扩展类中的$ this

  26. 26

    为什么W3C RDF验证程序不使用完整名称空间替换URI?

  27. 27

    为什么当我将此类带入我的项目时找不到某些名称空间\类?

  28. 28

    使用std名称空间,为什么(或为什么不)我应该在std ::前面加上前缀?

  29. 29

    使用std名称空间,为什么(或为什么不)我应该在std ::前面加上前缀?

热门标签

归档