I have PhpStorm and installed "squizlabs/php_codesniffer". When I try to use (e.g. modify the source code), PhpStorm sends me a little error every time, as
Referenced sniff "PHPCSUtils" does not exist
I tried to get that PHPCSUtils like that:
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer require phpcsstandards/phpcsutils:"^1.0"
from here: https://phpcsutils.com/
but it then says:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires phpcsstandards/phpcsutils ^1.0, found phpcsstandards/phpcsutils[dev-stable, dev-develop, 1.0.0-alpha1,
..., 1.x-dev (alias of dev-stable)] but it does not match your
minimum-stability.
When I try composer require phpcsstandards/phpcsutils:"dev-stable" I get
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires phpcsstandards/phpcsutils dev-stable -> satisfiable by phpcsstandards/phpcsutils[dev-stable].
- phpcsstandards/phpcsutils dev-stable requires squizlabs/php_codesniffer ^3.7.1 || 4.0.x-dev#dev -> satisfiable by
squizlabs/php_codesniffer[3.7.1] from composer repo
(https://repo.packagist.org) but squizlabs/php_codesniffer is the root
package and cannot be modified. See
https://getcomposer.org/dep-on-root for details and assistance.
but that's a lie, I got 3.7.1 phpcodesniffer version:
phpcs --version
PHP_CodeSniffer version 3.7.1 (stable) by Squiz (http://www.squiz.net)
my composer.json is:
{
"require": {
"squizlabs/php_codesniffer": "^3.7"
}
}
the phpcs composer.json is:
{
"name": "squizlabs/php_codesniffer",
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
"type": "library",
"keywords": [
"phpcs",
"standards"
],
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
"license": "BSD-3-Clause",
"authors": [
{
"name": "Greg Sherwood",
"role": "lead"
}
],
"support": {
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki",
"source": "https://github.com/squizlabs/PHP_CodeSniffer"
},
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"require": {
"php": ">=5.4.0",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
"ext-simplexml": "*"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"bin": [
"bin/phpcs",
"bin/phpcbf"
],
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
Related
I am creating my own slackbot. I decided to use project as a library to help me.
https://github.com/sagebind/slack-client/issues?utf8=%E2%9C%93&q=stability
Now I need to install it with composer.
So I used the command: composer require coderstephen/slack-client
...And I get the error:
Problem 1
- Installation request for coderstephen/slack-client ^0.3.0 -> satisfiable by coderstephen/slack-client[v0.3.0].
- coderstephen/slack-client v0.3.0 requires devristo/phpws dev-master -> satisfiable by devristo/phpws[dev-master] but these conflict with your requirements or minimum-stability.
Ok - So then I decided to change my stability level to "dev" in my composer.lock:
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"devristo/phpws": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": ">=5.5"
},
"platform-dev": []
Now I'm running out of ideas on what to do. The README says to do this step in composer.json but, no such settings exist:
Please note that the current version has unstable dependencies.
In order to install those dependencies, you can set "minimum-stability" in your composer.json, and recommend that you set "prefer-stable":
My composer.json:
{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "me#stephencoakley.com"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
}
}
Does anyone know some solutions I could try?
Add minimum-stability and prefer-stable to your composer.json (not composer.lock):
{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "me#stephencoakley.com"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
For others having the same issue, these changes are best done using composer itself instead of manually modifying the composer.json file. Just run the following commands in the console:
$ composer config minimum-stability dev
$ composer config prefer-stable true
Now you can require and update the package:
$ composer require --no-update "vendor/package-name:version"
$ composer update
Available options (in order of stability) are dev, alpha, beta, RC, and stable
You should never manually edit the composer.lock file - it is an automatically generated file.
It looks like you've shown the composer.json file of the package you're trying to require rather than your own project's composer.json. The prefer-stable and minimum-stability properties should be added to your project root's composer.json file:
{
"name": "xFlare/slack-bot",
"description": "xFlare's Slack bot project",
"authors": [
{
"name": "xFlare"
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.5",
"coderstephen/slack-client": "^0.3.0"
}
}
Usually, this issue has nothing to do directly with minimum-stability or prefer-stable option, but the case is just that you already use some library directly or indirectly, that is needed in another library you use but in a higher version.
My case: Got this error message for a Codeception library which needed a dependency of PHPUnit at least of version 6 and above (>= 6) , but it clashed with the lower version 4 of PHPUnit dependency, which I had installed/required directly already before prior it (as a package in my composer.json file). (my specific case could not use higher PHPUnit than version 6, since it was the last version which supported php version I used).
You might ask if it might affect your project, which already relies on the lower version of the library, perhaps there could be some breaking change, but I don't know if there could be some workaround for using one version for dependency and another version for own project.
Edit: I also had to issue a remove composer command for phpunit dependency, otherwise I was not able to increase my phpunit version directly.
You should add the minimum-stability in your composer.json not in the composer.lock. The option exists see https://getcomposer.org/doc/04-schema.md#minimum-stability
i had the error in a symfony4 project with own bundles.
my-foo-bundle dev-master requires ramsey/uuid-doctrine ^1.5 -> satisfiable by ramsey/uuid-doctrine[1.5.0, 1.6.0] but these conflict with your requirements or minimum-stability.
the solution, i search for "ramsey/uuid-doctrine" in my bundles and i found different requirements "ramsey/uuid-doctrine ^1.5" (in my-foo-bundle) and "ramsey/uuid-doctrine dev-master" (in my app-configuration). So i delete the requirement in the app/composer.json.
This worked for me.
I have two projects. One is my application and the second one is an external module that I want to use in future apps.
I have created my external module on GitHub and included in the composer.json of my application.
My external module gets downloaded / cloned but the required dependencies are not installed by composer.
Here's composer.json of my application:
{
"name": "application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"zf2"
],
"homepage": "http://framework.zend.com/",
"require": {
"php": ">=5.5",
"zendframework/zendframework": "2.*",
"zf-commons/zfc-user": "1.4.4",
"doctrine/doctrine-orm-module": "~0.9.2",
"zf-commons/zfc-user-doctrine-orm": "1.0.*",
"zendframework/zend-developer-tools": "^0.0.2",
"username/GlideUser": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/username/GlideUser.git"
}
]
}
Here's composer.json of my external module:
{
"name": "username/glide-user",
"description": "Module For Zend Framework 2",
"type": "library",
"license": "BSD-3-Clause",
"homepage": "https://github.com/username/GlideUser",
"keywords": [
"zf2",
"zfc-user",
"bjyauthorize"
],
"authors": [
{
"name": "Haris Mehmood",
"email": "abc#outlook.com",
"homepage": "abc.com",
"role": "Developer"
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.3.3",
"bjyoungblood/bjy-authorize": "1.4.0"
},
"autoload": {
"psr-0": {
"GlideUser\\": "src/"
}
}
}
When I run composer install or composer update I expect bjyauthorize package to gets installed, but composer ignore the dependency and install everything else.
What is it that I am doing wrong here.
Try updating the following line in your application composer.json from:
"username/GlideUser": "dev-master"
to:
"username/glide-user": "dev-master"
This way, what is being required matches the name of the external module, which is the name defined inside the external module's composer.json.
Although it does not look directly applicable to the dependencies of the external module not installing, it could be the cause.
Everytime I update composer I have to enter a Token generated on github.
I use this plugin to install bower packages.
This happened after github.com/RamonSmit/Nestable.git became a private repo.
I removed all references to this repo.
But I still get the message:
Your GitHub credentials are required to fetch private repository metadata (git://github.com/RamonSmit/Nestable.git)
Head to https://github.com/settings/tokens/new?scopes=repo&description=...
to retrieve a token. It will be stored in "..." for future use by Composer.
Token (hidden):
I updated composer and composer-asset-plugin to the latest version and cleared the cache.
This also didn't work:
composer config --global github-oauth.github.com xxx
How can I get rid of this unnecessary message?
Output of composer diag:
Checking composer.json: FAIL
require.yiisoft/yii2 : unbound version constraints (>=2.0.6) should be avoided
require.yiisoft/yii2-bootstrap : unbound version constraints (*) should be avoided
require.yiisoft/yii2-swiftmailer : unbound version constraints (*) should be avoided
require.fishvision/yii2-migrate : unbound version constraints (*) should be avoided
require.infoweb-internet-solutions/yii2-cms : unbound version constraints (*) should be avoided
require.bower-asset/matchHeight : unbound version constraints (#stable) should be avoided
require.infoweb-internet-solutions/yii2-news : unbound version constraints (*) should be avoided
require.infoweb-internet-solutions/yii2-action : unbound version constraints (*) should be avoided
require.infoweb-internet-solutions/yii2-member : unbound version constraints (*) should be avoided
require.dragonjet/yii2-opengraph : unbound version constraints (*) should be avoided
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com oauth access: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: xxx
Dev Public Key Fingerprint: xxx
OK
Checking composer version: OK
auth.json: (located in C:\Users\User\AppData\Roaming\Composer)
{
"github-oauth": {
"github.com": "xxx"
},
"http-basic": {
"bitbucket.org": {
"username": "xxx",
"password": "xxx"
}
}
}
composer global show -i
Changed current directory to C:/Users/Ruben/AppData/Roaming/Composer
fxp/composer-asset-plugin v1.1.1 NPM/Bower Dependency Manager for Composer
composer.json:
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": [
"yii2",
"framework",
"advanced",
"project template"
],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.6",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"fishvision/yii2-migrate": "*",
"infoweb-internet-solutions/yii2-cms": "*",
"bower-asset/matchHeight": "#stable",
"infoweb-internet-solutions/yii2-news": "*",
"infoweb-internet-solutions/yii2-action": "*",
"infoweb-internet-solutions/yii2-member": "*",
"dragonjet/yii2-opengraph": "*",
"infoweb-internet-solutions/yii2-image-gallery": "*"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": {
"process-timeout": 1800,
"preferred-install": "source"
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/infoweb-internet-solutions/yii2-i18n-module"
},
{
"type": "vcs",
"url": "https://github.com/infoweb-internet-solutions/yii2-ckeditor"
},
{
"type": "vcs",
"url": "git#bitbucket.org:infoweb-internet-solutions/yii2-news.git"
},
{
"type": "vcs",
"url": "git#bitbucket.org:infoweb-internet-solutions/yii2-action.git"
},
{
"type": "vcs",
"url": "git#bitbucket-infoweb:infoweb-internet-solutions/yii2-member.git"
}
]
}
composer.lock
You should generate new tokens on github
Settings \ Developer settings \ Personal access tokens
Note the token can also be added manually to the composer.json file:
{
"require": {
"infoweb-internet-solutions/yii2-action": "*",
},
"config": {
"github-oauth": {
"github.com": "your long token"
}
},
"repositories": [
{
"type": "vcs",
"url": "git#bitbucket.org:infoweb-internet-solutions/yii2-action.git"
},
]
}
However, if you're committing the file to a VCS repository, you may not want to include the credentials in the file. In that case, you can use the COMPOSER_AUTH environment variable to pass the same information.
export COMPOSER_AUTH='{"github-oauth":{"github.com": "your long token"}}'
composer update
Delete composer.lock file.
Then delete the vendor folder and run composer again to install all the packages.
I create a widget that is under development. The problem is that when I run:
composer require chofoteddy/yii2-bootstrap-wizard "*"
I get the following message:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for chofoteddy/yii2-bootstrap-wizard * -> satisfiable by chofoteddy/yii2-bootstrap-wizard[dev-master].
- chofoteddy/yii2-bootstrap-wizard dev-master requires vinceg/twitter-bootstrap-wizard * -> no matching package found.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json to its original content.
What I seek is to add https://github.com/VinceG/twitter-bootstrap-wizard.git repository as a dependency of my project. "VinceG/twitter-bootstrap-wizard" is not registered in "Packagist".
I modified many times my composer.json file, in order to correct it, but I can not make it work.
My file composer.json:
{
"name": "chofoteddy/yii2-bootstrap-wizard",
"description": "Wizard form based on twitter bootstrap plugin (#VinceG)",
"homepage": "https://github.com/Chofoteddy/yii2-bootstrap-wizard",
"keywords": [
"yii2",
"wizard",
"bootstrap",
"yii2-extension"
],
"type": "yii2-extension",
"version": "0.1",
"license": "MIT",
"authors": [
{
"name": "Christopher",
"email": "chofoteddy88#yahoo.com.mx"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"VinceG/twitter-bootstrap-wizard": "*"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/VinceG/twitter-bootstrap-wizard"
}
],
"autoload": {
"psr-4": {
"chofoteddy\\wizard\\": ""
}
}
}
Composer information:
sudo composer self-update
You are already using composer version b2173d28fc8b56236eddc8aa10dcda61471633ec.
Because VinceG/twitter-bootstrap-wizard is not a Composer package (it does not include a composer.json) you have to define this in your composer.json
Your repository section should look like this:
"repositories": [
{
"type": "package",
"package": {
"name": "VinceG/twitter-bootstrap-wizard",
"version": "1.2",
"dist": {
"url": "https://github.com/VinceG/twitter-bootstrap-wizard/archive/1.2.zip",
"type": "zip"
},
"source": {
"url": "https://github.com/VinceG/twitter-bootstrap-wizard.git",
"type": "git",
"reference": "1.2"
}
}
}
],
You might also have a look at component-installer and the composer-asset-plugin to manage components and bower packages within composer.
The problem is probably the minimum-stability defined in your project root composer.json (or if not defined it defaults to stable)
As the bower repository has no release yet you should:
"VinceG/twitter-bootstrap-wizard": "#dev"
define minimum-stability: "#dev"
Please note that if you use this package from a different project you need to either define minimum-stability: "#dev" in that project or define the
"VinceG/twitter-bootstrap-wizard": "#dev" in root composer.json
There's also an option in composer which lets you specify: "prefer-stable"
More info on this:
https://igor.io/2013/02/07/composer-stability-flags.html
I'm trying to use a specific branch of repo but getting an error:
composer.json
{
"name": "programmingarehard/arbiter",
"license": "MIT",
"type": "library",
"description": "Convenience library to manipulate Symfony ACL's",
"authors": [
{
"name": "David Adams",
"email": "adams.david.10#gmail.com"
}
],
"autoload": {
"psr-4": {
"ProgrammingAreHard\\Arbiter\\": "src",
"ProgrammingAreHard\\Arbiter\\Spec\\": "spec"
}
},
"require": {
"php": ">=5.3.3",
"symfony/security": "2.4.*"
},
"require-dev": {
"bestform/phpspec": "dev-psr4-support"
},
"config": {
"bin-dir": "vendor/bin"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/bestform/phpspec"
}
],
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
}
}
Error:
Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package bestform/phpspec could not be found in any version, there may be a typo in the package name. Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details. Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
This is the repo/branch i'm trying to pull into my package. Not sure what i'm doing wrong.
The repository you are using does not contain a software named bestform/phpspec. Look at the composer.json that is in there, and use the value given as "name". Its phpspec/phpspec, and any branch will only ever be found if you use that name.
The name of the Github repository is irrelevant. Don't confuse it with the "composer" name.