Web-Services 사용을 위한 "API-Platform"설치 Symfony(4.2)
그래서 짧은 검색 후에 웹 서비스를 쉽게 처리할 수 있는 Symfony용 패키지가 있다는 것을 알았습니다.
"API 플랫폼"이라고합니다.
Symfonycast에서 API 플랫폼Symfonycast을 설치하는 방법에 대한 비디오를 찾았습니다.
쉽게 들리니 명령을 쉽게 실행하여 해봅시다.
composer require api:1.2.0
작곡가를 통해 api-platfrom을 설치하려면
... 그리고 다음 메시지와 함께 실패합니다.
require.api is invalid, it should have a vendor name, a forward slash, and a package name. The vendor and package name can be words separated by -, . or _. The complete name should match "^[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$".
나에게는 API 레시피를 찾지 못한 것 같습니다. 그래서 Symfony/flex 번들의 github 페이지에서 List of existing recipesRecipeList를 찾았고 그 안에는 "api"레시피가 없었고 "api-platform/core"레시피만 있었습니다. 그래서 다음과 같이 시도했습니다.
composer require api-platform/core
... 이번에는 또 다른 오류 메시지와 함께 실패합니다.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/flex is locked to version v1.6.2 and an update of this package was not requested.
- symfony/flex v1.6.2 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.3.0] but it does not match the constraint.
Problem 2
- api-platform/core[v2.6.0, ..., v2.6.6] require symfony/http-foundation ^4.4 || ^5.1 -> found symfony/http-foundation[v4.4.0, ..., v4.4.42, v5.1.0, ..., v5.4.9] but the package is fixed to v4.2.12 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- api-platform/core[v2.6.7, ..., v2.6.8] require symfony/http-foundation ^4.4 || ^5.1 || ^6.0 -> found symfony/http-foundation[v4.4.0, ..., v4.4.42, v5.1.0, ..., v5.4.9, v6.0.0, ..., v6.1.1] but the package is fixed to v4.2.12 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- Root composer.json requires api-platform/core ^2.6 -> satisfiable by api-platform/core[v2.6.0, ..., v2.6.8].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require api-platform/core:*" to figure out if any version is installable, or "composer require api-platform/core:^2.1" if you know which you need.
...마지막 문장에서 메시지가 말했듯이 다음과 같이 시도합니다.
composer require api-platform/core:*
...또한 작동하지 않습니다. 메시지:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/flex is locked to version v1.6.2 and an update of this package was not requested.
- symfony/flex v1.6.2 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.3.0] but it does not match the constraint.
다음으로 이전 오류 메시지에서도 권장되었던 "--with-all-dependencies"옵션을 사용하여 시도합니다. 그래서 나는 다음을 실행합니다.
composer require api-platform/core:* --with-all-dependencies
... 이전과 같은 오류 메시지로 끝납니다.
Symfonycast 튜토리얼을 다시 살펴봅니다. 페이지에서 튜토리얼에서 사용된 composer.json을 볼 수 있습니다. 나는 symfony 버전이 내 "4.2"와 동일하다는 것을 알았습니다. api-platform/core는 버전 "^2.1"이었습니다. 그래서 "^2.1"버전으로 명령을 시도했습니다.
composer require api-platform/core:^2.1 --with-all-dependencies
... 아니요, 작동하지 않습니다. 오류 메시지:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/flex is locked to version v1.6.2 and an update of this package was not requested.
- symfony/flex v1.6.2 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.3.0] but it does not match the constraint.
Problem 2
- ocramius/package-versions 1.4.2 requires composer-plugin-api ^1.0.0 -> found composer-plugin-api[2.3.0] but it does not match the constraint.
- doctrine/doctrine-migrations-bundle 2.1.2 requires doctrine/migrations ^2.2 -> satisfiable by doctrine/migrations[2.2.1].
- symfony/orm-pack v1.0.8 requires doctrine/doctrine-migrations-bundle * -> satisfiable by doctrine/doctrine-migrations-bundle[2.1.2].
- doctrine/migrations 2.2.1 requires ocramius/package-versions ^1.3 -> satisfiable by ocramius/package-versions[1.4.2].
- symfony/orm-pack is locked to version v1.0.8 and an update of this package was not requested.
답답하네요 :/...
다음으로 제가 하려고 했던 것은 이것이 문제가 되기를 바라며 작곡가의 캐시를 지우는 것이었습니다. 난 달린다
composer clearcache
오류 메시지 없이 완료한 다음 다시 실행합니다.composer require api-platform/core:^2.1 --with-all-dependencies
... 아니, 그건 다르지 않아...
좋아, 내가 한 다음 작업은 내 composer.lock 및 내 공급 업체 폴더를 삭제하고 다음을 사용하여 종속성을 완전히 설치하는 것입니다.
composer install
다음 오류. 이번에는 composer가 모든 종속성을 설치한 후 캐시를 지우십시오. 메시지:
Script cache:clear returned with error code 1
!!
!! In ArrayNode.php line 331:
!!
!! Unrecognized options "dir_name, namespace" under "doctrine_migrations". Available options are "all_or_nothing", "check_database_platform", "connection
"
!! , "custom_template", "em", "factories", "migrations", "migrations_paths", "organize_migrations", "services", "storage".
!!
!!
!!
Script @auto-scripts was called via post-update-cmd
짧은 Google 검색 후 이 오류는 버전 2.0에서 사용해야 하지만 설치된 3.0인
그래서 나는 composer.json에서 이 패키지의 해당 항목을 버전 2.0으로 변경하고 다음을 실행합니다.
composer update --with-all-dependencies
...오류 메시지 없이 놀라움을 선사합니다.
내 실제 문제에 대한 새로운 희망입니다.
작곡가와 함께 api-platform을 설치하고 싶습니다...
그래서 다시 실행합니다.
composer require api-platform/core:^2.1 --with-all-dependencies
... 그리고 예, 오류 메시지 없이 api-platfrom 의존성을 설치했습니다. 이 일련의 오류(고통) 이후에는 더 이상 그것을 믿지 않았습니다.
보충:
Symfonycast의 튜토리얼을 계속 진행하면서 나는 origin 명령으로 그것을 보았습니다.
composer require api:1.2.0
그들은 api-platform/core 번들뿐만 아니라 도움이 되는 다른 번들도 설치했습니다.
다음 하위 번들을 포함하는 api-platform/api-pack이라는 패키지를 설치합니다.
나중에 그 묶음도 필요하다고 생각합니다. 따라서 "종속성의 토끼 구멍"으로 돌아가서 다음을 실행합니다.
composer require api-platform/api-pack:1.2.2 --with-all-dependencies
...실행되고 ...또한 성공적입니다. 푸흐 예.
api-platfrom/core:2.1이 포함된 최신 버전인 api-pack 버전 1.2.2를 사용했습니다.
작곡가 번들에 대한 정보는 다음에서 찾을 수 있습니다.
Packagist
의존 지옥에서 다음에 보자...
Reference
이 문제에 관하여(Web-Services 사용을 위한 "API-Platform"설치 Symfony(4.2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jerdox/symfony-42-installing-api-platfrom-for-using-web-services-3fd7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)