Пакет моста php PuPHPeteer не может быть установлен на Laravel 9

Этот пакет nesk/puphpeteer был заархивирован и больше не работает с Laravel 9. Однако есть форки , которые, как я полагаю, будут работать с Laravel 9, поскольку в форках были обновлены зависимости в ошибках композитора. Я попробовал эти шаги в composer docs, но, похоже, не могу установить форк как зависимость композитора. Любое руководство в правильном направлении будет оценено.

В моем composer.json у меня есть эти новые записи.

{
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/NigelCunningham/puphpeteer.git"
    }
],
"require": {
    "nesk/puphpeteer": "dev-dev"
}

}

Когда я запускаю composer update, я получаю следующую ошибку:

"Your requirements could not be resolved to an installable set of packages. 

Problem 1
    - Root composer.json requires nesk/puphpeteer dev-dev -> satisfiable by nesk/puphpeteer[dev-dev]."

Что именно вы уже пробовали?

Nico Haase 04.02.2023 12:57

@NicoHaase, я добавил шаги для воспроизведения выше в редактировании.

dfeva 04.02.2023 18:09

ttps://github.com/NigelCunningham/puphpeteer не содержит ни ветки с именем dev-dev, ни такого тега. Ни один другой репозиторий

Nico Haase 05.02.2023 13:45

Найджел Каннингем/кукловод говорит, что ветвь по умолчанию = dev, а другая — zoon. В приведенных выше документах композитора говорится, что имена пользовательских веток добавляются к префиксу «dev-». Я не уверен, что я делаю неправильно. Я просто пытаюсь использовать github.com/NigelCunningham/puphpeteer fork ветку по умолчанию.

dfeva 06.02.2023 00:28

Документ просто учит вас, как разветвить ветку для пользовательской поддерживаемой версии, а не для решения.

Charlie 06.02.2023 14:02

И это ссылка на две вилки, поддерживаемые сообществом, так что либо вы устанавливаете zoonru/puphpeteer, либо NigelCunningham/puphpeteer.

Charlie 06.02.2023 14:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
7
215
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Резюме

На момент написания этого поста https://github.com/NigelCunningham/puphpeteer.git не был готов к Laravel 9.

Объяснение

Я попытался установить его на первую стабильную версию Laravel v9.0.0 (composer create-project laravel/laravel example-app 9.0.0).

composer.json (новые записи)

{
    "repositories": [
        {
            "url": "https://github.com/NigelCunningham/puphpeteer.git",
            "type": "git"
        }
    ],
    "require": {
        "nigelcunningham/puphpeteer": "^2.0.0"
    },

    "minimum-stability": "dev"
}

Возможно, вам потребуется установить или включить расширение сокетов PHP.

Он выдал ошибку ниже: composer update

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - symfony/process[v4.0.0-BETA1, ..., v4.4.10] require php ^7.1.3 -> your php version (8.1.6) does not satisfy that requirement.
    - symfony/process[v5.0.0-BETA1, ..., v5.0.0-RC1] require php ^7.2.9 -> your php version (8.1.6) does not satisfy that requirement.
    - symfony/process[v5.0.0, ..., v5.1.0-RC1] require php ^7.2.5 -> your php version (8.1.6) does not satisfy that requirement.
    - Root composer.json requires laravel/framework ^9.0 -> satisfiable by laravel/framework[v9.0.0-beta.1, ..., 9.x-dev].
    - Root composer.json requires nigelcunningham/puphpeteer ^2.0.0 -> satisfiable by nigelcunningham/puphpeteer[2.0.0].
    - Conclusion: don't install symfony/console[v6.0.19] | install symfony/process[v5.4.19] (conflict analysis result)
    - Conclusion: don't install symfony/console[v6.0.3] | install symfony/process[v5.4.19] (conflict analysis result)
    - Conclusion: don't install nunomaduro/collision[v6.4.0] | install symfony/process[v5.4.19] (conflict analysis result)
    - Conclusion: don't install symfony/process v5.4.19 (conflict analysis result)
    - Conclusion: don't install symfony/console[v6.2.5] | install symfony/process[v5.4.19] (conflict analysis result)
    - nigelcunningham/puphpeteer 2.0.0 requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0].
    - nesk/rialto 1.4.0 requires symfony/process ^3.3|^4.0|^5.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev, v5.0.0-BETA1, ..., 5.4.x-dev].
    - nesk/rialto[1.2.0, ..., 1.3.0] require symfony/process ^3.3|^4.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev].
    - symfony/console 6.3.x-dev conflicts with symfony/process v5.3.14.
    - symfony/console 6.3.x-dev conflicts with symfony/process v5.3.2.
    - symfony/console 6.3.x-dev conflicts with symfony/process v5.0.11.
    - symfony/console 6.3.x-dev conflicts with symfony/process v4.4.44.
    - symfony/console 6.3.x-dev conflicts with symfony/process v4.4.26.
    - symfony/console 6.3.x-dev conflicts with symfony/process v3.4.47.
    - symfony/console 6.3.x-dev conflicts with symfony/process v3.3.6.
    - nunomaduro/collision[v6.1.0, ..., v6.2.1] require symfony/console ^6.0.2 -> satisfiable by symfony/console[v6.0.2, ..., 6.3.x-dev].
    - Root composer.json requires nunomaduro/collision ^6.1 -> satisfiable by nunomaduro/collision[v6.1.0, ..., v6.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Если вы нацелите свое внимание на эту строку ниже:

- nigelcunningham/puphpeteer 2.0.0 requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0].

