ручная работа(без Composer)
Re: ручная работа(без Composer)
Ахтыжблин, ото я слепой на оба глаза, ну бывает - всего 2 дня как со вторым вожусь, не всё еще до конца облазил. Спасибо Ушел разбираться
Re: ручная работа(без Composer)
UPD: а, не, немножко не то что надо. Там в подсказке показано как сделать локальный гит-репозитарий, я не хочу эту библиотеку выносить даже в локальный репозитарий - хочу чтобы вся разработка велась по месту установки, в качествае репозитария в данном случае выступает непосредственно сам репозитарий всего проекта вместе взятого, зачем еще что-то где-то отдельно держать? Да, это немножко не composer-way, ибо у него задумка что всю папку vendors можно грохнуть и пересоздать по месту, однако мне это мало интересно. Не будет это расширение вестись отдельной разработкой никогда в жизни, мало того - правиться оно будет всегда по месту, никто его поправлять где-то там не будет, потом пушить наверх, или после поправки локально наверх пушить - это лишний головняк. Ладно, может ща сам придумаю как бытьchungachguk писал(а):Можно. в GII при генерации расширения, в конце появляется подсказка как реализовать установку пакета локально.
А вот за генератор экстеншена спасибо - не знал, не видел, реально слепой на оба глаза
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: ручная работа(без Composer)
Я обычно, копирую нужную папку с расширением в vendor, инициализирую git, прописываю в composer.json путь и всё. Остаётся только комитить изменения перед выполнением composer update. Никаких git pull и git push я не делаю.
Re: ручная работа(без Composer)
Я, в конечном итоге, выкрутился чуть иначе. Таки пошел через артефакты, в общем вопрос решился, делюсь хаком, может решение не самое изящное, кто-то знает лучше, и поделится, но пока так. В общем:chungachguk писал(а):Я обычно, копирую нужную папку с расширением в vendor, инициализирую git, прописываю в composer.json путь и всё. Остаётся только комитить изменения перед выполнением composer update. Никаких git pull и git push я не делаю.
1. У меня весь проект лежит внутри паблик-папки, сделал чтобы без всяких заморочек можно было на shared-хостинг вывешивать, да и с Vesta CP хорошо дружило. Соответственно все файлы лежат в папке application (то есть application/vendors/ application/controllers и т.д.), на одном уровне с ней лежит папка _dev_process где хранится всякий мусор нужный при разработке.
2. Через GII делаю каркас экстеншена, единственное что меня попросило добавить тег version в composer.json, сделал:
Код: Выделить всё
"license": "GPL-3.0+",
"version": "0.0.1",
"authors": [
4. В application/composer.json делаю правки:
Код: Выделить всё
"repositories": [
{
"type": "artifact",
"url": "../_dev_process/composer-artifacts/"
}
],
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"gex/yii2-liba": "*"
},
6. PROFIT
Проводил эксперимент - в /application/vendor/gex/yii2-liba добавлял файлы, правил файлы - ни после composer install, ни после composer update ничего не уходило и не менялось, ничего не добавлялось и не исправлялось, в общем я получил то что я хотел. Может через жопу, но работает. Если здесь вдруг есть проктологи аналогичные мне - пользуйтесь
Re: ручная работа(без Composer)
вариантов много. указать файлы для автолоада, создать гит-репо и прописать в composer.json, переписать либу в psr-4 и подключить в ручнуюGeX писал(а):Такс, насколько я понял принцип, то проект использует автолоад от композера, ок, нормально, пусть будет. Теперь момент. У меня есть библиотека, самопальная, самописная, несколько функций, скелеты классов и т.д., короче этакая надстроечка (у меня там была своя удобная мне надстройка для дебага в файл, аналог Zend_Registry, скелет под класс гидратора и т.д.). В yii1.1 я это дело подключал экстеншеном и прекрасно с ним работал. Ок. Если что-то нужно было дописать - дописывал непосредственно в папке экстеншена проекта, то есть эта штука совершенно не имела своего личного репозитария, нигде не лежала, жила себе тихо-мирно внутри проекта.
Теперь ситуация - композер. Я понимаю что в эту же библиотеку я могу добавить composer.phar, запаковать архивом и подключить или как пак, или как артефакт, оно себе встанет в vendors, пропишется в autoload и будет всё хорошо.
Но например у меня либа лежит в vendors/gex/liba. Можно ли композеру сказать что исходный репозитарий это vendors/gex/liba ? Чтобы он при composer install и composer update себе мозг не сломал? Можно ли править содержимое vendors/gex/liba так, чтобы оно не потёрлось при composer install или composer update?