Это пример кода:
Я хочу назвать это на другой странице:
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');
Как видно из вашего примера кода, класс находится в другом пространстве имен:
<?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
-ключевое слово
use Acme\MyBundle\Service\ImageResizer;
$object = new ImageResizer();
Или укажите абсолютный класс:
$object = new \Acme\MyBundle\Service\ImageResizer();
Надеюсь, это поможет вам:
Пространства имен действительно заставили меня набраться терпения, когда я начал их использовать, но как только вы к этому привыкли, это не так уж сложно. Я бы порекомендовал использовать автозагрузчик. Это немного хлопотно для настройки, но как только это сделано, это помогает кучу.