Laravel как создать helper

Laravel предоставляет простой и надежный способ создания хелпера для использования в шаблонах и контроллерах. Данная статья подробно расскажет и приведет пример создания хелпера в Laravel.

Helpers - это полезные функции, которые мы можем использовать в нашем проекте Laravel. Они предоставляют нам возможность использовать функциональность, которая может быть полезна в различных частях нашего проекта. Например, мы можем создать хелпер, который будет возвращать строку с заданным количеством символов.

Создание собственного помощника

Для создания собственного помощника в Laravel мы должны создать новый файл с расширением php в директории app/Helpers. Например, давайте создадим файл truncate.php.


// app/Helpers/truncate.php

if (!function_exists('truncate')) {
	function truncate($string, $length = 10) {
		if (strlen($string) > $length) {
			return substr($string, 0, $length) . '...';
		}
		return $string;
	}
}

Эта функция будет использоваться для транслитерации строки до заданной длины. Затем мы должны подключить этот файл в нашем проекте. Для этого добавим наш файл в файл composer.json в каталоге проекта. Затем выполним команду composer dump-autoload для перезагрузки конфигурации.


// composer.json 

"autoload": {
    "files": [
        "app/Helpers/truncate.php"
    ],
    "classmap": [
        "database/seeds",
        "database/factories"
    ]
},

Теперь мы можем использовать эту функцию в любом месте проекта. Например, можно использовать ее в вашем контроллере.


// AppHttpControllersMyController.php

public function index() {
    $string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
    $truncated = truncate($string, 20);

    return view('my-view', [
        'truncated' => $truncated
    ]);
}

Таким образом, мы создали хелпер, который мы можем использовать в нашем проекте Laravel. Теперь мы можем использовать эту функцию в любом месте проекта. Это может быть очень полезно, когда мы хотим использовать одну и ту же функциональность в различных частях проекта.

Ответы (0)