相关疑难解决方法(0)

如何使用php的"root"命名空间?

我有一个Exception类:

namespace abc;

class AbcException extends Exception {
// blah blah
}
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误:

Class 'abc\Exception' not found ...
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我能做些什么来完成这项工作?

  2. 有用的文件表示赞赏.

感谢您阅读我的问题

php namespaces

25
推荐指数
2
解决办法
2万
查看次数

在Symfony2中使用Imagick?

我试图使用Imagick与Symfony2,但每次我尝试使用它,它会给我以下错误:

Fatal error: Class 'Acme\TestBundle\Services\Imagick' not found...
Run Code Online (Sandbox Code Playgroud)

我在设置的服务中使用Imagick来管理我的图像.我需要做什么才能使用这个课程?

我可以确认Imagick扩展正在服务器上运行,并且正在被其他站点使用.

在此先感谢您的帮助.

php imagick symfony

5
推荐指数
1
解决办法
8179
查看次数

php 5.3致命错误类找不到DateTimeZone

我尝试在PHP v5.3.13上运行以下代码,但仍然找不到类错误:

$tZone = new DateTimeZone("Europe/Amsterdam");
Run Code Online (Sandbox Code Playgroud)

如何在5.3.13上使用DateTimeZone?

php datetime namespaces

4
推荐指数
1
解决办法
6233
查看次数

PHP在全局命名空间中使用类

我有一个使用PDO的DB包装器类,在构造函数中我创建了一个PDO对象.包装器类在我们的命名空间中,我们使用自动加载器.问题是我们的命名空间中找不到PDO类,因此我尝试使用此处描述的全局命名空间.

//Class file
namespace Company\Common;
class DB {
    private function __construct(){
        $this->Handle=new PDO(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了这个(正如预期的那样):

Warning: require(...\vendors\Company\Common\PDO.class.php): failed to open stream
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

namespace Company\Common;
use PDO;
Run Code Online (Sandbox Code Playgroud)

我明白了:

Fatal error: Class 'DB' not found in ...\includes\utils.php
Run Code Online (Sandbox Code Playgroud)

而utils.php在错误行中包含这个,在实现名称空间之前工作正常:

DB::getInstance();
Run Code Online (Sandbox Code Playgroud)

或者我试过这个:

namespace Company\Common;
class DB {
    private function __construct(){
        $this->Handle=new \PDO(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

它试图像我们最初那样在我们的命名空间中加载PDO类.

我该如何解决这个问题?我想通过这样做use PDOnew \PDO它会加载全局PDO类,但它似乎没有工作?

php pdo namespaces autoload

2
推荐指数
1
解决办法
6510
查看次数

标签 统计

php ×4

namespaces ×3

autoload ×1

datetime ×1

imagick ×1

pdo ×1

symfony ×1