-1

这是一个示例代码:

示例代码

我想在另一个页面中调用它:

include 'root of class file';
$r = new ImagineResizer();

我收到了这个错误:

Fatal error: Class 'ImagineResizer' not found in C:\WampDeveloper\Websites\example.com\webroot\images.php on line 13

也调用函数:

$r->resize('c:/test1.jpg', 'c:/test2.jpg');
4

2 回答 2

2

如您的示例代码所示,该类位于另一个命名空间中:

<?php 

namespace Acme\MyBundle\Service;
use Symfony\Component\HttpFoundation\File\File;
use Imagine\Image\ImagineInterface;
use Imagine\Image\BoxInterface;
use Imagine\Image\Point;
use Imagine\Image\Box;

class ImagineResizer {
    //-- rest of code     
}

要在另一个命名空间中使用类,您需要指出文件的位置:首先包含该类(手动或自动加载)

然后你可以通过两种方式创建一个实例。use使用-keyword的第一种方式

use Acme\MyBundle\Service\ImageResizer;
$object = new ImageResizer();

或指向类 absolute :

$object = new \Acme\MyBundle\Service\ImageResizer();
于 2014-12-22T12:32:25.430 回答
1

希望这会对您有所帮助:

  1. 确保包含实际文件 - 而不仅仅是它所在的文件夹。
  2. 确保您从中调用类的文件使用与您的类文件相同的命名空间。如果没有,您必须使用完整的命名空间调用该类。
  3. 利润。

当我开始使用命名空间时,它们确实让我耐心等待,但是一旦你习惯了它就不会太难了。不过,我建议使用自动加载器。设置起来有点麻烦,但一旦完成,它会帮助很多人。

于 2014-12-22T12:32:09.707 回答