I'm trying to update my yii2-basic app version because of what I think is its incompatibility with my new XAMPP (PHP 7.4.1).
This is how I did it:
composer self-update
composer global require "fxp/composer-asset-plugin:^1.4.1" --no-plugins
composer require "yiisoft/yii2:~2.0.14" --update-with-dependencies
This is how it shows in command window:
./composer.json has been updated
The "extra.asset-installer-paths" option is deprecated, use the "config.fxp-asset.installer-paths" option
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: remove phpunit/phpunit 5.7.x-dev
- Conclusion: remove sebastian/recursion-context 3.0.x-dev
- Installation request for phpunit/phpunit (locked at 5.7.x-dev) -> satisfiable by phpunit/phpunit[5.7.x-dev].
- Conclusion: don't install sebastian/recursion-context 3.0.x-dev
- phpunit/phpunit 5.7.x-dev requires sebastian/object-enumerator ~2.0 -> satisfiable by sebastian/object-enumerator[2.0.0, 2.0.1, 2.0.x-dev].
- sebastian/object-enumerator 2.0.0 requires sebastian/recursion-context ~2.0 -> satisfiable by sebastian/recursion-context[2.0.0, 2.0.x-dev].
- sebastian/object-enumerator 2.0.1 requires sebastian/recursion-context ~2.0 -> satisfiable by sebastian/recursion-context[2.0.0, 2.0.x-dev].
- sebastian/object-enumerator 2.0.x-dev requires sebastian/recursion-context ^2.0 -> satisfiable by sebastian/recursion-context[2.0.0, 2.0.x-dev].
- Can only install one of: sebastian/recursion-context[2.0.0, 3.0.x-dev].
- Can only install one of: sebastian/recursion-context[2.0.x-dev, 3.0.x-dev].
- Installation request for sebastian/recursion-context (locked at 3.0.x-dev) -> satisfiable by sebastian/recursion-context[3.0.x-dev].
Installation failed, reverting ./composer.json to its original content.
I tried these lines too but none of them worked:
composer require "yiisoft/yii2:2.0.14" --update-with-dependencies
composer require "yiisoft/yii2:~2.0.14"
Simply update your composer.json like this:
....
"require": {
"php": ">=5.6.0",
"yiisoft/yii2": "~2.0.14",
....
"require-dev": {
"codeception/codeception": "*",
We change the version of Yii2 minimum at 2.0.14 and yii2-codeception directly to codeception.
And don't forget to update you bower and npm asset config to newer composer configuration. Newer configuration looks like this.
"config": {
"vendor-dir": "vendor",
"process-timeout": 1800,
"fxp-asset":{
"installer-paths": {
"npm-asset-library": "_protected/vendor/npm",
"bower-asset-library": "_protected/vendor/bower"
}
}
},
and delete "asset-installer-paths" in "extra" parameter.
I found the solution.
I update the yii2 app by editing composer.json file, then running composer update on my command line.
Then somehow it worked.
Related
My app, built with Ionic and Cordova, includes the plugin GoogleMaps version 2.6.2 (the most recent), but it has not been loaded on iOS for a month, and Android still works.
I only have taken this product from a colleague and I am a total beginner in terms of Cordova, Ionic and npm. In any case the error is that the plugin is no longer installed (as my console tells me in xCode). When I try to update Cordova-ios to the latest version (ionic cordova platform update ios), I only get the error message
> cordova platform update ios
Using cordova-fetch for cordova-ios#^5.0.0
Failed to fetch platform cordova-ios#^5.0.0
Probably this is either a connection problem, or platform spec is incorrect.
Check your connection and platform name / version / URL.
Error: npm: Command failed with exit code 1 Error output:
npm WARN # ionic-native / google-maps # 3.10.3 requires a peer of # ionic-native / core # ^ 3.6.0 but none is installed. You must install peer dependencies yourself.
npm WARN # ngx-translate / core # 9.1.1 requires a peer of #angular / core #> = 5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN The package # types / node is included as both a dev and production dependency.
npm ERR! path /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! code EEXIST
npm ERR! Refusing to delete /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: is outside /path/to/app/node_modules / cordova-ios / node_modules / ios-sim and not a link
npm ERR! File exists: /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! Move it away, and try again.
npm ERR! A complete log of this can be found in:
npm ERR! /path/to/app/.npm/_logs/2019-05-23T06_41_36_667Z-debug.log
[ERROR] An error occurred while running subprocess cordova.
cordova update ios exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
What does that mean exactly? I wanted to uninstall the iOS platform (ionic cordova platform remove ios) and add new ones (cordova platform add ios#5.0.0), but already when I uninstall I get the following error:
ionic cordova platform remove ios
> cordova platform remove ios --save
Removing ios from cordova.platforms array in package.json
Error: npm: Command failed with exit code 1 Error output:
npm WARN #ionic-native/google-maps#3.10.3 requires a peer of #ionic-native/core#^3.6.0 but none is installed. You must install peer dependencies yourself.
npm WARN #ngx-translate/core#9.1.1 requires a peer of #angular/core#>=5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN The package #types/node is included as both a dev and production dependency.
npm ERR! path /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! code EEXIST
npm ERR! Refusing to delete /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: is outside /path/to/app/node_modules/cordova-ios/node_modules/ios-sim and not a link
npm ERR! File exists: /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! Move it away, and try again.
npm ERR! A complete log of this run can be found in:
npm ERR! /path/to/app/.npm/_logs/2019-05-23T07_05_52_055Z-debug.log
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
at ChildProcess.emit (events.js:196:13)
at maybeClose (internal/child_process.js:1011:16)
at Socket.<anonymous> (internal/child_process.js:416:11)
at Socket.emit (events.js:196:13)
at Pipe.<anonymous> (net.js:586:12) {
stderr: 'npm WARN #ionic-native/google-maps#3.10.3 requires a peer of ' +
'#ionic-native/core#^3.6.0 but none is installed. You must install peer ' +
'dependencies yourself.\nnpm WARN #ngx-translate/core#9.1.1 requires a ' +
'peer of #angular/core#>=5.0.0 but none is installed. You must install ' +
'peer dependencies yourself.\nnpm WARN The package #types/node is ' +
'included as both a dev and production dependency.\n\nnpm ERR! path ' +
'/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim\n' +
'npm ERR! code EEXIST\nnpm ERR! Refusing to delete ' +
'/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: ' +
'is outside ' +
'/path/to/app/node_modules/cordova-ios/node_modules/ios-sim ' +
'and not a link\nnpm ERR! File exists: ' +
'/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim\n' +
'npm ERR! Move it away, and try again.\n\nnpm ERR! A complete log of this ' +
'run can be found in:\nnpm ERR! ' +
'/path/to/app/.npm/_logs/2019-05-23T07_05_52_055Z-debug.log\n',
code: 1
}
[ERROR] An error occurred while running subprocess cordova.
cordova platform remove ios --save exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
I have installed the following plugins:
> cordova plugin ls
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
cordova-plugin-ionic-webview 4.0.1 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-storage 2.6.0 "Cordova sqlite storage plugin"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-push 1.11.1 "PushPlugin"
What exactly do I have to do to update cordova-ios to the latest version? What else do you need for information that I could give you? My Mac already has the latest operating system.
EDIT:
I ran rm -Rf platforms / node_modules / && npm install && ionic cordova platform add ios # latest and now I get the following output on the console.
> fsevents#1.2.9 install / path / to / app / node_modules / fsevents
> node install
node-pre-gyp WARN Using request for node-pre-gyp https download
[fsevents] Success: "/path/to/app/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node" is installed via remote
> node-sass#4.12.0 install / path / to / app / node_modules / node-sat
> node scripts / install.js
Cached binary found at /path/to/app/.npm/node-sass/4.12.0/darwin-x64-72_binding.node
> uglifyjs-webpack-plugin#0.4.6 postinstall / path / to / app / node_modules / uglifyjs-webpack-plugin
> node lib / post_install.js
> node-sass#4.12.0 postinstall / path / to / app / node_modules / node-sass
> node scripts / build.js
Binary found at /path/to/app/node_modules/node-sass/vendor/darwin-x64-72/binding.node
Testing binary
Binary is fine
npm WARN The package # types / node is included as both a dev and production dependency.
added 1330 packages from 1442 contributors in 63.504s
> cordova platform add ios # latest --save
Using cordova-fetch for cordova-ios # latest
Adding ios project ...
Creating Cordova project for the iOS platform:
Path: platforms / ios
Package: com.gpsno
Name: GPS-No.com
iOS project created with cordova-ios#5.0.1
Installing "cordova-plugin-datepicker" for ios
Installing "cordova-plugin-device" for ios
Installing "cordova-plugin-geolocation" for ios
Installing "cordova-plugin-googlemaps" for ios
"framework" tag with type "podspec" is deprecated and will be removed. Please use the "podspec" tag.
cordova-plugin-googlemaps depends on GoogleMaps # ~> 2.7.0, which conflicts with another plugin. GoogleMaps # ~> 3.1.0 is already installed and was not overwritten.
Running command: pod install --verbose
Official document https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.6.0/README.md Please consider buying beer for us 🍺 https://github.com/mapsplugin/ cordova-plugin-google maps # buy-us-a-beer
Installing "cordova-plugin-ionic-webview" for ios
Installing "cordova-plugin-splashscreen" for ios
Installing "cordova-plugin-statusbar" for ios
Installing "cordova-plugin-whitelist" for ios
Installing "cordova-sqlite-storage" for ios
Failed to install 'cordova-sqlite-storage': CordovaError: Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
at Context.requireCordovaModule (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/Context.js:57:15)
at module.exports (/path/to/app/plugins/cordova-sqlite-storage/scripts/beforePluginInstall.js:13:21)
at runScriptViaModuleLoader (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:181:32)
at runScript (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:157:16)
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:125:20
at processTicksAndRejections (internal / process / task_queues.js: 89: 5)
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
[ERROR] An error occurred while running subprocess cordova.
cordova platform add ios # latest --save exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
It looks like everything had worked out. Do I have to worry about the message
cordova-plugin-googlemaps depends on GoogleMaps # ~> 2.7.0, which conflicts with another plugin. GoogleMaps # ~> 3.1.0 is already installed and was not overwritten.
If so what can I do or remove?
How can I solve the problem
Installing "cordova-sqlite-storage" for ios
Failed to install 'cordova-sqlite-storage': CordovaError: Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
Installing "cordova-sqlite-storage" for ios
Failed to install 'cordova-sqlite-storage': CordovaError: Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
This is because you have cordova#9.0.0 CLI installed which removed support for use of requireCordovaModule by 3rd party plugins, but you have an old version of cordova-sqlite-storage plugin installed which makes use of requireCordovaModule. So you need to update your version of cordova-sqlite-storage plugin:
cordova plugin rm cordova-sqlite-storage && cordova plugin add cordova-sqlite-storage#latest
cordova-plugin-googlemaps depends on GoogleMaps # ~> 2.7.0, which conflicts with another plugin. GoogleMaps # ~> 3.1.0 is already installed and was not overwritten.
Again probably due to an outdated version of cordova-plugin-googlemaps so update it:
cordova plugin rm cordova-plugin-googlemaps --nosave && cordova plugin add cordova-plugin-googlemaps#latest
Note the use of --nosave option when removing the plugin to preserve any plugin variables containing API keys.
You should also check and update the other plugins in your project. An easy way to do this is using the cordova-check-plugins tool:
npm install -g cordova-check-plugins
cordova-check-plugins --unconstrain-versions --update=auto
# or --update=interactive for interactive update process
Disclaimer: I am the author of cordova-check-plugins
Be aware when updating plugins that major version updates may contain breaking changes to APIs which your app makes use of, so you should be aware of this:
checkout the changelog or commit history of plugins for which you are updating the major version and make any necessary API changes in your app.
I can run controller in development correctly but I facing error kartik\dialog\Dialog not found in production
like thise picture
Why this thing happen?
How I can check it? in Vendor folder maybe.
and How to solve it?
Here is my composer.json
{
"name": "vendor/myweb",
"description": "Description of project myweb.",
"authors": [
{
"name": "Administrator",
"email": "developer1#myweb.com"
}
],
"require": {
"kartik-v/yii2-dialog": "*"
}
}
Thanks in advance.
Check in vendor for this, if it does not exist, go to point 2.
Add this line to require section in project-directory/composer.json file
"kartik-v/yii2-dialog": "*"
Then run in project directory command:
composer update
I hope you found the answer by now !
IF NOT:
I have struggled with this problem long enough to feel desperate :)
here's what I ended up doing:
1- install Dialog using composer : composer.phar require kartik-v/yii2-export "*
if it gives these errores :
Problem 1
- kartik-v/yii2-dialog dev-master requires bower-asset/bootstrap3-dialog ~1.34 -> no matching package found.
- kartik-v/yii2-dialog v1.0.1 requires bower-asset/bootstrap3-dialog ~1.34 -> no matching package found.
- kartik-v/yii2-dialog v1.0.0 requires bower-asset/bootstrap3-dialog ~1.34 -> no matching package found.
- kartik-v/yii2-dialog 1.0.x-dev requires bower-asset/bootstrap3-dialog ~1.34 -> no matching package found.
- Installation request for kartik-v/yii2-dialog #dev -> satisfiable by kartik-v/yii2-dialog[dev-master, 1.0.x-dev, v1.0.0, v1.0.1].
You need to run this command: composer global require "fxp/composer-asset-plugin:^1.2.0"
it rebuild dependencies and set jquery libraries to match with the ones required by Kartik Dialog. Good luck
I have followed master documentation and tried to download it's version of bundle by running:
$ composer require egeloen/google-map-bundle
But unfortunatelly it downloaded 2.2 version of a bundle. I would think that this is correct version, but it is not. When I follow the documentation further I get an error in configuration after adding this to config.yml:
ivory_google_map:
api_key: "%api_key%"
Error says:
Unrecognized option “api_key” under “ivory_google_map”
Here creator says:
Let me explain your issue, when refering to https://github.com/egeloen/IvoryGoogleMapBundle/blob/master/Resources/doc/service/distance_matrix.md#api-key you're refering to dev-master doc whereas if you're using the 2.2.1 version, you should use: https://github.com/egeloen/IvoryGoogleMapBundle/blob/2.2.1/Resources/doc/usage/services/distance_matrix/distance_matrix.md
Unfortunatelly for you, the api key support has only been added on
master, so if you want to take benefit of it, you will need to
upgrade.
Okay so I am 100% sure that documentation installation I followed downloaded wrong version and I have to upgrade it. But how?
I tried running:
$ composer require egeloen/google-map-bundle dev-master
And I got an error:
Problem 1
- Installation request for egeloen/google-map-bundle dev-master -> satisfiable by egeloen/google-map-bundle[dev-master].
- egeloen/google-map-bundle dev-master requires egeloen/google-map ^2.0#dev -> satisfiable by egeloen/google-map[2.0.x-dev] but these conflict with your requirements or minimum-stability.
^2.0#dev does not solve my problem either. Please can anyone help? I cannot find any articles according this problem.
Composer has an option called minimum-stability that is set by default to stable. This means that when you run composer install or composer update, composer will only accept properly tagged versions.
If you want to use the dev-master of a vendor, you will have to set the minimum-stability option to dev in your composer.json :
{
"name": "myproject",
...
"require": {
...
},
"require-dev": {
...
},
"minimum-stability": "dev",
...
}
Be aware that this could lead to non-stable versions of vendors being installed in your project, so this is to avoid when you can. You can also prevent this by setting the version of your vendors to be sure a specific tag will be used, but then you would have to check your vendors update manually.
I have a SilverStripe site with the following composer.json file:
{
"name": "silverstripe/installer",
"description": "The SilverStripe Framework Installer",
"require": {
"php": ">=5.3.2",
"silverstripe/cms": "3.2.1",
"silverstripe/framework": "3.2.1",
"silverstripe-themes/simple": "*",
"silverstripe/userforms": "*",
"silverstripe/widgets": "*",
"silverstripe/spamprotection": "*",
"silverstripe/blog": "dev-master",
"silverstripe/comments": "dev-master",
"silverstripe/lumberjack": "~1.1",
"undefinedoffset/sortablegridfield": "dev-master",
"axllent/silverstripe-version-truncator": "dev-master",
"unclecheese/betterbuttons": "dev-master",
"jonom/focuspoint": "dev-master",
"silverbusters/silverstripe-simplelistfield": "dev-master"
},
"config": {
"process-timeout": 600
},
"minimum-stability": "dev"
}
When I try to execute this script within Apple terminal, using php composer.phar install -dev, I receive the following error message:
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
Installation request for silverstripe/framework 3.2.1 -> satisfiable by silverstripe/framework[3.2.1].
jonom/focuspoint dev-master requires silverstripe/framework ^3.3 -> satisfiable by silverstripe/framework[3.3.0.x-dev, 3.3.x-dev, 3.x-dev, 3.4.x-dev].
Can only install one of: silverstripe/framework[3.3.0.x-dev, 3.2.1].
Can only install one of: silverstripe/framework[3.3.x-dev, 3.2.1].
Can only install one of: silverstripe/framework[3.x-dev, 3.2.1].
Can only install one of: silverstripe/framework[3.4.x-dev, 3.2.1].
Installation request for jonom/focuspoint dev-master -> satisfiable by jonom/focuspoint[dev-master].
This worked fine in early January for me. How should I modify my JSON file so this works correctly?
FocusPoint in "dev-master" version is only compatible with Silverstripe version 3.3. You have three possibilities:
install the version of 3.3 (not stable) of Silverstripe in order to make FocusPoint work.
don't install jonom/focuspoint
install an older version of jonom/focuspoint (ex: 1.1.1)
You just have to edit your composer.json file and change the versions numbers.
I am unable to install nex/yii2-chosen extension in my project using composer please.
My composer shows :
C:\xampp\htdocs\labplus>composer require nex/yii2-chosen Deprecation
Notice: The Composer\Package\LinkConstraint\MultiConstraint class is
deprecated, use Composer\Semver\Constraint\MultiConstraint instead. in
phar://C
:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Package/LinkConstrain
t/MultiConstraint.php:17 Deprecation Notice: The
Composer\Package\LinkConstraint\LinkConstraintInterface interface is
deprecated, use Composer\Semver\Constraint\ConstraintInterface inst
ead. in
phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Packa
ge/LinkConstraint/LinkConstraintInterface.php:17 Failed to decode
response: zlib_decode(): data error Retrying with degraded mode, check
https://getcomposer.org/doc/articles/troubles hooting.md#degraded-mode
for more info Using version dev-master for nex/yii2-chosen
./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
- The requested package dbtek/chosen-bootstrap could not be found in any ver sion, there may be a typo in the package name. Problem 2
- The requested package nex/yii-chosen could not be found in any version, th ere may be a typo in the package name.
Installation failed, reverting ./composer.json to its original
content.
see the cmd snap for more