Установите ZendSearch в каркасное приложение ZF2

Я пытаюсь добавить поиск Lucene в свой проект ZF2. Пакет не указан на странице пакетов ZF2. Я попытался обойти это, установив его вручную с GitHub.

Я добавил это в свой composer.json:

"repositories": [{
    "type": "package",
    "package": {
        "name": "zendframework/zendsearch",
        "version": "0.1",
        "source": {
            "url": "https://github.com/zendframework/ZendSearch.git",
            "type": "git",
            "reference": "master"
        }
    }
}]

и установил через composer.phar:

$ ./composer.phar require zendframework/zendsearch:0.1

Пакет был установлен, но автозагрузка не работает. Кто-нибудь заставил ZendSearch работать в каркасном приложении ZF2?


person Michael Thessel    schedule 29.04.2013    source источник


Ответы (3)


Взгляните на ZendSearch composer.json. В частности, раздел autoload:

"autoload": {
    "psr-0": {
        "ZendSearch": "library/"
    }
}

Вам это нужно в вашем «пакете», чтобы автозагрузка работала (на самом деле ваш пакет должен быть как можно ближе к реальному composer.json).

person Ezequiel Muns    schedule 30.04.2013

Это сработало для меня:

"repositories": [
    {
        "type": "composer",
        "url": "https://packages.zendframework.com/"
    },
    {
        "type": "package",
        "package": {
            "name": "zendframework/zendsearch",
            "version": "0.1",
            "source": {
                "url": "https://github.com/zendframework/ZendSearch.git",
                "type": "git",
                "reference": "master"
            }
        }
    }
],
"autoload": {
    "psr-0": {
        "ZendSearch\\": "vendor/zendframework/zendsearch/library/"
    }
}
person Michael Thessel    schedule 01.05.2013
comment
Вы также можете поместить ключ autoload без изменений под ключ package, который привяжет директиву к этому проекту, и вам не придется запекать путь к каталогу библиотеки. - person Ezequiel Muns; 03.05.2013
comment
Я тоже так думал. Но я пробовал это в разных вариантах, но это не сработало. Я загрузил здесь другую конфигурацию, pastebin.com/53PfYM1V. Не уверен, что найдешь какие-нибудь проблемы. - person Michael Thessel; 03.05.2013
comment
Это выглядит точно так же, как и мой тест, но мой сработал. Интересно, это потому, что я сделал это с нуля (я заметил, что composer становится забавным, когда вы редактируете composer.json, не удаляя каталог vendor/<vendorname> даже при запуске 'update'). - person Ezequiel Muns; 03.05.2013

Это сработало для меня

"require": {
    "php": ">=5.3.3",
    "zendframework/zendframework": "2.3.*",
    "zendframework/zendsearch": "dev-master"
},
"autoload": {
    "psr-0": {
        "ZendSearch\\": "vendor/zendframework/zendsearch/library/"
    }
}
person Mohit Padalia    schedule 03.04.2015