Foren / National / Russian / Тех. поддержка / Как установить Composer для Сotonti?

Как установить Composer для Сotonti?

prostogorod
#1 20. Oktober 2024, 15:54

Приветствую! Решил написать плагин массовой индексации страниц сайта Google Indexing API на PHP.

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

// Подключаем классы Google API
require_once $cfg['plugins_dir'] . '/googleindexing/inc/google/Model.php'; 
require_once $cfg['plugins_dir'] . '/googleindexing/inc/google/Exception.php'; 
require_once $cfg['plugins_dir'] . '/googleindexing/inc/google/Collection.php'; 


Но подключив все классы, получил ошибку:

Fatal error: Uncaught LogicException: Could not find supported version of Guzzle. 

Посмотрел на https://docs.guzzlephp.org/en/stable/overview.html#installation
Понял, что пришло время разбираться с ssh и Composer. ssh - более мене понял, поработал с командами.
Но Composer, возникли проблемы. 
Почитав справку https://www.cotonti.com/ru/docs/ext/using-composer. Я так и не понял. Composer установлен в Сotonti или нет?
В версии Cotonti Siena 0.9.23 добавлена поддержка Composer, но я так понял нужно еще установить. Файлы находятся в папке lib/vendor
Подскажите, пожалуйста, как установить Composer для Сotonti? Какая последовательность действий? Зависит ли версия PHP?

P.S. Я так понял установлен, если есть файлы composer.lock и composer.json. А почему они в корне? При вводе команды composer -V, No such file or directory. С хостингом сейчас буду связаться.

P.S2. Установил composer с хостинга. Но я не понял как он соотносится с нашими файлами composer в Cotonti?

[mynic@hosting]$ composer -V
Composer version 2.8.1 2024-10-04 11:31:01
PHP version 8.2.24 (/usr/local/php82/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.


Может это поможет, сделал diagnose. Вопросы: почему Checking composer.lock: FAIL? Почему, Checking pubkeys: FAIL?

А также: Composer could not detect the root package (cotonti/cotonti) version, defaulting to '1.0.0'. Как это исправить или правильно сделать?

[mynic@hosting]$ composer diagnose
Composer could not detect the root package (cotonti/cotonti) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version
Checking composer.json: WARNING
Defining autoload.psr-4 with an empty namespace prefix is a bad idea for performance
License "BSD 3-Clause" is not a valid SPDX license identifier, see https://spdx.org/licenses/ if you use an open license.
If the software is closed-source, you may use "proprietary" as license.
Checking composer.lock: FAIL
stability-flags : Array value found, but an object is required
platform-dev : Array value found, but an object is required
Checking platform settings: OK
Checking git settings: OK git version 2.43.5
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.8.1
PHP version: 8.2.24
PHP binary path: /usr/local/php82/bin/php
OpenSSL version: OpenSSL 1.1.1k  FIPS 25 Mar 2021
curl version: 7.61.1 libz 1.2.11 ssl OpenSSL/1.1.1k
zip: extension present, unzip present, 7-Zip not available

 


Dieser Beitrag wurde von prostogorod (am 20. Oktober 2024, 18:30, vor 3 Monate) bearbeitet
Alex300
#2 21. Oktober 2024, 14:06

Composer - это менеджер зависимостей. Он устанавливается на сервер как обычный пакет или локально, для локальной разработки.

Чтобы работать с ним в Cotonti дополнительно ничего устанавливать не нужно. Нужно просто в composer.json добавить нужные зависимости и выполнить в командной строке в корне проекта

composer update

Документация к библиотеке, которую Вы хотите использовать должна содержать что именно нужно вписать в секцию "require" файла composer.json. И еще, ваша подключаемая  библиотека содержит свои зависимости. Guzzle. Их, как правило, прописывать в composer.json не нужно. composer update все сам корректно установит и классы буду корректно подхватываться автозагрузчиком без всяких require_once

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/