关于ThinkPHP引入sdk(部署xunsearch),真心求帮助呀!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ThinkPHP引入sdk(部署xunsearch),真心求帮助呀!相关的知识,希望对你有一定的参考价值。

我想要的效果是,在ThinkPHP中或者其他框架中可以使用xunsearch。我已经实现了面向过程的xunsearch部署,就是在网站根目录下建一个test.php文件。在这个文件中按照xunsearch官网的步骤进行操作。然后我就想部署到框架中。错误就出来了。
尝试一:按照xunsearch官网说的直接require ‘/usr/local/xunsearch/sdk/php/lib/XS.php’;然后直接在控制器中new XS(‘demo’);这个require,我分别在ThinkPHP的入口文件index.php中和在控制器中都尝试了。结果是,引入不报错,但是new不出对象来!
尝试二:按照ThinkPHP3.2手册中说的,将整个SDK放入ThinkPHP框架的Org目录中,再将XS.php重命名为XS.class.php,在XS.class.php中的头部添加namespace /Org/sdk/php/lib;然后在控制器中new /Org/sdk/php/lib/XS('demo');错误提示XS.class.php中部分类不存在,简单说就是XS.class.php有好多类,而且有继承关系,比如XSException继承了Exception,但是在整个XS.class.php文件中都不存在Exception这个类,所以报错了。
小弟没有财富值了!忘哪个仁兄多少给点建议!小弟虚心接受!

参考技术A 那就别用这种方式 用import吧import('Org.sdk.php.lib.XS',LIB_PATH,'.php');追问

试了您的代码,报错如下

这是3.2之前的方式,从3.2之后开始使用命名空间,使用命名空间报错如下

追答

那你看看你XS.class.php里面引用别的类的方式是不是有问题

追问

我给你看下我的测试,首先我在与XS.class.php相同的目录下面创建了test.class.php截图如下

然后在控制器中实例化这个对象,截图如下

操作的结果如下

追答

用import方式 就不需要把你要加载的类写出namespace那种形式了 正常导入就行

以上是关于关于ThinkPHP引入sdk(部署xunsearch),真心求帮助呀!的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp引入第三方类库常见问题

关于在BAE上部署ThinkPHP框架的问题

ThinkPHP部署

tp框架引入第三方sdk的经验总结

极光PHP SDK 3.5.1版本,在Thinkphp3.2.3中集成使用

thinkphp 官方文件执行引入流程