Для пакета nigelcunningham/puphpeteer требуется зависимость nesk/rialto, последняя версия которой dev-dev требует symfony/process: ^3.3|^4.0|^5.0. К сожалению, Laravel v9.0.0 (laravel/framework) требует symfony/process: ^6.0 сделать его несовместимым.


Двигаясь вперед, в своем вопросе вы объявили обязательную зависимость в своем composer.json файле "nesk/puppeteer": "dev-dev". Это следует из той же проблемы несовместимости с Laravel v9.0.0, как описано выше.

Он выдал ошибку ниже: composer update

 - nesk/puphpeteer dev-dev requires nesk/rialto ^1.2.0 -> satisfiable by nesk/rialto[1.2.0, 1.2.1, 1.3.0, 1.4.0].
    - nesk/rialto 1.4.0 requires symfony/process ^3.3|^4.0|^5.0 -> satisfiable by symfony/process[v3.3.0-BETA1, ..., 3.4.x-dev, v4.0.0-BETA1, ..., 4.4.x-dev, v5.0.0-BETA1, ..., 5.4.x-dev].

Приложение

Комментарий от ОП (dfeva)

Спасибо за отличный ответ! похоже, что эта вилка nesk/rialto обновлен до симфонии/процесса ^6.0. github.com/zoonru/rialto/blob/zoon/composer.json. Как я могу установить это сначала, чтобы потом я мог установить github.com/zoonru/puppeteer если я правильно понимаю. Спасибо за вашу помощь!

Для этого вы можете использовать:

composer.json (новые записи)

{
    "repositories": [
        {
            "url": "https://github.com/zoonru/rialto.git",
            "type": "git"
        },
        {
            "url": "https://github.com/zoonru/puphpeteer.git",
            "type": "git"
        }
    ],
    "require": {
        "nesk/puphpeteer": "dev-master"
    },

    "minimum-stability": "dev"
}

К сожалению, на момент написания этого поста последний тег git (версия 1.4.0, выпущенная 12 апреля 2020 г.) для зависимости zoonru/rialto зависел от старых версий "symfony/process": "^3.3|^4.0|^5.0".

Более новые изменения, указанные в вашем комментарии , направленные на поддержку новых компонентов Symfony ("symfony/process": "^3.3 || ^4.0 || ^5.0 || ^6.0"), были внесены позднее, 16 августа 2022 года. К сожалению, более новый тег git, отражающий эти изменения, еще не был официально выпущен. . 😑

Временное решение (используйте с осторожностью)

Если вы все еще настаиваете на установке zoonru/puphpeteer, вам может потребоваться разветвить https://github.com/zoonru/rialto и создать новый тег git, отражающий новые изменения, внесенные в репозиторий.

Шаги

  1. Создайте форк репозитория zoonru/rialto . Читать Разветвление репозитория.
  2. Клонируйте разветвленную версию репозитория. Читать Клонирование репозитория
  3. Создайте аннотированный тег git в разветвленной версии репозитория. Читать Создать тег в репозитории GitHub
    • По корневому пути вашего разветвленного репозитория откройте терминал. Запустите команду: git tag 1.5.0 -a, чтобы создать новый тег git. (Добавьте описание к своему тегу. Например: Версия 1.5.0)
    • Отправьте новый тег git в удаленный разветвленный репозиторий с помощью команды: git push origin --tags
  4. Теперь вы сможете увидеть свой последний тег git в удаленном разветвленном репозитории. То есть: https://github.com/steven7mwesigwa/rialto/tags
    • https://github.com/YOUR-GITHUB-USERNAME-HERE/rialto/tags
  5. Теперь в файле composer.json вашего проекта Laravel вместо https://github.com/zoonru/rialto.git используйте только что разветвленную версию удаленного репо. То есть: https://github.com/steven7mwesigwa/rialto.git

composer.json (новые записи)

{
    "repositories": [
        {
            "url": "https://github.com/steven7mwesigwa/rialto.git",
            "type": "git"
        },
        {
            "url": "https://github.com/zoonru/puphpeteer.git",
            "type": "git"
        }
    ],
    "require": {
        "nesk/puphpeteer": "dev-master"
    },

    "minimum-stability": "dev"
}

