enflow/component-laravel

Laravel package for Enflow's clients
61,033
Install
composer require enflow/component-laravel
PHP:^8.4
License:MIT
Last Updated:Aug 19, 2026
Links: GitHub  ·  Packagist
Maintainer: enflow

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.

  1. 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).
  2. 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

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660