2016-12-14 11 views
1

symfony3でCOM(Component Object Model、http://php.net/manual/en/intro.com.php)クラスを使用しようとしています。Symfony COMクラス

namespace AppBundle\Lib; 
class Sfera 
{ 
    /** 
    * Sfera constructor. 
    */ 
    public function __construct() 
    { 
     $gt = new COM("Insert.gt") or die("Cannot create an InsERT GT object"); 
//  $gt = new \COM("Insert.gt") or die("Cannot create an InsERT GT object"); 

    } 
} 

しかし、私はsymfonyでCOMクラスを見つけることができません。

名前空間 "AppBundle \ Lib"からクラス "COM"を読み込もうとしました。 別の名前空間に「使用」ステートメントを忘れていましたか?

または

グローバル名前空間からクラス "COM" をロードしようとしました。 "use"ステートメントを忘れましたか?

私はそれが働いて取得する方法をphp.iniの

でphp_com_dotnet.dllを有効に?

+0

私の悪い、その今働いている。拡張機能php_com_dotnet.dllファイルが破損しました。 – hamzo

答えて

0

クラスに名前空間を使用すると、すべてのrootクラスは名前の前に\を持つ必要があります。これは動作します:

PHPでの名前空間に関する
namespace AppBundle\Lib; 

class Sfera 
{ 
    /** 
    * Sfera constructor. 
    */ 
    public function __construct() 
    { 
     $gt = new \COM("Insert.gt") or die("Cannot create an InsERT GT object"); 

    } 
} 

詳細はこちら:http://php.net/manual/en/language.namespaces.basics.php

また、拡張機能が有効になっていることを確認してください - それはphpinfo();出力に見えるのですかどうかを確認します。たぶん、enable_dl = Onを設定したり、extension_dir = "ext"のコメントを忘れたりしましたか?

関連する問題