2013-05-21 49 views
1

我想將zend搜索集成到本地PHP項目中。我收到各種包含錯誤。本地PHP項目中的Zend搜索集成

我已經做了一些研究,似乎在zf2之前寫了很多關於它的舊文章。用zf1它過去很簡單。包括lucene.php就是這樣。

但是,自zf2發佈以來,搜索組件不再是zf2骨架的一部分,並且可以單獨下載。當我包含Lucene.php時,腳本明星抱怨缺少類。 (包括問題)

我應該包含所有文件還是應該使用某種自動裝載器?

回答

2

開始通過確保你已經安裝了以下內容:

  • 捲曲(請確保您已經添加捲曲到PATH環境 變量)
  • 作曲家

確保在命令行使用的php.ini中啓用了openssl。 (對於在windows上使用wamp的用戶,有兩個php ini文件,一個用於apache,另一個用於命令行)

啓動命令行並使用CD命令進入已解壓縮的目錄zend搜索並運行以下兩個命令:

curl -sh ** ps://getcomposer.org/installer | PHP

PHP composer.phar安裝

在同一目錄下創建一個PHP文件,包括.vendor/autoload.php

創建創建一個自動加載函數加載不同的庫。目前我已經寫了一些簡單的,如下:

功能自動加載($類名) {
$ PATH = __DIR
。 DS。 「圖書館」.DS。 $ classname。 」。PHP的「;

如果(file_exists($ PATH)) { require_once($ PATH);
}。 }

這應該加載不同類別提供,你知道他們的名字空間這是基本的自動加載磁帶機,不應該被用來

我一直在使用以下guide但是它過時,因爲類的名稱已被修改爲類似如下:

$ indexPath ='C:\ wamp \ www \ storage'; $ index = ZendSearch \ Lucene \ Lucene :: create($ indexPath);

$ doc = new ZendSearch \ Lucene \ Document(); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: UnIndexed('url', $ docUrl)); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: UnIndexed('created', $ docCreated)); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: UnIndexed('teaser', $ docTeaser)); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: Text('title', $ docTitle)); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: Text('author', $ docAuthor)); $ doc-> addField(ZendSearch \ Lucene \ Document \ Field :: UnStored('contents', $ docBody));

$ index->​​ addDocument($ doc); $首頁 - >提交();

3

您可以使用Composer來安裝單獨的ZF2軟件包,這將爲您處理任何自動加載和依賴關係。

https://github.com/zendframework/ZendSearch

你可以看到它也需要

zendframework/zend-stdlib 

下載庫,然後用作曲家安裝,這也將獲得依賴你,並設置自動加載。

php composer.phar install