If you have a stronghold in the PHP framework, then you will find Laravel a convenient platform to develop web applications. After all, it is a core PHP framework that helps to carve out such applications from scratch. Today, we’ll talk about Laravel Helper Functions.

One of the many reasons as to why developers prefer the Laravel PHP framework to develop web-applications is the presence of in-built utility helper functions, commonly referred to as Laravel functions. If you hire dedicated laravel developer they will tell you the importance of it.”

Now, if you have paid a little attention, you might have noticed the inbuilt utility function, which presents itself as helpers. Such helpers function makes the development process quicker and easier.

What Is a Laravel Helper?

Laravel framework comes with a plethora of inbuilt helper utility functionality that eases out the workflow process using elements like string, path, and URL. Such helper functions can help to augment the process development by eliminating repetitive writing processes.

Creating a custom Laravel Helpers with function is altogether a different ball game. Here you will need to use the composer Laravel helper files. These helper files are structured using composer packages to give you a helper function utility that auto loads with a predefined set of functions.

Top Laravel Development Company in India possess core expertise in Laravel Helper Function and offer Quality Result-oriented solutions. As we move ahead, here, we will discuss the available methods for helpers function, and top helper functions Laravel.

Top Helper Functions In Laravel

data_get ()

A basic form of array helps to pool in various values without having to add separate variables each time you add a value. The data_get() function helps to ascertain this value of an object or array with the use of dot notation.

$array = ['albums' => ['rock' => ['count' => 75]]];

$count = data_get($array, 'albums.rock.count'); // 75
$avgCost = data_get($array, 'albums.rock.avg_cost', 0); // 0


$object = (object) $array;

$count = data_get($object, 'albums.rock.count'); // 75
$avgCost = data_get($object, 'albums.rock.avg_cost', 90); // 90

A dot notation generally helps to access the members of an object and it presents itself something like this: objectreference.memberName. This is one of the effective Laravel Helpers, without a doubt.

One of the best things about using data_get() is that you do not have to verify the variables that you have been using, as it provides the results using the same syntax.

str_plural()

Str_plural() helps to convert a singular string of characters into its plural form. A dedicated developer can switch between the singular and plural form using a second or lets say an optional parameter if he wishes to do so.

Though, we have something called str_singluar() helper function that does the opposite conversion.

Str::plural('dog'); // dogs

Str::plural('cat'); // cats

Str::plural('dog', 2); // dogs

Str::plural('cat', 1); // cat

Str::plural('child'); // children

Str::plural('person'); // people

Str::plural('fish'); // fish

Str::plural('deer', 2); // deer

str_plural('deer', 2); // deer

Now, this helper function is designed logically to interpret and execute the plurality function according to the confines of the English Language. Meaning, it can identify the uncountable noun and treat it accordingly.

route()

Normally, a Route.php helps to generate a custom URL, which is simple and secure. In other words with the route.php you can identify a URL and run a specified controller or view.

Taking it further is route() helper function, which helps to generate URLs with routes carrying specific names using the string approach.

Route::get('burgers', 'BurgersController@index')->name('burgers');

route('burgers'); // http://example.com/burgers

route('burgers', ['order_by' => 'price']); // http://example.com/burgers?order_by=price

Route::get('burgers/{id}', 'BurgersController@show')->name('burgers.show');

route('burgers.show', 1); // http://example.com/burgers/1

route('burgers.show', ['id' => 1]); // http://example.com/burgers/1

Route::get('employees/{id}/{name}', 'EmployeesController@show')->name('employees.show');

route('employees.show', [5, 'chris']); // http://example.com/employees/5/chris

route('employees.show', ['id' => 5, 'name' => 'chris']); // http://example.com/employees/5/chris

route('employees.show', ['id' => 5, 'name' => 'chris', 'hide' => 'email']); // http://example.com/employees/5/chris?hide=email

Adding optional parameters is also possible, in case you do not add an additional route parameter, Laravel internally tries to match it to an alike attribute.

abort_if()

Abort_if and abort_unless are quite similar to each other, but there are subtle changes in the context of their usage. The basic idea behind the use of both the helper function is to plug in an exception if a given expression turns out to be true.

abort_if(! Auth::user()->isAdmin(), 403);

abort_if(! Auth::user()->isAdmin(), 403, 'Sorry, you are not an admin');

abort_if(Auth::user()->isCustomer(), 403);

To put it plainly, the abort_if helper function is crucial to stop the execution of the application. The abort_if function can be effectively used in cases of credit card or subscription expiry

