Search code examples
phplaravellaravel-8laravel-bladelaravel-helper

How to create custom helper functions in Laravel


I would like to create helper functions to avoid repeating code between views in Laravel. For example:

view.blade.php

<p>Foo Formated text: {{ fooFormatText($text) }}</p>

They're basically text formatting functions. How should I define globally available helper functions like fooFormatText()?


Solution

  • Create a helpers.php file in your app folder and load it up with composer:

    "autoload": {
        "classmap": [
            ...
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/helpers.php" // <---- ADD THIS
        ]
    },
    

    After adding that to your composer.json file, run the following command:

    composer dump-autoload
    

    If you don't like keeping your helpers.php file in your app directory (because it's not a PSR-4 namespaced class file), you can do what the laravel.com website does: store the helpers.php in the bootstrap directory. Remember to set it in your composer.json file:

    "files": [
        "bootstrap/helpers.php"
    ]