enflow/component-laravel
Enflow's defaults for Laravel
The component-laravel package provides a sane-default configuration for Enflow based applications. The LaravelServiceProvider registers some classes, middleware, and enables Skyline cluster support.
Installation
You can install the package via composer:
composer require enflow/component-laravel
Configuration
This package registers automatically trough Laravel's autoloading.
Exception handling
To include this ExceptionHandler to enable prettier error handling, extend the \Enflow\Component\Laravel\AbstractExceptionHandler from app/Exceptions/Handler.php file like this:
<?php
namespace App\Exceptions;
use Enflow\Component\Laravel\AbstractExceptionHandler;
class Handler extends AbstractExceptionHandler
{
protected $dontReport = [];
protected $dontFlash = [
'password',
'password_confirmation',
];
}
Commands
db:sync
db:sync enabled you to mysqldump a production database to your local machine and import it automatically.
All table structures are always dumped. Restrict which tables' data is copied in config/syncer.php:
return [
// Allowlist: only these tables' data is dumped. Safer than excluding, because new tables are skipped by default.
'included' => [
'migrations',
'posts',
],
// Blocklist: skip data for these tables. When both are set, `excluded` is subtracted from `included`.
'excluded' => [
'failed_jobs',
],
];
Performance
To improve import time of db:sync script (tested with a 2GB database) takes ~60 min, just to import.
- Ensure you are running MySQL 8.0 or higher on your Linux machine directly (legacy systems that connect from WSL to Windows based MySQL are much slower).
- Change configuration settings to improve buffer sizes to allow faster importing.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Add the following after the [mysqld] block:
innodb_buffer_pool_size=4G
innodb_log_buffer_size=256M
innodb_log_file_size=1G
innodb_write_io_threads=16
innodb_flush_log_at_trx_commit=0
max_allowed_packet=1024M
read_buffer_size=2M
Restart MySQL to let these variables take effect: sudo service mysql restart
Ensure the variables are applied by checking it directly via mysql:
SHOW VARIABLES LIKE "innodb_buffer_pool_size";
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email michel@enflow.nl instead of using the issue tracker.
Credits
About Enflow
Enflow is a digital creative agency based in Alphen aan den Rijn, Netherlands. We specialize in developing web applications, mobile applications and websites. You can find more info on our website.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.