optional()

Optional() was first introduced in Laravel 5.5, and was a subtle addition in helping the developers to figure out the object properties. Initially, when Optional () was not introduced, any object whose properties were not defined would return an error.

// User 1 exists, with account

$user1 = User::find(1);

$accountId = $user1->account->id; // 123

// User 2 exists, without account

$user2 = User::find(2);

$accountId = $user2->account->id; // PHP Error: Trying to get property of non-object

// Fix without optional()

$accountId = $user2->account ? $user2->account->id : null; // null

$accountId = $user2->account->id ?? null; // null

// Fix with optional()

$accountId = optional($user2->account)->id; // null

Things changed with optional (), as the developers now can easily ignore the error. Meaning, if the object does not have specified property, the error would be replaced with a null result.

Arr::dot();

Bringing the classic functionality of array alongside the inherent benefits of dot notation is what the array_dot helper function is all about.

Normally an array is employed to manage the data flow with as few variables as possible, usually one. The Features Of Laravel 7 also proves this fact right.

$array = [

    'user' => ['username' => 'something'],

    'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']

];

$dot_array = array_dot($array);

// [user.username] => something, [app.creator.name] => someone, [app.created] => today

An array_dot dot functionality helps to streamline the varying levels of the array into a unique single form, aided by dot notation.

Arr::get();

Array_get () carries forward the array functionality from sorting data and managing them to retrieving them. This is where array_get() comes in for tracking back the data from an array deeply nested.

$array = [

    'user' => ['username' => 'something'],

    'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']

];

$name = array_get($array, 'app.creator.name'); 

// someone

It also provides for an optional third parameter in context to the default value for situations where the key element is missing.

$name = array_get($array, 'app.created.name', 'anonymous');

// anonymous

public_path()

Public_path helper function is crucial to help you to navigate towards the public directory along a specified path. Here, you can have access to CSS and javascript files.

You can even add a path to a specified CSS or JS file within the confines of the concerned file directory: $path=public_path( ‘css/style.css’).

public_path = public_path();

$path = public_path('js/app.js');

Str::orderedUuid()

The Str::orderedUuid() helper function helps to assign a timestamp first UUID. A timestamp helps to generate data for usually in the form of long characters when returned as output, and it keeps ticking as you refresh the page result.

Now, since the purpose of UUID is to assign unique identifier elements indexing them in the database column won’t be a problem. Laravel 5.6 may bring in a dependency exception in the form of : Ramsey Uuid Exception UnsatisfiedDependencyException.

Now, you can tackle this exception with a moontoast/math package with the use of the below-mentioned command.

composer require "moontoast/math"

use IlluminateSupportStr;

return (string) Str::orderedUuid() -> not Str::orderByUuid();

// A timestamp first uuid

tap()

The Tap() is an interesting addition to the helper functions as it allows you to work with the $value inside the closure and then return the value when called. So, it would be ideal to state that the given helper function works on two arguments: closure and value.

$user = AppUser::find(1);

return tap($user, function($user) {

    $user->update([

        'name' => 'Random'

    ]);

});

In case you do not pass a closure, you can use any chain methods. Interestingly, the return will be $value, for any method that you choose to the plugin for the return.

$user = AppUser::find(1);

return tap($user)->update([

    'name' => 'SomeName'

]);

dump()

The dump() helper function comes in really handy for debugging as it dumps the variables without affecting the natural course of the execution.

dump($var1);

dump($var1, $var2, $var3);

Now, we encourage you to study the dd() function, and then you will probably appreciate the presence of the dump function in context to simultaneous executions while dumping the variables. You can study more about them in Laravel docs.

str_slug()

Naturally with the use of mod_rewrite in a particular site helps to improve the performance in terms of search engine ranking. But, it is not an effective way, or let’s say it has become outdated. Now there is an introduction of something called a slug.

A slug is a combination of alphanumeric series in lowercase minus any additional spaces for the product or the page title. This is one of the effective Laravel Helper Functions.

Now, the str_slug does the same thing of generating URLs using the string of characters available representing the page or product title.

$slug = Str::slug('Laravel 5 Framework', '-'); 

// helpers-in-laravel

array_pluck()

The array_pluck is the last array helper function that we discuss in the topic. As we have seen earlier the array helpers have made it easy to work huge chunks of data collection.

Taking this forward, the array_pluck helps to return all the values from the list of arrays for a specifically given id usually referred to as a key.

