sphinx-yii icon indicating copy to clipboard operation
sphinx-yii copied to clipboard

include(SphinxClient.php): failed to open stream: No such file or directory

Open maxodrom opened this issue 8 years ago • 2 comments

При такой конфигурации компонента, вылетает Fatal error: "include(SphinxClient.php): failed to open stream: No such file or directory":

'sphinxAPI' => [
            'class' => 'vendor.sergebezborodov.sphinx-yii.ESphinxApiConnection', // sphinx api mode
            //'class' => 'vendor.sergebezborodov.sphinx-yii.ESphinxMysqlConnection', // for sphinx ql mode
            'server' => ['127.0.0.1', 9306],
            'connectionTimeout' => 3, // optional, default 0 - no limit
            'queryTimeout'      => 5, // optional, default 0 - no limit
],

Последюущий вызов в контроллере:

/** @var $sphinx ESphinxMysqlConnection */
$sphinx = Yii::app()->sphinxAPI;
echo '<pre>';
print_r($sphinx);
exit;

Почему не подключается класс SphinxClient? И как решить эту проблему?

maxodrom avatar Aug 11 '16 15:08 maxodrom

приветствую, нужно скачать исходники сфинкса, там в подпапке будет файл sphinxapi.php его нужно заинклудить, в нем и есть реализация класса SphinxClient

sergebezborodov avatar Aug 12 '16 07:08 sergebezborodov

Это я уже догадался. А нельзя ли зафиксировать этот момент в самом определении класса class ESphinxApiConnection extends ESphinxBaseConnection, включив в самое его начало строчку?

require_once dirname(__FILE__) . '/sphinxapi-2.1.1.php';

class ESphinxApiConnection extends ESphinxBaseConnection {

}

Тогда бы с вашим пакетом поставлялся бы и сам sphinxapi, который бы не требовалось подключать явно. А при отработке конструктора этого класса не было бы Fatal error. Тем более в вашем пакете уже есть такой исходник, который можно было бы использовать по умолчанию.

maxodrom avatar Aug 12 '16 07:08 maxodrom