我想将zend搜索集成到本地PHP项目中。我得到了各种各样的include错误。
我做了一些研究,似乎有很多关于它的旧文章写在zf2之前。对于zf1,它以前是直接的。包括lucene.php,就是这样。
然而,自从zf2发布以来,搜索组件不再是zf2框架的一部分,可以单独下载。当我包含Lucene.php时,脚本开始抱怨缺少类。(包括问题)
我应该包括所有的文件还是应该使用某种自动加载器?
您可以使用Composer来安装单独的ZF2包,它将为您处理任何自动加载和依赖项。
https://github.com/zendframework/ZendSearch你可以看到它也需要
zendframework/zend-stdlib
下载存储库,然后使用composer安装,这也会为你获取依赖项,并设置自动加载。
php composer.phar install
首先确保安装了以下内容:
- curl(确保您已将curl添加到路径环境中变量)
确保命令行使用的php.ini中已经启用了openssl。(对于那些在windows上使用wamp的人,有两个php ini文件。一个用于apache,另一个用于命令行。)
启动命令行并使用CD命令进入您解压缩zend search的目录,并运行以下两个命令
curl -s h**ps://getcomposer.org/installer | php
php作曲家。phar安装
在同一目录下创建一个PHP文件,并包含.vendor/autolload . PHP
创建一个自动加载函数来加载不同的库。目前,我写了一些简单的东西,如下所示:
<函数strong>自动装载($ classname){
$path = __DIR。DS。"图书馆"。$ classname。"。php";如果(file_exists(路径)美元){require_once(路径)美元;
}}
如果您知道不同的类的名称空间,则应该加载它们。这是基本的自动装弹器,不应该使用。
我一直在使用下面的指南,但是它已经过时了,因为类的名称已经被修改为如下所示:
$indexPath = 'C:'wamp'www'storage';美元指数=Lucene ZendSearch ' ' Lucene:创建(indexPath美元);
$doc = new ZendSearch'Lucene'Document();
$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("url",取消建立索引docUrl美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("创建",取消建立索引docCreated美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("急转弯",取消建立索引docTeaser美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段:文本("标题",docTitle)美元);$ doc -> addField (ZendSearch ' Lucene文档' '字段:文本("作者",docAuthor美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段:未载入史册("内容",
docBody美元));美元指数——> addDocument ($ doc);美元指数——> commit ();