Zoeken…


Invoering

Het toevoegen van aangepaste helpers kan u helpen met uw ontwikkelingssnelheid. Er zijn echter een paar dingen waarmee u rekening moet houden bij het schrijven van dergelijke helpfuncties, vandaar deze tutorial.

Opmerkingen

Slechts enkele aanwijzingen:

  • We hebben de functiedefinities binnen een vinkje geplaatst ( function_exists ) om uitzonderingen te voorkomen wanneer de serviceprovider twee keer wordt aangeroepen.
  • Een alternatieve manier is om het helpersbestand te registreren vanuit het bestand composer.json . Je kunt de logica kopiëren van het larvenraamwerk zelf .

document.php

<?php

if (!function_exists('document')) {
    function document($text = '') {
        return $text;
    }
}

Maak een helpers.php-bestand, laten we aannemen dat het nu in app/Helpers/document.php leeft. Je kunt veel helpers in één bestand stoppen (zo doet Laravel het) of je kunt ze opsplitsen op naam.

HelpersServiceProvider.php

Laten we nu een serviceprovider maken. Laten we het onder app/Providers :

<?php

namespace App\Providers;

class HelpersServiceProvider extends ServiceProvider
{
    public function register()
    {
        require_once __DIR__ . '/../Helpers/document.php';
    }
}

De bovenstaande serviceprovider laadt het helpersbestand en registreert uw aangepaste functie automatisch. Zorg ervoor dat u deze HelpersServiceProvider registreert in uw config/app.php onder providers :

'providers' => [
     // [..] other providers
     App\Providers\HelpersServiceProvider::class,
]

Gebruik

Nu kunt u het functiedocument document() overal in uw code gebruiken, bijvoorbeeld in bladsjablonen. Dit voorbeeld retourneert alleen dezelfde tekenreeks die het als argument ontvangt

<?php
Route::get('document/{text}', function($text) { 
    return document($text);
});

Ga nu naar /document/foo in je browser (gebruik php artisan serve of valet ), die foo zal retourneren.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow