Issues

ZF-12067: Zend_Search_Lucene_Interface_MultiSearcher stored in wrong location

Description

This class is located in ./Zend/Search/Lucene/MultiSearcher.php but should be in ./Zend/Search/Lucene/Interface/MultiSearcher.php

(Alternatively, the class should be renamed to Zend_Search_Lucene_MultiSearcher)

Comments

Still not resolved, it is very annoying !!!

Really the class just needs to be renamed, as it's not an interface but a concrete implementation of Zend_Search_Lucene_Interface. Here's a patch:


diff --git Zend/Search/Lucene/MultiSearcher.php Zend/Search/Lucene/MultiSearcher.php
index b2cb033..021b422 100644
--- Zend/Search/Lucene/MultiSearcher.php
+++ Zend/Search/Lucene/MultiSearcher.php
@@ -31,7 +31,7 @@ require_once 'Zend/Search/Lucene/Interface.php';
  * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
  */
-class Zend_Search_Lucene_Interface_MultiSearcher implements Zend_Search_Lucene_Interface
+class Zend_Search_Lucene_MultiSearcher implements Zend_Search_Lucene_Interface
 {
     /**
      * List of indices for searching.

The suggested fix breaks backwards-compatibility because an end user may be directly {{require_once}}'ing {{Zend/Search/Lucene/MultiSearcher.php}} and expecting to get class {{Zend_Search_Lucene_Interface_MultiSearcher}}, which won't work any longer.

Attached patch implementing BC fix for this issue. However, we end up with two classes in a single file, which is technically against ZF coding standards. Is there a better way that i'm not thinking of?

Fixed in trunk (1.12.0): r24862