Skip to content

Laravel configuration

Overview

Like most Laravel packages, Hybridly has a few settings available for modification in config/hybridly.php.

The defaults are generally good, but you may change them to your liking.

Run the following command to publish the config/hybridly.php file.

bash
php artisan vendor:publish --tag=hybridly-config

Route filters

The built-in route support requires Hybridly to share available routes to the front-end.

In most cases, this is not an issue, but in some situations you may want to restrict which routes are directly exposed in order to reduce the surface of a potential attack.

Excluding routes

You may add filters to router.exclude. These filters are matched against the final URI, and support wildcards:

php
'router' => [
    'exclude' => [
        'admin*',
    ],
],

Including vendors

By default, routes from vendor packages are not available to the front-end. You may include some by specifying the vendor/package identifier in the router.allowed_vendors option:

php
'router' => [
    'allowed_vendors' => [
        'laravel/fortify',
    ],
],

Architecture

Hybridly is flexible when it comes to architecturing your application.

It offers two presets: the default one, a single-level architecture similar to the architecture that Laravel promotes, and a modular one.

Specifying a preset

You may specify the preset you want to use in the architecture.preset option. Possible values are default and modules.

php
'architecture' => [
    'preset' => 'default',
    'root' => 'resources', 
    'eager_load_views' => true,
],

If you want to use a custom architecture, you may disable the presets by setting that option to false.

To learn how to define your own architecture, read the corresponding documentation.

Updating the root directory

By default, Laravel comes with the resources directory, that is used by many external packages and Laravel itself.

Hybridly also uses resources for its default architecture, but you may chose to use a separate directory if you want. To do that, update the architecture.root option:

php
'architecture' => [
    'preset' => 'default',
    'root' => 'frontend',
    'eager_load_views' => true,
],

This directory is used by the @ import alias and for some of the integrations, like auto-imports, icons, or for loading the <root>/application/main.ts entrypoint.

Eager-loading views

By default, Hybridly will eager-load view components, which means that users will have to load all views at once when accessing the application.

This is a good default, but if your application has a lot of views, you may need to disable eager-loading, so views can be lazy-loaded as needed by your users.

To do that, simply set architecture.eager_load_views to false.

php
'architecture' => [
    'preset' => 'default',
    'root' => 'frontend',
    'eager_load_views' => false,
],