1

我的主要问题是,我无法在我的 symfony2 项目中访问 Solarium(第三方库),我不明白为什么。我有一个 symfony2 应用程序并想编写自己的 Solr 连接器。因此我想使用日光浴室。(重要提示:我不想为此使用其他捆绑包)

首先我通过作曲家安装它

"require": {
        //...
        "solarium/solarium": "3.3.0.x-dev"
    }

然后我打电话给:

php composer.phar install

php composer.phar update

其次,我在我的包中为我的连接器创建了一个新目录:

/src/COMPANY/ThatIsMyBundle/SolrSearch/

在这个目录中是我的类 SolrConnector.php

namespace COMPANY\ThatIsMyBundle\SolrSearch;

use Solarium\Client;
//use Solarium\Core\Client;

class SolrConnector {
        private $solr_client;
        function __construct($settings)
        {
            $solr_config = array(
                'endpoint' => array(
                    'protokolldb' => array(
                        'host' => $settings['solrHost'],
                        'port' => $settings['solrPort'],
                        'path' => $settings['path'],
                        'core' => $settings['core'],
                        'timeout' => $settings['timeout']
                    )
                )
            );
            $this->solr_client = new Client($solr_config);
        }

         /**
         * Check if Solr is on.
         */
       function executePing() {
            $ping = $this->solr_client->createPing();
            try {
                $this->solr_client->ping($ping);
                echo "Solr is fine.\n";
            } catch (Exception $e) {
                echo "Solr is unaccessible. Look up whats wrong with Solr and restart this script.\n ".$e->getMessage();
            }
        }

    }

我从 symfony 收到此错误消息:

尝试从“(我的项目的特定路径)/SolrSearch/SolrConnector.php 第 32 行中的命名空间“Solarium”加载类“Client”。您是否需要从另一个命名空间“使用”它?

我必须做什么才能在 Symfony2 Bundle 中使用 Solarium?我认为这是一个命名空间/使用/要求问题。我用谷歌搜索了几个小时......没有解决方案。

我尝试过的事情:

添加

require('../vendor/autoload.php);

同样的错误。

4

1 回答 1

0

当你使用

php composer.phar install

它只安装存储在 composer.lock 中的包

你需要跑

php composer.phar update

安装新软件包。它还清除和预热 symfony 缓存和自动加载器

于 2015-04-02T09:52:59.627 回答