$products = [

    ['tablets' =>

        ['id' => '1', 'name' => 'Amazon Fire HD', 'price' => '99.99'],

        ['id' => '2', 'name' => 'Samsung Galaxy', 'price' => '149.99'],

        ['id' => '3', 'name' => 'Apple iPad 32GB', 'price' => '499.99'],

    ],

    ['laptops' =>

        ['id' => '11', 'name' => 'Lenovo ThinkPad', 'price' => '299.99'],

        ['id' => '12', 'name' => 'Asus ZenBook', 'price' => '699.99'],

        ['id' => '13', 'name' => 'Microsoft Surface Pro', 'price' => '379.99'],

    ],

];

$laptopNames = Arr::pluck($products, 'laptops.name');

// ['Lenovo ThinkPad', 'Asus ZenBook', 'Microsoft Surface Pro'

asset()

The asset helper function helps to fetch the relevant URL for an asset employing the HTTP or https URL convention. It is one of the miscellaneous helper functions.

$cssUrl = asset('css/style.css');

// https://www.larashout.com/css/style.css

config()

The config() helper function has been around for quite some time now. A config() Laravel helper functions fetches the variable for the config() from the concerned directory and returns its value.

$app = config('app.name');

// Laravelhelper

Available Methods For Laravel Helpers

Arrays

Arrays have been instrumental in maintaining loads of data in a clear and logical form using variables.

Laravel array helpers functions in the given php framework assist in working out various permutations with the Array elements. More often than not, developers find a need and way to play around with these elements.

Helper methods functions in Laravel have a bundle of array helpers that can help you in bringing a change in the array elements.

Array helper functions bundle includes array_ dot (), array_ get (), and array_ pluck (). We will look into them in detail as we move ahead.

Paths

With the use of the path helper function, you can route to a qualified path of various directories. For instance, if you want to access the config directory path, you can use the config_path helper functions.

There are similar helper functions under the path family which returns you to a specified qualified directory. Some of these include app_path, base_path, public_path, database_path, resource_path, and storage_path.

Here we will deal with the public_path helper function under the path segment. However, you can check the official documentation for details on various other path-based helper functions.

Strings

string in PHP

A string in PHP is essentially a group of characters placed inside quotes. Now, working with a string is an inevitable part of any project.

Thus, manipulating strings by changing the code script can be taxing. So, we have several Laravel string helpers functions that can help you in working with strings dynamically.

Some of the common string-based helper functions that we will talk about here include Str::ordered did(), and str_plural.

While there are various other string functions, the likes of which include Str::after(), and Str::afterLast().

URLs

URLs helper functions

URLs helper functions come in really handy for crafting URLs based on specific needs. There are different URL functions under this family, which helps in generating URLs for specific purposes.

There are not many URL helper functions, but their nature is such that they are used almost frequently in a project.

Some of the URL helper functions include action, route, secure URL, asset, URL, and secure asset. Here, we will be dealing with asset and route helper functions.

Miscellaneous

Some of the helper functions have no specific category and were clubbed into the category of miscellaneous. They can assist in various functional aspects like debugging and cache management.

Some of the helper functions from the miscellaneous category that we will look into include: abort_if (), tap (), and dump ().

Some of the miscellaneous collection helper functions like tap() can be categorised into Laravel collection helpers, though being put into miscellaneous categories.

Conclusion

So, we have covered most of the Laravel helper functions family, however this is not the end. There are various other helper functions like Laravel view helpers for creating views and passing data into views.

To have a comprehensive understanding of helper functions beyond the popular ones, you must visit the Laravel official documentation page. There is so much more to explore.

We hope you had a great time reading this article and it proves to be a great value for any Laravel Developer in the near future. Thank You.!

Chintan Gor

CTO, eSparkBiz

Enthusiastic for web app development, Chintan Gor has zeal in experimenting with his knowledge of Node, Angular & React in various aspects of development. He keeps on updating his technical know-how thus pinning his name among the topmost CTO's in India. His contribution is penned down by him through various technical blogs on trending tech. He is associated with eSparkBiz from the past 11+ years where one can get premium services.
Frequently Asked Questions
  1. Where To Store Controller Helper Functions?

    In Laravel, generally the helpers are typically stored in your system/Helpers, or app/Helpers directory.

  2. How To Include Helper Function In Controller?

    For the helper functions that don’t need an autoloading, create a directory like appHelpers. Then in the Helpers directory, put a class name and use it in a controller.

  3. How To Create Helper Functions?

    There are some steps that you need to follow in order to create a helper function in Laravel:

    • Create helpers.php file
    • Add file path in composer.json file
    • Run the command