Jak dodać własny plik z funkcjami w Laravelu za pomocą Composera

Paweł Mysior
19 lipca 2018

Domyślnie w Laravelu mamy do dyspozycji mnóstwo przydatnych globalnych funkcji czyli tak zwanych helperów, takich jak trans(), route(), view() czy dd().

Często zdarza się, że w projekcie potrzebujemy własnych funkcji dostępnych globalnie. Możemy poinstruować mechanizm autoloadingu Composera, żeby ładował, przy każdym zapytaniu wskazany przez nas plik z funkcjami.

Zacznijmy od stworzenia pliku z funkcjami. Możemy go nazwać dowolnie i umieścić w dowolnym miejscu naszej aplikacji. Ja wybieram nazwę pliku helpers.php i umieszczam go w katalogu app.

Zastanówmy się nad przydatną funkcją. W składzie tekstu w języku polskim nie należy pozostawiać na końcu wiersza wyrazów jednoliterowych. Te pozostawione na końcu wiersza wyrazy nazywa się sierotami. Dodajmy w pliku app/helpers.php prostą funkcję, która zamienia w tekście spacje występujące po wyrazach jednoliterowych na spacje niełamiące:

// app/helpers.php

function sieroty($string)
{
    return preg_replace('/ ([a-z]) /i', ' $1 ', $string);
}

Używamy funkcji PHP preg_replace z prostym wyrażeniem regularnym. Każde słowo jednoliterowe otoczone spacjami zostanie zamienione na to samo słowo, z tą różnicą że spacja po nim zostanie zamieniona na niełamiącą.

W pliku composer.json mamy zdefiniowane pole autoload, w którym instruujemy autoloader gdzie ma szukać odpowiednich klas i funkcji:

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

Możemy dodać klucz files, który jest tablicą ścieżek do plików, które chcemy załadować. Dodajmy tam ścieżkę do naszego pliku app/helpers.php:

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "files": [
        "app/helpers.php"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

By przeładować autoloader, wykonajmy w terminalu komendę:

composer dump-autoload

Od teraz plik app/helpers.php będzie ładowany, przy każdym zapytaniu. Funkcja sieroty() będzie dostępna w dowolnym miejscu aplikacji.

Przeczytajcie więcej o mechanizmie autoloadera tutaj. Dajcie znać w komentarzach jakie przydatne funkcje definiujecie w swoich aplikacjach.

Wygodny hosting zapewnia duet DigitalOceanLaravel Forge.
Copyright © laravelpolska.com

Drogi Użytkowniku!

Dalsze korzystanie z serwisu bez zmiany ustawień dotyczących cookies w przeglądarce oznacza akceptację plików cookies, co będzie skutkowało zapisywaniem ich na Twoich urządzeniach przez serwis internetowy laravelpolska.com. Jeśli nie wyrażasz zgody na przyjmowanie cookies, prosimy o zmianę ustawień w przeglądarce lub o opuszczenie serwisu. więcej

Stosujemy pliki cookies (tzw. ciasteczka) i inne pokrewne technologie, które mają na celu:

  • dostosowanie zawartości stron internetowych Serwisu do Twoich preferencji oraz optymalizacji korzystania ze stron internetowych; w szczególności pliki te pozwalają rozpoznać Twoje urządzenie i odpowiednio wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb;
  • utrzymanie Twojej sesji w Serwisie (po zalogowaniu), dzięki czemu nie musisz na każdej podstronie Serwisu ponownie wpisywać loginu i hasła,
  • zapewnienie bezpieczeństwa podczas korzystania z Serwisu,
  • ulepszenie świadczonych przez nas usług poprzez wykorzystanie danych w celach analitycznych i statystycznych,
  • poznanie Twoich preferencji na podstawie sposobu korzystania z naszych serwisów.

Wykorzystanie cookies pozwala nam zapewnić maksymalną wygodę przy korzystaniu z naszego Serwisu poprzez zapamiętanie Waszych preferencji i ustawień na naszych stronach. Więcej informacji o zamieszczanych plikach cookie oraz o możliwości zmiany ustawień przeglądarki oraz polityce przetwarzania danych znajdziesz w polityce prywatności.

Masz możliwość samodzielnej zmiany ustawień dotyczących cookies w swojej przeglądarce internetowej. Z poziomu przeglądarki internetowej, z której korzystasz, możliwe jest zarządzanie plikami cookies. W najpopularniejszych przeglądarkach istnieje m.in. możliwość:

  • zaakceptowania obsługi cookies, co pozwala na pełne korzystanie z opcji oferowanych przez witryny internetowe;
  • zarządzania plikami cookies na poziomie pojedynczych, wybranych przez użytkownika witryn;
  • określania ustawień dla różnych typów plików cookies, na przykład akceptowania plików stałych, jako sesyjnych itp.;
  • blokowania lub usuwania cookies.

Akceptuję pliki cookies