Вместо этого вы можете заменить https://github.com/steven7mwesigwa/rialto.git своим новым разветвленным URL-адресом удаленного репо.

  1. В корне вашего проекта Laravel откройте терминал и запустите команду composer update, которая установит zoonru/puphpeteer.

Пример вывода

А. композитор показать неск/риалто -а

PS C:\xampp\htdocs\example-app> composer show nesk/rialto -a
name     : nesk/rialto
descrip. : Manage Node resources from PHP
keywords : php, node, wrapper, communication, bridge, socket
versions : 1.5.0, 1.4.0, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.2, 1.0.1, 1.0.0, 0.1.2, 0.1.1, 0.1.0, dev-zoon, dev-dev
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage :
source   : [git] https://github.com/steven7mwesigwa/rialto.git c6ffad796941eaaf166c089f116a762f1c79d2e4
dist     : []
names    : nesk/rialto

autoload
psr-4
Nesk\Rialto\ => src/

requires
php ^7.2 || ^8.0
clue/socket-raw ^1.2
psr/log ^1.0 || ^2.0 || ^3.0
symfony/process ^3.3 || ^4.0 || ^5.0 || ^6.0

requires (dev)
monolog/monolog ^1.0 || ^2.0 || ^3.0
phpunit/phpunit ^8.0 || ^9.0

suggests
ext-weakref Required to run all the tests

B. Обновление композитора

PS C:\xampp\htdocs\example-app> composer update
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 1 update, 0 removals
  - Locking clue/socket-raw (v1.6.0)
  - Locking nesk/puphpeteer (dev-master 52bd425)
  - Locking nesk/rialto (1.5.0)
  - Downgrading psr/log (3.0.0 => 1.1.4)
  - Locking vierbergenlars/php-semver (v3.0.3)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 4 installs, 1 update, 0 removals
  - Syncing nesk/rialto (1.5.0) into cache
  - Syncing nesk/puphpeteer (dev-master 52bd425) into cache
  - Downgrading psr/log (3.0.0 => 1.1.4): Extracting archive
  - Installing vierbergenlars/php-semver (v3.0.3): Extracting archive
  - Installing clue/socket-raw (v1.6.0): Extracting archive
  - Installing nesk/rialto (1.5.0): Cloning c6ffad7969 from cache
  - Installing nesk/puphpeteer (dev-master 52bd425): Cloning 52bd42570e from cache
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.

  fruitcake/laravel-cors ........................................................................................ DONE
  laravel/sail .................................................................................................. DONE
  laravel/sanctum ............................................................................................... DONE
  laravel/tinker ................................................................................................ DONE
  nesbot/carbon ................................................................................................. DONE
  nunomaduro/collision .......................................................................................... DONE
  nunomaduro/termwind ........................................................................................... DONE
  spatie/laravel-ignition ....................................................................................... DONE

84 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].

No security vulnerability advisories found

Надеюсь, вы не забудете заменить URL-адрес разветвленного репозитория, например: https://github.com/steven7mwesigwa/rialto.git, на исходный URL-адрес https://github.com/zoonru/rialto.git репозитория в composer.json файле вашего проекта Laravel и переустановить zoonru/puphpeteer, как только zoonru/rialto выпустит новый официальный тег git, когда придет время.

Спасибо за отличный ответ! похоже, что эта вилка nesk/rialto обновлена ​​до symphony/process ^6.0. github.com/zoonru/rialto/blob/zoon/composer.json . Как я могу установить это сначала, чтобы потом я мог установить github.com/zoonru/puphpeteer, если я правильно понимаю. Спасибо за вашу помощь!

dfeva 10.02.2023 20:53

@dfeva Пожалуйста, проверьте раздел дополнений к моему отредактированному ответу.

steven7mwesigwa 11.02.2023 02:26

если бы у меня было больше щедрости, я бы дал. Я собираюсь внедрить ваше решение как можно скорее и сообщу вам о своих результатах. Я также связываюсь с обоими создателями форка по электронной почте, я сообщу им о ваших подробных шагах. Я уверен, что многие, переходящие на Laravel 9 или 10, также оценят ваш ответ. -Патрик

dfeva 11.02.2023 03:24

@dfeva Спасибо за комплимент. 😊 Вы уже реализовали решение? Это решило вашу проблему?

steven7mwesigwa 12.02.2023 05:51

Спасибо! Только что реализовал его, и он работает на Laravel 9. psr/log был понижен с 3.0.0 до 1.1.4, я посмотрю, какие проблемы это вызовет во фреймворке. Помимо указания новой версии драйвера хрома на путь и установки этих зависимостей github.com/puppeteer/puppeteer/issues/… пока все работает! Спасибо Спасибо!

dfeva 18.02.2023 21:34

@dfeva Добро пожаловать! Я очень рад, что смог помочь. Спасибо, что поделились своими выводами с нами здесь. 😉👍

steven7mwesigwa 18.02.2023 23:12

Другие вопросы по теме