phpunit Error: Class 'Prophecy\Prophet' not found - composer-php

I am in the process of writing some PHPUnit tests in Prophecy with the following code:
public function testItBuildsAndPersistsEnclosure()
{
$em = $this->prophesize(EntityManagerInterface::class);
}
Which yields me the following output:
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.
Testing Project Test Suite E.
2 / 2 (100%)
Time: 105 ms, Memory: 6.00MB
There was 1 error:
1)
Tests\AppBundle\Service\EnclosureBuilderServiceProphecyTest::testItBuildsAndPersistsEnclosure
Error: Class 'Prophecy\Prophet' not found
I'm a bit new to PHPUnit and testing in general but as I understand it, PHPUnit is supposed to have built-in support for using Prophecy which makes the error above really surprising.
I tried installing phpspec/prophecy but that process failed as shown below:
composer require phpspec/prophecy
Using version ^1.10 for phpspec/prophecy
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install phpunit/phpunit 9.0.1
- Conclusion: remove doctrine/instantiator 1.1.0
- Installation request for phpunit/phpunit ^9.0 -> satisfiable by phpunit/phpunit[9.0.0, 9.0.1].
- Conclusion: don't install doctrine/instantiator 1.1.0
- phpunit/phpunit 9.0.0 requires doctrine/instantiator ^1.2.0 -> satisfiable by doctrine/instantiator[1.2.0, 1.3.0].
- Can only install one of: doctrine/instantiator[1.2.0, 1.1.0].
- Can only install one of: doctrine/instantiator[1.3.0, 1.1.0].
- Installation request for doctrine/instantiator (locked at 1.1.0) -> satisfiable by doctrine/instantiator[1.1.0].
Installation failed, reverting ./composer.json to its original content.

Related

composer install Doctrine/DBAL fails in Laravel 9 with PHP 8.2

I got an error when trying to install doctrine/dbal in order to add timestamp type according to laravel doc in order to allow changing timestamp column in migration.
Here is the message
composer require doctrine/dbal
Using version ^3.6 for doctrine/dbal
./composer.json has been updated
Running composer update doctrine/dbal
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- nette/schema v1.2.2 requires php >=7.1 <8.2 -> your php version (8.2.2) does not satisfy that requirement.
- league/commonmark 2.3.5 requires league/config ^1.1.1 -> satisfiable by league/config[v1.1.1].
- laravel/framework v9.30.0 requires league/commonmark ^2.2 -> satisfiable by league/commonmark[2.3.5].
- league/config v1.1.1 requires nette/schema ^1.2 -> satisfiable by nette/schema[v1.2.2].
- laravel/framework is locked to version v9.30.0 and an update of this package was not requested.
How can I deal with that ? Installing nette/schema before ?
It's saying that a depency cannot be updated / installed with your PHP version. Pay special atention to this line:
- nette/schema v1.2.2 requires php >=7.1 <8.2 -> your php version (8.2.2) does not satisfy that requirement.
You have to check another nette/schema version that support PHP version 8.2.2 (your version) or downgrade PHP

Installation issue with guzzlehttp/guzzle version

I'm trying to install the package erusso7/redsys-rest but it shows this error:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: guzzlehttp/guzzle[7.4.3, 6.5.x-dev].
- Can only install one of: guzzlehttp/guzzle[6.5.x-dev, 7.4.3].
- Can only install one of: guzzlehttp/guzzle[6.5.x-dev, 7.4.3].
- erusso7/redsys-rest 0.1.2 requires guzzlehttp/guzzle ^6.0 -> satisfiable by guzzlehttp/guzzle[6.5.x-dev].
- Installation request for erusso7/redsys-rest ^0.1.2 -> satisfiable by erusso7/redsys-rest[0.1.2].
- Installation request for guzzlehttp/guzzle (locked at 7.4.3, required as ^7.0.1) -> satisfiable by guzzlehttp/guzzle[7.4.3].
Installation failed, reverting ./composer.json to its original content.
I've tried all the solutions in the other questions related to this topic but nothing seems to work.
I'm using Laravel/Backpack and I think it uses guzzle too and that may be causing the issues with the versions, any help please? I can give more info about my composer files if needed. Thank you.

How to update phpunit 6 and code-coverage 5

