Laravel’s Homestead vagrant setup is
handy to get going quickly on projects and keep them consistent to work on.
I was surprised that it has PHP assertion errors disabled by default. It’s good
to have these enabled for local development and testing so that you can catch
more problems earlier.
To enable PHP assertion errors in Homestead you can run this:
for phpConf in cli fpm; do
sudo sed -i 's/zend.assertions = -1/zend.assertions = 1/g' /etc/php/7.*/${phpConf}/php.ini
sudo sed -i 's/;assert.active = On/assert.active = On/g' /etc/php/7.*/${phpConf}/php.ini
sudo sed -i 's/;assert.exception = On/assert.exception = On/g' /etc/php/7.*/${phpConf}/php.ini
done
That will enable PHP assertions and assertion errors for cli and web for all
versions of PHP 7 in Homestead. I have it on a script so that it’s always run
and I won’t forget about it.
You can also enable these at runtime, e.g. if you have a test bootstrap file
in phpunit.xml like this:
<phpunit bootstrap="bootstrap/bootstrapTests.php">
Then you can enable PHP assertions and stricter errors during tests with:
<?php
error_reporting(E_STRICT);
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_EXCEPTION, 1);
require __DIR__ . '/autoload.php';
View post:
Enable PHP assertion errors on Laravel Homestead for development and testing
|