Class 'Cmgmyr\Messenger\MessengerServiceProvider::class' not found - laravel

In my laravel project, I need messaging system. I trying to install "cmgmyr/laravel-messenger" and getting this error
"Class 'Cmgmyr\Messenger\MessengerServiceProvider::class' not found"
when i execute this command
php artisan vendor:publish --provider="Cmgmyr\Messenger\MessengerServiceProvider"
any suggestion to resolve this problem.

Most likely is that you have not installed the required dependency. Once you have added the dependency to your composer.json remember to run composer install.
To make this process really easy for yourself instead of adding the dependency to composer.json you can run composer require cmgmyr/laravel-messenger. This will add the latest version to your composer file and install the dependency for you.

Related

Composer [InvalidArgumentException] Could not find package mtibben/html2text

I have tried to install html2text via composer to my laravel application. Here is a link to the html2text repository. https://github.com/mtibben/html2text
I have tried composer require mtibben/html2text giving this error:
[InvalidArgumentException]
Could not find package mtibben/html2text at any version for your
minimum-stability (stable). Check the package spel ling or your
minimum-stability
Also I have tried composer require https://github.com/mtibben/html2text.git giving this error:
[UnexpectedValueException]
Could not parse version constraint //github.com/mtibben/html2text.git:
Invalid version string "//github.com/mtibben /html2text.git"
How do I install html2text?
Its a php package, u can't install with composer require
U may want to read this tutorial
http://laraveldaily.com/how-to-use-external-classes-and-php-files-in-laravel-controller/
Do you already have a composer.json file in your directory? If not, this could be the error, because in this file you will configure which version of the package you want to install in to your project.
The second exception gives a hint to that missing version!
If you have a composer.json file please add its content to your question, so that we can take a look at it.
Here you can find further informations:
https://getcomposer.org/doc/01-basic-usage.md#composer-json-project-setup
i faced the same problem.
And neither the creation of releases, nor any tags helped.
The solution for me turned out to be updating the composer from last version.
it's for composer, nothing else. If you already installed composer and composer version is 2 then convert it to version 1.easy way to solve this problem is ,delete the composer folder from your system and re install it. download from here: https://getcomposer.org/

Class 'Stripe\Stripe' not found error in PHP

I installed laravel and composer and created my first project in laravel. I want to integrate stripe using PHP. When I try to execute my first project in localhost I take this message:
Fatal error: Class 'Stripe\Stripe' not found in C:\xampp\htdocs\laravel\stripe\public\elda.php on line 21
To include the stripe libraries, I inserted inside the composer.json file the code from the API library for PHP. Here is an image of my composer.json file:
I run composer install in cmd and this is the output:
You may be getting outdated dependencies. Run update to update them.
I run composer update and the output is the error in the image below:
Can someone help me to solve this error?
Well, sorry did not make a comment of your post, but I have not enough points to do so. But you need to run composer install in the terminal after that includes a new package.
I had the same issue, but when I ran this command my issue is resolved.
composer require stripe/stripe-php
I hope this may help you, after you update your composer.

fuelphp No composer autoloader found

I got error message when install fuelphp
No composer autoloader found. Please run composer to install the FuelPHP framework dependencies first!
Also i my composer is updated.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
I am using PHP7 with a Vagrant environment.
Any idea about this error ?
It is not able to find installation of fuelphp. Most common issue is that index.php("public" or "public_html" folder) does not have the fuelphp's app, core and packages path set properly.
change DIR.'../ to DIR.'/../../(goes back one folder level)
There should be three of them.

Composer update fails on own package

