-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     
}

別の名前空間でクラスを使用するには、ファイルがどこにあるかを指摘する必要があります: 最初にクラスを含めます (手動またはオートロードを使用)

次に、2 つの方法でインスタンスを作成できます。use-キーワードを使用した最初の方法

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

またはクラスを指します。

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

うまくいけば、これはあなたを助けるでしょう:

  1. ファイルがあるフォルダだけでなく、実際のファイルを含めるようにしてください。
  2. クラスを呼び出すファイルが、クラス ファイルと同じ名前空間を使用していることを確認してください。そうでない場合は、完全な名前空間を使用してクラスを呼び出す必要があります。
  3. 利益。

名前空間を使い始めたときは本当に辛抱強かったですが、慣れてしまえばそれほど難しくはありません。ただし、オートローダーの使用をお勧めします。設定するのは少し面倒ですが、一度完了すると、非常に役立ちます。

于 2014-12-22T12:32:09.707 に答える