I am using phpunit 6.5.14 togehter with php-code-coverage 5.3.2
I would like to update phpunit and php-code-coverage. However, when i try to update one of them, it fails because they require each other.
For example. calling
composer require --dev phpunit/phpunit ^7
fails with:
1/1: http://repo.packagist.org/p/provider-latest$f1c1ff74699130b4d82cd11e43a57fffc27fdcc5f268000782f585b13d1c5d4c.json
Finished: success: 1, skipped: 0, failure: 0, total: 1
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install phpunit/phpunit 7.5.17
- Conclusion: don't install phpunit/phpunit 7.5.16
- Conclusion: don't install phpunit/phpunit 7.5.15
- Conclusion: don't install phpunit/phpunit 7.5.14
- Conclusion: don't install phpunit/phpunit 7.5.13
- Conclusion: don't install phpunit/phpunit 7.5.12
- Conclusion: don't install phpunit/phpunit 7.5.11
- Conclusion: don't install phpunit/phpunit 7.5.10
- Conclusion: don't install phpunit/phpunit 7.5.9
- Conclusion: don't install phpunit/phpunit 7.5.8
- Conclusion: don't install phpunit/phpunit 7.5.7
- Conclusion: don't install phpunit/phpunit 7.5.6
- Conclusion: don't install phpunit/phpunit 7.5.5
- Conclusion: don't install phpunit/phpunit 7.5.4
- Conclusion: don't install phpunit/phpunit 7.5.3
- Conclusion: don't install phpunit/phpunit 7.5.2
- Conclusion: don't install phpunit/phpunit 7.5.1
- Conclusion: don't install phpunit/phpunit 7.5.0
- Conclusion: don't install phpunit/phpunit 7.4.5
- Conclusion: don't install phpunit/phpunit 7.4.4
- Conclusion: don't install phpunit/phpunit 7.4.3
- Conclusion: don't install phpunit/phpunit 7.4.2
- Conclusion: don't install phpunit/phpunit 7.4.1
- Conclusion: don't install phpunit/phpunit 7.4.0
- Conclusion: don't install phpunit/phpunit 7.3.5
- Conclusion: don't install phpunit/phpunit 7.3.4
- Conclusion: don't install phpunit/phpunit 7.3.3
- Conclusion: don't install phpunit/phpunit 7.3.2
- Conclusion: don't install phpunit/phpunit 7.3.1
- Conclusion: don't install phpunit/phpunit 7.3.0
- Conclusion: don't install phpunit/phpunit 7.2.7
- Conclusion: don't install phpunit/phpunit 7.2.6
- Conclusion: don't install phpunit/phpunit 7.2.5
- Conclusion: don't install phpunit/phpunit 7.2.4
- Conclusion: don't install phpunit/phpunit 7.2.3
- Conclusion: don't install phpunit/phpunit 7.2.2
- Conclusion: don't install phpunit/phpunit 7.2.1
- Conclusion: don't install phpunit/phpunit 7.2.0
- Conclusion: don't install phpunit/phpunit 7.1.5
- Conclusion: don't install phpunit/phpunit 7.1.4
- Conclusion: don't install phpunit/phpunit 7.1.3
- Conclusion: don't install phpunit/phpunit 7.1.2
- Conclusion: don't install phpunit/phpunit 7.1.1
- Conclusion: don't install phpunit/phpunit 7.1.0
- Conclusion: don't install phpunit/phpunit 7.0.3
- Conclusion: don't install phpunit/phpunit 7.0.2
- Conclusion: don't install phpunit/phpunit 7.0.1
- Conclusion: remove phpunit/php-code-coverage 5.3.2
- Installation request for phpunit/phpunit-mock-objects (locked at 5.0.10) -> satisfiable by phpunit/phpunit-mock-objects[5.0.10].
- Installation request for phpunit/phpunit ^7 -> satisfiable by phpunit/phpunit[7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.4.0, 7.4.1, 7.4.2, 7.4.3, 7.4.4, 7.4.5, 7.5.0, 7.5.1, 7.5.10, 7.5.11, 7.5.12, 7.5.13, 7.5.14, 7.5.15, 7.5.16, 7.5.17, 7.5.2, 7.5.3, 7.5.4, 7.5.5, 7.5.6, 7.5.7, 7.5.8, 7.5.9].
- Conclusion: don't install phpunit/php-code-coverage 5.3.2
- phpunit/phpunit 7.0.0 requires phpunit/php-code-coverage ^6.0 -> satisfiable by phpunit/php-code-coverage[6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.0.4, 6.0.5, 6.0.6, 6.0.7, 6.0.8, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4].
- Can only install one of: phpunit/php-code-coverage[6.0.0, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.1, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.2, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.3, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.4, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.5, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.6, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.7, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.0.8, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.1.0, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.1.1, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.1.2, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.1.3, 5.3.2].
- Can only install one of: phpunit/php-code-coverage[6.1.4, 5.3.2].
- Installation request for phpunit/php-code-coverage (locked at 5.3.2) -> satisfiable by phpunit/php-code-coverage[5.3.2].
Trying to update code-coverage by
composer require phpunit/php-code-coverage ^6
fails with:
1/3: http://repo.packagist.org/p/provider-2019-10$1fbc8abf3f09ae347d28fffd902e6857758ba1084d91f9a81432e2a4039456fa.json
2/3: http://repo.packagist.org/p/provider-latest$b45915c1d4dfb4884956884c1468dfdd815ecef36ccfcbfe487b1bde9b209131.json
3/3: http://repo.packagist.org/p/provider-2019-07$645a5eaea36f8c8ff4b02534eb6864a423517398ecd77c4709effcb55d4a0c07.json
Finished: success: 3, skipped: 0, failure: 0, total: 3
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
- phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
- phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
- Installation request for phpunit/phpunit (locked at 6.5.14, required as ~6.0) -> satisfiable by phpunit/phpunit[6.5.14].
Installation failed, reverting ./composer.json to its original content.
I also tried to remove the code-coverage, so that I can update php-unit and reinstall it again. But removing it with
composer remove phpunit/php-code-coverage
does not work and just gives this notification:
phpunit/php-code-coverage is not required in your composer.json and has not been removed
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
You can run './vendor/bin/upgrade-carbon' to get help in updating carbon and other frameworks and libraries that depend on it.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> #php artisan package:discover
Discovered Package: arrilot/laravel-widgets
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: fideloper/proxy
Discovered Package: intervention/image
Discovered Package: iwasherefirst2/laravel-multimail
Discovered Package: larapack/voyager-hooks
Discovered Package: laravel/tinker
Discovered Package: mcamara/laravel-localization
Discovered Package: nunomaduro/larastan
Discovered Package: spatie/laravel-sitemap
Discovered Package: tcg/voyager
Discovered Package: xethron/migrations-generator
Package manifest generated successfully.
How may update both packages?
I recommend deleting composer.lock and or vendor, as Composer is not perfect in this. Often there is no conflict at all.
Then change remove both packages from composer.json.
Then let composer re-decide the highest version possible:
composer require phpunit/phpunit
You can ommit the phpunit/php-code-coverage, as it's already in phpunit/phpunit required packages.
I solved it by using --update-with-dependencies:
$ composer require --dev --update-with-dependencies phpunit/phpunit ^7.0.0
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 12 updates, 1 removal
- Removing phpunit/phpunit-mock-objects (5.0.10)
- Updating sebastian/resource-operations (1.0.0 => 2.0.1): Downloading (100%)
- Updating sebastian/environment (3.1.0 => 4.2.3): Downloading (100%)
- Updating sebastian/diff (2.0.1 => 3.0.2): Downloading (100%)
- Updating sebastian/comparator (2.1.3 => 3.0.2): Downloading (100%)
- Updating phpunit/php-timer (1.0.9 => 2.1.2): Downloading (100%)
- Updating phpunit/php-file-iterator (1.4.5 => 2.0.2): Downloading (100%)
- Updating phpunit/php-token-stream (2.0.2 => 3.1.1): Downloading (100%)
- Updating phpunit/php-code-coverage (5.3.2 => 6.1.4): Downloading (100%)
- Updating phar-io/version (1.0.1 => 2.0.1): Downloading (100%)
- Updating phar-io/manifest (1.0.1 => 1.0.3): Downloading (100%)
- Updating phpunit/phpunit (6.5.14 => 7.5.20): Downloading (100%)
(I found that option through https://github.com/composer/composer/issues/3063)

Problem of Laravel Framework version for using the package mailjet/laravel-mailjet

I've a problem for using mailjet/laravel-mailjet, it seems a problem of versions.
I was using Laravel Framework 5.6.33 and i got
Can only install one of: laravel/framework[v5.6.39, 5.4.x-dev].
i've change my composer.json and now, i'm using Laravel Framework 5.6.39 but i've still the same problem
$ php artisan --version
Laravel Framework 5.6.39
There is the answer when i try to install mailjet/laravel-mailjet
$ composer require mailjet/laravel-mailjet
Using version ^1.1 for mailjet/laravel-mailjet
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: laravel/framework[v5.6.39, 5.4.x-dev].
- Can only install one of: laravel/framework[5.4.x-dev, v5.6.39].
- Can only install one of: laravel/framework[5.4.x-dev, v5.6.39].
- mailjet/laravel-mailjet 1.1.0 requires laravel/framework 5.4.* -> satisfiable by laravel/framework[5.4.x-dev].
- Installation request for mailjet/laravel-mailjet ^1.1 -> satisfiable by mailjet/laravel-mailjet[1.1.0].
- Installation request for laravel/framework 5.6.39 -> satisfiable by laravel/framework[v5.6.39].
the 4th line explains it all.
mailjet/laravel-mailjet 1.1.0 requires laravel/framework 5.4.*
so, you can't use v5.6.39, only 5.4.*

installation failed reverting ./composer.json to its original content. laravel #1

While installing nexmo/laravel I am getting following error.
C:\xampp\htdocs\myLaravel1>composer require nexmo/laravel 1.0.0-beta3
Problem 1
- Can only install one of: nexmo/client[1.0.0-beta3, 1.0.0-beta4].
- Can only install one of: nexmo/client[1.0.0-beta4, 1.0.0-beta3].
- Can only install one of: nexmo/client[1.0.0-beta3, 1.0.0-beta4].
- nexmo/laravel 1.0.0-beta3 requires nexmo/client 1.0.0-beta3 -> satisfiable
by nexmo/client[1.0.0-beta3].
- Installation request for nexmo/laravel 1.0.0-beta3 -> satisfiable by nexmo
/laravel[1.0.0-beta3].
- Installation request for nexmo/client (locked at 1.0.0-beta4, required as
#beta) -> satisfiable by nexmo/client[1.0.0-beta4].
Thank you in advance.
To install the specific version you need to use package_name:version syntax
composer require nexmo/laravel:1.0.0-beta3
Apart from that nexmo/client is locked at version 1.0.0-beta4. So you need to that version. So try this instead :
composer require nexmo/laravel:1.0.0-beta4

Resources