I've made a Composer package called nickdekruijk/larapages. It works fine when I do a composer required nickdekruijk/larapages for the first time. But after I add the service provider to config/app.php I can't run composer update anymore:
$ composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
> php artisan optimize
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'NickDeKruijk\LaraPages\LaraPagesServiceProvider' not found
The only workaround so far is to remove the service provider (or comment the line) from config/app.php, run composer update, then put it back (uncomment) again which is pretty annoying. Am I doing something wrong? Do I need to fix my package maybe?
If the package is already installed, there shouldn't be an issue. Are you sure there isn't a problem with the namespacing of the package, and that the class actually exists?
As a workaround, one which is helpful for any related issue where a service provider isn't actually available yet, you can run Composer and not have it run Laravel's scripts (which cause the error).
composer update --no-scripts
I think I fixed it!
Problem was the autoloader.
First when I moved the files from src/* to src/NickDeKruijk/LaraPages/* composer update was working just fine. But I didn't want to move the files permanently (screwing up my git repo) so I added this to the package composer.json:
"autoload": {
"psr-4": {
"NickDeKruijk\\LaraPages\\": "src/"
}
}
Now I can run composer update just fine!

How can I remove a package from Laravel using PHP Composer?

What is the correct way to remove a package from Laravel using PHP Composer?
So far I've tried:
Remove declaration from file composer.json (in the "require" section)
Remove any class aliases from file app.php
Remove any references to the package from my code :-)
Run composer update
Run composer dump-autoload
None of these options are working! What am I missing?
Composer 1.x and 2.x
Running the following command will remove the package from vendor (or wherever you install packages), composer.json and composer.lock. Change vendor/package appropriately.
composer remove vendor/package
Obviously you'll need to remove references to that package within your app.
I'm currently running the following version of Composer:
Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014-12-11 21:52:29
Documentation
https://getcomposer.org/doc/03-cli.md#remove
Updates
26/10/2020 - Updated answer to assert command works for v1.x and v2.x of Composer
I got it working... The steps to remove a package from Laravel are:
Remove the declaration from file composer.json (in the "require" section)
**Remove Service Provider from file config/app.php (reference in the "providers" array)
Remove any class aliases from file config/app.php
Remove any references to the package from your code :-)
Run composer update vendor/package-name. This will remove the package folder from the vendor folder and will rebuild the Composer autoloading map.
Manually delete the published files (read the comment by zwacky)
It will remove the package folder from the Vendor folder.
Normally composer remove used like this is enough:
composer remove vendor/package
But if a Composer package is removed and the "config" cache is not cleaned you cannot clean it. When you try like so
php artisan config:clear
you can get an error In ProviderRepository.php line 208:
Class 'Laracasts\Flash\FlashServiceProvider' not found
This is a dead end, unless you go deleting files:
rm bootstrap/cache/config.php
And this is Laravel 5.6 I'm talking about, not some kind of very old stuff.
It happens usually on automated deployment, when you copy files of a new release on top of old cache. Even if you cleared the cache before copying. You end up with an old cache and a new composer.json file.
You can remove any package just by typing the following command in the terminal, and just remove the providers and alias you provided at the time of installing the package, if any and update the composer,
composer remove vendor/your_package_name
composer update
Before removing a package from a composer.json declaration, please remove the cache:
php artisan cache:clear
php artisan config:clear
If you forget to remove the cache and you get a "class not found error" then please reinstall the package, clear the cache and remove again.
You can do any one of the below two methods:
Running the below command (most recommended way to remove your package without updating your other packages)
$ composer remove vendor/package
Go to your composer.json file and then run command like below it will remove your package (but it will also update your other packages)
$ composer update
If you are still getting the error after you are done with all the steps in the previous answers, go to your projects, Bootstrap → Cache → config.php. Remove the provider and aliases entries from the cached array manually.
Use:
composer remove vendor/package
This is an example:
Install or add a package
composer require firebear/importexportfree
Uninstall / remove
composer remove firebear/importexportfree
Finally after removing:
php -f bin/magento setup:upgrade
php bin/magento setup:static-content:deploy –f
php bin/magento indexer:reindex
php -f bin/magento cache:clean
Running
Composer remove package/name
Php artisan optimize
e.g "Composer remove mckenziearts/laravel-notify" works for me while using Laravel 8.
To add the packages, the command is to be like:
composer require spatie/laravel-permission
To remove the packages, the command is to be like:
composer remove spatie/laravel-permission
In case the given answers still don't help you remove that, try this:
Manually delete the line in require from composer.json
Run composer update
If this doesn't work "composer remove package/name", you can still remove it manually.
Note : package/name is like spatie etc.
Go to composer.json and find the package name
Delete package name from composer.json
Find the vendor file in your Laravel project.
Delete the package file which is under vendor
run composer install on your terminal
Note : Package File mean is that package that you are looking for. For example, you want to remove Spatie. Then you need to find that with similar name in vendor file and you need to delete it manually.
Your package was removed successfully.
We have come with a great solution. This solution is practically done in Laravel 6. If you want to remove any package from your Laravel Project then you can easily remove the package by following below steps:
Step 1: You must know the package name which you want to remove. If you don't know the complete package name then you can open your project folder and go to the composer.json file and check the name in the require array:
"require": {
"php": "^7.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "^6.2",
"laravel/passport": "^8.3",
"laravel/tinker": "^2.0"
},
Suppose, here I am going to remove the "fideloper/proxy" package.
Step 2: Open a command prompt with your project root folder directory
Step 3: First of all, clear all cache by the following commands. Run the commands one by one.
php artisan cache:clear
php artisan config:clear
Step 4: Now write the following command to remove the package. Here you need to change your package name instead of my example package.
composer remove fideloper/proxy
Now, wait for a few seconds while your package is removed.
On Laravel 8.*, the following steps work for me:
Run command composer remove package-name on the terminal
Remove Provider and aliases from file Config/app.php
Remove the related file from the Config folder.
Remove it from your code where you used it.
Remove the package folder from the vendor folder (manual delete)
Remove it from file composer.json and 'composer.lock' files (use Ctrl + F5 to search)
Remove it from file config/app.php and file bootstrap/cache/config.php files
Run these commands:
composer remove **your-package-name**
php artisan cache:clear
php artisan config:clear
There are quite a few steps here:
Go to file composer.json and look for the package and how it is written over there.
for example
{ "require": {
"twig/twig": "^3.0" } }
I wish to remove twig 3.0
Now open cmd and run composer remove vendor/your_package_name as composer remove twig/twig will remove the package.
As a final step, run composer update. This will surely give you a massage of nothing to install or update, but this is important in case your packages have inter-dependencies.
You have two solution.
First
Use remove of composer.
composer remove *your_package_name*
Second
Delete the line in require from composer.json and then run update
composer update
After removed, recommend to run below two command.
php artisan cache:clear
php artisan config:clear

Resources