Composer, помогите разобраться

Аватар пользователя DarKaynd DarKaynd 22 июня в 10:50
1

И снова здравствуйте. Помогите разобраться с такой вещью как Composer. Я сайт делал в тупую из архива закинув на хостиг и так далее. И вот начал натыкаться на модули, которые требуют этот самый Composer.
Проблема в том, что все инструкции, на которые я натыкаюсь, непосредственно по этой системе, типа вот Composer прикольно, сам подгружает нужные библиотеки, управляет php кодом. Всего-то пару команд ввести.
А вот где взять базовые знания? Куда эти команды вводить, что за программы нужны, как на моем хостинге (it-patrol) использовать этот самый Composer. Это с компа делается, или где-то на хостинге?
Я вообще дитя винды, и консоль для меня: "ну да, туда вводят команды", но на этом все... (хорошо хоть не игровая приставка :D)
Накидайте, пожалуйста, каких-нибудь ссылок на документацию, желательно на русском

Комментарии

Аватар пользователя artomas artomas 22 июня в 11:04

На вашем хостинге он стоит глобально. Материал, хоть и на англ, достаточно лаконично и структурировано есть на собственно https://getcomposer.org. Дальше Гугл.
Вот, на мой взгляд, набор, которого достаточно для начала и базовых работ по проекту:
Install component: php composer.phar require drupal/COMPONENT.
Check updates: php composer.phar outdated drupal/*.
Update component: php composer.phar update drupal/COMPONENT --with-all-dependencies.
Update core-recommended: php composer.phar update drupal/core-recommended --with-all-dependencies.
Check core-recommended: php composer.phar show drupal/core-recommended.
У вас все это будет без "php" и ".phar".
Все исполняется из корня проекта, где лежит composer.json. Ну, а как подключиться в консоли к хосту читайте все в том же Гугле. Обычно $ ssh USER@HOST, спросит пароль, введите (ввод пароля не отображается).

Аватар пользователя DarKaynd DarKaynd 22 июня в 11:12

Спасибо, почитаю, что вы скинули, но пока то что вы написали, я вообще ниче не понял )

Аватар пользователя VasyOK VasyOK 22 июня в 15:52

Соединиться по SSH с Патрулем умеете? Например с помощью putty. В Линуксе можно прям из командной строке. В Винде вроде тоже можно, но чуть с гемороем.

Соединились вбиваете
mc
показывается файловый менеджер. В нем в папку сайта перешли - F10 - выход из мс - вбиваете команды в папке сайта.

Это ясно?

Аватар пользователя ivnish ivnish 22 июня в 16:03
2

VasyOK wrote: В нем в папку сайта перешли - F10 - выход из мс

Зачем выходить из mc? Ctrl+O свернет mc и даст полноценный доступ к консоли. Повторный Ctrl+O снова развернет mc

Аватар пользователя bsyomov bsyomov 22 июня в 16:35

*Выключает показ панелей, строго говоря, чтобы было видно вывод.
Точно также можно выполнять команды и не выключая их, если не надо его смотреть.

Аватар пользователя DarKaynd DarKaynd 23 июня в 10:55

Суть понял, а что нужно для соединения ввести, это как к фтп конектюсь или там у них что-то свое надо спросить?

Аватар пользователя DarKaynd DarKaynd 23 июня в 10:53

Я понимаю, что это нагло, но мне это все пока нужно только, чтоб ImageMagick поставить, и что там рядом ему требуется... вот если б написал кто коротенько инструкцию с нуля Smile На уровне:
1.установи это (винда10)
2.зайди туда введи это
3. после вот это
4. ????
5.профит
Я конечно начну в ближайшее время это изучать, но мало ли Smile

Аватар пользователя bsyomov bsyomov 23 июня в 16:14

Imagemagick не ставится композером. Это отдельный софт и расширение php для работы с ним, а не библиотека на php... Ну, и если оно нужно вам на хостинге, то при чём тут win10?

Как его ставить под win, зависит от того, как установлено там остальное ПО для разработки, тот же php.
Тут, если нет понимания, лучше воспользоваться каким-нибудь openserver.

Аватар пользователя VasyOK VasyOK 23 июня в 22:02

Ладно буду писать. Если что гуры поправят

1. Сделайте на Патруле дополнительный домен. Или на рабочий если бекап всего сделали.
Положите в корень домена эти 2 файла
https://github.com/drupal/recommended-project

Зайдите по SSH в папку сайта и выполните composer install

2. После этого установите на сайта композером все модули, что на рабочем сайте.
тут
https://www.drupal.org/project/imagemagick/releases/8.x-3.2
написано
composer require 'drupal/imagemagick:^3.2'
так модуль конкретной версии устанавливается.
если вбивать composer require 'drupal/imagemagick' - устновится последняя версия модуля.

3. Файлы библиотек Суперфишь, Колорбокс пока можете ложить в web/libraries. Потом тут почитаете https://niklan.net/blog/130#ustanovka-javascript-bibliotek

4. Тему офоромления в web/themes/custom/

5. Папку файловой системы перекиньте.

6. На Патруле скажите что собрали сайт Композером и его корневая папка должна быть web.

7. Дайте новособранному сайту рабочую БД. Если все правильно сделали - все должно работать.

Аватар пользователя bsyomov bsyomov 24 июня в 16:22

Если про модуль drupal, то да. Просто нужен ещё сам imagemagick на сервере, и расширение php-imagick. Неплохо бы убедиться, что они есть.

Ну и про win часть сильно сбила с толку. Smile

Аватар пользователя VasyOK VasyOK 24 июня в 19:28

Даже не знаю есть ли они там для последних версий PHP. Писали, что когда нибудь поставят. Сейчас это реально необходимо ввиду обязательного генерирования webp для любителей большого пейджспида.

Аватар пользователя DarKaynd DarKaynd 27 июня в 20:11

Так, благодаря классным ребятам с патруля сайт теперь собран через компоузер, меня сейчас один вопрос интересует, он как бы получил доп.функционал, в виде компоузера, или он теперь только через него работать будет?
Конкретно установка модулей, ее можно производить из админки как раньше или теперь надо только компоузером все делать?

Аватар пользователя DarKaynd DarKaynd 27 июня в 23:06

Чет вы меня затупили))
Зайти в "расширения-новый модуль" и там по ссылке устанавливать теперь нельзя, все сломается, надо в принципе через композер.
Или установится и что будет?

Аватар пользователя artomas artomas 27 июня в 23:30

Напомните/объясните зачем вы тогда полезли в Композер? Серьезно. Не понимаю.
Вам же написали: "Ставить можно и обычным способом, но нужно Композером". На мой взгляд, исчерпывающий ответ. Вы изучили хоть назначение Композера все-таки?

Аватар пользователя DarKaynd DarKaynd 28 июня в 6:11

Ну вот мне ниже написали, в чем прикол, что получается что модуль по отдельности ставится, и компоузер не отслеживает его. Собственно это я и хотел уточнить

Аватар пользователя artomas artomas 27 июня в 23:43
1

Композер ставит компоненты (модули, темы), учитывая все зависимости (необходимые для компонента компоненты), вам нужно только согласиться при включении (в админе) с тем, что предлагется еще включить. Обновления тоже тянутся все (библиотеки нужно отдельно разбирать по установке и обновлениям). Таким образом вы исключаете необходимость ставить все руками, а потом все отдельно обновлять. Плюс манипуляция с версиями. Да вообще: просто привыкните к консоли, времени мало займет, но потом сократит очень много времени и нервов. Ведь явно "composer require drupal/COMPONENT" значительно проще, надежнее и быстрее + все профиты по обновлениям. Библиотеки отлично даже "тупым" способом втягиваются в проект (посредством composer.json), но существует еще bower, который еще больше профита дает.

Аватар пользователя artomas artomas 27 июня в 23:57

Пример по зависимостям простой.
У вас ядро (сам Друпал) поддерживает версию модуля, который вам нужен. Но этот модуль требует еще один модуль, версия которого не поддерживается ядром. Композер вам про это мгновенно скажет, вы примите решение в composer.json. Все.
По библиотекам.
Сколько нужно либ поставить для веб-форм? Кучу (необходимость не обсуждаю сейчас). Все качать? Нет. Просто Композер поднастроить за минут 10-20 для вас, уверен. Мануалов полно. И все, забыли.
Осознайте необходимость просто и научитесь работать в консоли. Так будет проще потом.

Аватар пользователя VasyOK VasyOK 28 июня в 2:02

Установится и будет работать. Я не знаю отрицательных последствий, просто композер не сможет обновлять этот модуль. Ну и в 2-х местах модули будут.

Сейчас "модно" нововведения тестировать на тестовом сайте, а потом переносить на продакшн. Если собрано Композером - нужно перенести файлы composer.json, composer.lock (конечно кастомные модули темы, патчи, тоже перенести) и запустить composer install - новые модули установятся. Вам оно надо следить: какие модули Композером установлены, какие - нет?

Есть еще патчи. Композером удобно их ставить и вспоминать незлым тихим словом.... Вы работаете с context, rules, ubercart, search_api, facets, commerce, flag, messages? Если да - придется использовать. Даже если модуль и ставится без Композера.

Аватар пользователя ivnish ivnish 28 июня в 6:24

VasyOK wrote: Я не знаю отрицательных последствий

Отрицательные последствия - это то, что модуль будет отсутствовать в composer.json/composer.lock и при переносе сайта на другой сервер (или на локалку) при запуске composer install он не будет установлен. Это гарантировано даст вам WSOD и чтение логов

Аватар пользователя VasyOK VasyOK 28 июня в 14:27

Ну так можно ж ручками модули перенести на другой сервер. Ок, обойдемся без инструкций по быдлокодингу.

Аватар пользователя DarKaynd DarKaynd 28 июня в 8:33

Ну вот как водится, в интернете куча инструкций, которые пропускают "очевидные" вещи...
Сейчас у меня структура файлов на ftp это Пользователь (u7178)-Папка domains-внутри, ну понятно домены. В домене(darkaind.ru) две папки vendor и web. В вебе, судя по структуре, собственно сайт. Я правильно понял, что в папу vendor скидывается то что композер скачивает, и оттуда берет уже на сайт?
До чего дошел мой мозг.
Запустил прогу, конкретно выше советованную PuTTY, на сайте патруля и инструкция, логин, пароль, зашел.
Знач в консоле я нахожусь в u7178 (типа пользователь). Я ввожу cd domains/darkaind.ru для попадания в папку сайта, вроде попал. Именно darkaind.ru, не web, внутри которого лежат папки vedor web и файлы .json и .lock
консолька пишет u7178@marrow ~/domains/darkaind.ru
Ну или через mc f10 (пока писал этот длинопост, чет затупил, что мне уже писали, что делать, по этому первый раз через cd) Smile
Тогда адрес такой же, только вместо /darkaind.ru машинное имя типа /u7178.marr(четтам).net
И находясь в этом каталоге ввожу команды по установке?
Я чего спрашиваю, чтоб если это не так, то не ввести куда-нибудь не туда и все не сломать)
И еще пару тупых вопросов, влияет ли каталог "синонима" на что-либо, на хостинге это как ярлык, и как бы не влияет же, да?
И второй тупой вопрос, в этом Putty можно сделать так, чтоб соединение не отрубалось от бездействия, или какой-то реконект. А то я пока туплю, потом чет начну вводить, мне "ой, дисконект" и как бы ничего больше не сделать, программу надо перезапускать

Аватар пользователя ivnish ivnish 28 июня в 8:36

DarKaynd wrote: И находясь в этом каталоге ввожу команды по установке?

Команды composer и drush нужно вводить находясь в корне проекта (там где composer.json, web, vendor)

DarKaynd wrote: влияет ли каталог "синонима" на что-либо, на хостинге это как ярлык, и как бы не влияет же, да?

Вопрос не очень понятен, нужно переформулировать

Аватар пользователя DarKaynd DarKaynd 28 июня в 9:03
ivnish wrote: Вопрос не очень понятен, нужно переформулировать

Ну если зайти через ftp, выглядит это дело так. И когда я захожу через ssh я могу зайти через cd в darkaind.ru (ну тупо помню название, если руками ввожу проще так) и путь там соответственно darkaind на конце, или через ms f10, тогда я оказываюсь в каталоге u7178.marrow**. Но они так-то одинаковые же, и на композер это влиять не должно.

Эти два каталога по файлам одинаковые, меня с darkaind.ru сразу кидает в marrow, если я пытаюсь зайти, darkaind как бы ярлык, вопрос именно для композера так же пофиг в каком из них я нахожусь или не пофиг?

Аватар пользователя DarKaynd DarKaynd 28 июня в 11:29

Ну крч, вроде все работает. Даже этот магик поставился, и прикольно что сам докачал что ему там надо было ему докачать)
Правда он не работает, но по объективным причинам (что выше писали, про пакет на сервере, это я уж узнаю) Biggrin
Спасибо всем за участие!