Laravel: array_merge(): Argument #2 is not an array error - laravel

Exceptions started to appear in all views, and when I try to run composer update, it always ends up with
{"error":{"type":"ErrorException","message":"array_merge(): Argument #2 is not an array","file":"\/laravel\/framework\/src\/Illuminate\/Foundation\/ProviderRepository.php","line":188}}

After a lot of searching and exploring each file in the 'app' folder, it appears that one file was corrupt
Delete app/storage/meta/services.json and re-run composer update and this should solve it.

Sometimes only deleting app/storage/meta/services.json and run composer update doesn't solve the ERROR: array_merge(): Argument #2 is not an array error. At least in my case, it didn't.
Most of the time it happens when you're screwing up the bootstrap/cache/services.json file. And running composer update will not generate services.json file.
To generate the services.json file, you need to delete the previous bootstrap/cache/services.json file and run php artisan serve. Then it'll generate a fresh services.json` file.
Hope it helps to someone!

I had similar problem with a fresh install.
I solved it like this:
Removed bootsrap/cache/**services.php** and then i
surfed to the website with browser, it generated a new services.php and then it worked.

delete bootstrap folder
git reset --hard
composer install
done

Just a composer update worked for me.

You probably just forgot to put compact('var') as the second return view argument
return view("path.to.view", compact ('var'))

I was facing this issue, and my problem was the version of "pusher/pusher-php-server" in composer.json was not matching with my laravel version. For this reason composer-update and deleting caches were not working for me.
I thought maybe this information could help someone.

I got the same error - "array_merge(): Argument #2 is not an array error". running "composer dump-autoload" followed by npm run dev solved the problem immediately. No need of updating composer, npm etc.

in my case app/storage/meta/services.json was empty for some reasson

I deleted the bootstrap/cache/services.json and ran composer update after that it worked for me

Related

Compiled Services Class Has been removed Composer error laravel 5.4

Dears whenever i want to add any Packeg using composer i face below error
"Compiled Services Class Has been removed"
I search many solution like "composer update" etc but still i face this problem
due to this error my working is stop.
kindly help me whats the original solution.
thats the composer installation problem? or what ?
The message The compiled services file has been removed. is a info message from the clear compiled command: php artisan clear-compiled.
It is called from php artisan optimize that runs on every composer update or install.
The message is only a info reporting that the file bootstrap/cache/services.php has been removed.
The services.php file will be reconstructed at the next request.
So at the end its a normal info message.
I have encountered the same problem.
Just remove the "Vendor" folder then install the composer. It worked fine for me.

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.

Laravel deleting package with composer

I tried to delete barryvdh/laravel-debugbar from my laravel installation, and it seems I didn't make something right.
What I did so far :
composer remove barryvdh/laravel-debugbar
I deleted then the references in config/app.php
And I've got an error :
[RuntimeException]
Error Output: PHP Fatal error:
Class 'Barryvdh\Debugbar\ServiceProvider' not found in
{mypath}\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php on line 146
I tried dump-autoload, clear-compiled, but none works.
What did I miss ?
22/02/2016 Edit : I also tried to remove ALL the vendor folder, then install it again via composer install, but I got the error again when the command php artisan clear-compiled was run angain.
Ok, it seems I had played with artisan commands, and the configuration file was cached (via php artisan config:cache).
I deleted it (in bootstrap/cache/config.php) and everything works like a charm, but I also could have used the command php artisan config:clear to remove it.
When you installed Debugbar, after the package was install via composer you needed to add the class to the providers array in config/app.php. So you need to remove this line from there:
Barryvdh\Debugbar\ServiceProvider::class
If you also register the facade, then you need to remove the following from the aliases array from the same file:
'Debugbar' => Barryvdh\Debugbar\Facade::class
If you also ran php artisan vendor:publish (which is the final step described in the Installation Section from the package readme) then you can delete the config/debugbar.php file as well, although leaving that configuration file in place will not cause any issues.
Marc Brillault's answer is correct. I am adding more clarification to that answer:
I removed debug bar class manually from the catch files. present in (bootstrap/cache/config.php).
Steps for How to remove manually class.
1.) Open this two files
`bootstrap/cache/config.php`
`config/app.php`
2.) Find this two line and remove It.
Barryvdh\Debugbar\ServiceProvider::class,
'Debugbar' => Barryvdh\Debugbar\Facade::class,
3.) run command `php artisan config:clear`
after the following this step check command php artisan list is working well.
you must:
First. Delete the references to Debugbar in config/app.php
Second. composer remove barryvdh/laravel-debugbar
In that order. If you don't, Laravel get confused ;)
The best ways you need to do is delete all file manually in all composer files.

Laravel: Can't install Sentry

I tried to install Sentry 2 with composer. I used the composer manuel from the sentry site,
but i got always a serviceprovider exception:
"Class 'Cartalyst\Sentry\SentryServiceProvider' not found"
Is there an another way or i did something wrong?
If you look closely on the [Sentry website installer instructions for laravel 4],
step one states that you need to add "cartalyst/sentry": "2.0.*" to your composer.json,
but it also specifically states that it requires you to run php composer.phar update from the command line
Note that you should run php composer.phar update BEFORE you add the entries for the app/config/app.php (before proceeding to steps 2 and above)
#Todd Isaacs's answer would also lead you to the required result but you do not need to go back to the beggining, all you have to do is revert the changes on your app/config/app.php file and run the update.
hope that helps.
I found the solution. SSL is necessary for composer update and now all works fine.
So I checked the php ini and set ssl on.
I just got this same error and being totally new at Laravel I decided to step back, here is what I did to resolve it.
removed the entries I added to my composer.json and app.php (I think app.php was the issue)
run composer update (yep worked this time)
added "cartalyst/sentry": "2.0.*" to my composer.json
run composer update (sentry was installed)
added 'Cartalyst\Sentry\SentryServiceProvider' and 'Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry' to my app.php
run composer update (still works)
When I originally installed Sentry I added the 'Cartalyst\Sentry\SentryServiceProvider' to the app.php before running the update and I think this was the issue. ( install instructions )
For Sentry 3, change the service provider in app/config/app.php to:
'Cartalyst\Sentry\Laravel\SentryServiceProvider',

Laravel 4: php artisan down not defined

I've updated my Laravel installation with the following commands today (which is a few days after Laravel 4's release date):
php composer self-update
php composer update
You can have a look at my composer.json file here: http://paste.laravel.com/umX
In the Docs I've found out about the Maintenance Mode... (http://laravel.com/docs/configuration#maintenance-mode) Trying to use it returns:
[InvalidArgumentException]
Command "down" is not defined.
Command I've entered in the terminal for this exception:
php artisan down
My current version:
php artisan --version
Laravel Framework version 4.0.0
Any ideas? Did i miss something, am I still on some old version possibly?
Thanks in advance and best regards, Martin.
The fix for me was to update the 'providers' array in ./app/config/app.php. I thought I was doing a pretty good job of manually updating the L4 skeleton near the end of the beta period, but there was a minor change in that array (not sure which line) that allowed the 'down' command to finally appear in artisan.
The first thing I suggest you do is just run php artisan list to get a list of all the available commands. If the up and down commands aren't listed then you probably aren't fully updated.
If you have a bootstrap/compiled.php file try deleting it. Also make sure you pull the latest changes in from the laravel/laravel GitHub repository to update your application skeleton.
Once you've done the above you can again check for the existence of the commands by running php artisan list.
In app/start/global.php (or app/start/artisan.php), you need:
App::down(function() { return Response::make("Be right back!", 503); });
don't you?
Perhaps you could also try updating laravel via composer "composer update" in CLI.
I've just installed a clean Laravel 4 clone and tryed the maintenance mode with it.
Everything's working as supposed...
I've also compared the composer.json files + I'm pretty sure I've done nothing wrong updating to the stable release version even thought my app/start/* php-files remain unchanged.
Summary:
Composer seems to not override the php files in app/start/* which would be needed in order to get the maintenance mode working correctly. Probably there are even more files not being updated. This also makes a lot of sense, since you could have done some important customizations to your application there.
Correct me if I'm wrong... I'll start importing my package into a clean install thought. Don't want to run into more trouble due to this.
Best Regards, Martin.

Resources