Reputation: 311
Whenever I run an artisan command I am getting this issue.
I am using Valet and PHP 8.1. I have tried changing versions of PHP but I still get this issue.
When i run:
jakefeeley@Jakes-MBP marketing % php artisan plugin:install vojtasvoboda.twigextensions
Returns:
PHP Deprecated: Return type of Illuminate\Container\Container::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1231
Deprecated: Return type of Illuminate\Container\Container::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1231
PHP Deprecated: Return type of Illuminate\Container\Container::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1242
Deprecated: Return type of October\Rain\Config\Repository::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Config/Repository.php on line 446
PHP Deprecated: Return type of October\Rain\Config\Repository::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Config/Repository.php on line 458
Deprecated: Return type of October\Rain\Config\Repository::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Config/Repository.php on line 458
PHP Deprecated: Return type of October\Rain\Config\Repository::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Config/Repository.php on line 469
Deprecated: Return type of October\Rain\Config\Repository::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Config/Repository.php on line 469
PHP Fatal error: During inheritance of ArrayAccess: Uncaught ErrorException: Return type of Illuminate\Support\Collection::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1277
Stack trace:
#0 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Support/Collection.php(11): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8192, 'Return type of ...', '/Users/jakefeel...', 1277)
#1 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(478): include('/Users/jakefeel...')
#2 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(346): Composer\Autoload\includeFile('/Users/jakefeel...')
#3
In Collection.php line 11:
During inheritance of ArrayAccess: Uncaught ErrorException: Return type of Illuminate\Support\Collection::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset
): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Support/Col
lection.php:1277
Stack trace:
#0 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Support/Collection.php(11): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8192, 'Return type of
...', '/Users/jakefeel...', 1277)
#1 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(478): include('/Users/jakefeel...')
#2 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(346): Composer\Autoload\includeFile('/Users/jakefeel...')
#3 /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Support/Collection.php(11): Composer\Autoload\ClassLoader->loadClass('Illuminate\\Supp...')
#4 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(478): include('/Users/jakefeel...')
#5 /Users/jakefeeley/Sites/certhub/marketing/vendor/composer/ClassLoader.php(346): Composer\Autoload\includeFile('/Users/jakefeel...')
#6 /Users/jakefeeley/Sites/certhub/marketing/vendor/october/rain/src/Support/helpers.php(269): Composer\Autoload\ClassLoader->loadClass('October\\Rain\\Su...')
#7 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(89): collect(Array)
#8 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(78): Illuminate\Foundation\PackageManifest->config('aliases')
#9 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php(26): Illuminate\Foundation\PackageManifest->aliases()
#10 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(219): Illuminate\Foundation\Bootstrap\RegisterFacades->bootstrap(Object(October\Rain
\Foundation\Application))
#11 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(320): Illuminate\Foundation\Application->bootstrapWith(Array)
#12 /Users/jakefeeley/Sites/certhub/marketing/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\Foundation\Console\Kernel->bootstrap()
#13 /Users/jakefeeley/Sites/certhub/marketing/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\Co
nsoleOutput))
#14 {main}
Upvotes: 12
Views: 114176
Reputation: 2145
I got this error whilre running my web app ( using laravel with php7.3 ) using homestead. It took me so long to finally found out that the error I got was from running php8 in the host machine.
So I change the php version from the host machine to 7.3 as well.
Now the problem has all gone.
I dont know why but apparently, the php in the host machine does affect the php in the homesteead as well.
So you need to make sure the php version in homestead is the same as the host machine.
Upvotes: 1
Reputation: 531
I got the same error when I tried to run Laravel 7.3 on php 8.1
For me i had 2 versions of php installed on my computer, php-7.4 and php-8.1.
When i checked the php version on the terminal, using php --version
the terminal showed me i was using php 7.4
So I thought php 7.4 was what laravel was using, But that was not the case. Somehow the web server (nginx) was redirecting to php 8.1
To know for sure which php version is being used, use the built-in phpinfo() method. Below is one way to do it
Add the following on index.php file
<?php
phpinfo();
?>
Then try to access your Laravel project. That will give you php information page that will include the information about the version of php your Laravel project is actually using.
As I was using homebrew on macOS Big Sur, I used these commands to stop php8.1
brew services stop [email protected]
brew unlink [email protected]
Then I started php 7.4
brew services start [email protected]
brew link [email protected]
For more info on switching php versions
Upvotes: 2
Reputation: 209
I was having same issues due to the laravel/php versions, I was using laravel 6.X LTS and php 8.1 which is not compatible as you can check here https://laravel.com/docs/9.x/releases so you have two choices either upgrade your laravel or downgrade your php, im my case I was using Homestead & Vagrant so in your sites
entry of your Homestead.yaml you can do something like
sites:
- map: your-site.local
to: /home/vagrant/your-site/public
php: "7.4"
Or any php version you want to use and run vagrant reload --provision
Upvotes: 1
Reputation: 81
I had the same problem when i update my php version from 7 to 8. I updated "laravel/framework" to "^8.75" and ran composer update. That works for me.
Upvotes: 6
Reputation: 347
In my case, i had Laravel 8.12 then i got this error.
so i change "laravel/framework": "^8.12",
to "laravel/framework": "^8.75",
in Composer.json . then i ran composer update
on terminal. there you go!
*at the end, when i ran php artisan --version
my laravel version was 8.83.1
Upvotes: 13
Reputation: 2639
In my experience this is due to attempting to run Laravel 7 (or earlier) under PHP 8.1. I know you said you tried changing PHP versions, but I would double-check that your changes definitely took effect.
For Laravel 7, switching back to PHP 8.0 fixed the issue for me.
nb: Laravel 7's composer.json
incorrectly specifies "php": "^7.2.5|^8.0",
which implies it can run under PHP 8.1.
Upvotes: 18
Reputation: 11
Find the file and add method header:
#[\ReturnTypeWillChange]
public function myFun() {
[...]
}
Upvotes: -3
Reputation: 5
Try to check your dependences of composer.json and package.json, check if all dependences are in right place (for production->dependences not dependences-dev)
Upvotes: -5