1

我正在尝试在 symfony3 中使用 COM(组件对象模型,http ://php.net/manual/en/intro.com.php)类。

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”。您是否忘记了“使用”声明?

我在 php.ini 中启用了 php_com_dotnet.dll

如何让它工作?

4

1 回答 1

0

当您在类中使用命名空间时,所有root类都需要\在名称之前。这将起作用:

namespace AppBundle\Lib;

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

    }
}

更多关于 php 命名空间的信息在这里: http: //php.net/manual/en/language.namespaces.basics.php

还要确保启用了扩展 - 检查它是否在phpinfo();输出中可见。也许您忘记设置enable_dl = On或取消注释extension_dir = "ext"

于 2016-12-14T09:46:22.920 回答