EasySlug – Proste generowanie Slug

Łukasz Piotrowski Komentarzy 0

    Witajcie

    Dziś na potrzeby pewnego serwisu musiałem zbudować mechanizm generujący slug.
    Ponieważ nie znalazłem nic co by mi odpowiadało to postanowiłem napisać własną klasę.


    Instalacja

    Instalacja odbywa się przy użyciu Composera. Jeśli ktoś nie ma to odsyłam do źródła.

    Wystarczy dodać do pliku composer.json:

    "require": {
            "pyton/easyslug" : "~1.0"
        }

    lub bezpośrednio w konsoli:
    composer require pyton/easyslug ~1.0

    Przykłady użycia

    Zakładam że macie już dołączony autoloader z Composera. Jeśli nie to znowu odsyłam doźródła

    Tworzymy slug:

    <?php
    use EasySlug\EasySlug;
    
    include 'vendor/autoload.php';
    
    $easySlug = new EasySlug();
    
    $slug = $easySlug->create('Base Slug string.');
    
    // Wyświetla prosty slug
    echo $slug->plain() . PHP_EOL;
    // Base-Slug-string
    
    // Możliwość formatowania za pomocą wyrażeń sprintf
    echo $slug->format('%s.html') . PHP_EOL;
    // Base-Slug-string.html
    
    // Zmiana separatora
    $easySlug->setReplacement('_');
    $slug = $easySlug->create('To jest nasz String z polskimi znakami np: 󟯌ćł');
    echo $slug->plain() . PHP_EOL;
    // To_jest_nasz_String_z_polskimi_znakami_np_ozZScl
    
    echo $slug->format('%s.html') . PHP_EOL;
    // To_jest_nasz_String_z_polskimi_znakami_np_ozZScl.html

    Opis

    Za pomocą metody create('string') tworzymy slug wewątrz obiektu.

    Do wyświetlania slug służą metody:
    plain() – Wyświetla wygenerowany slug
    format('pattern', array('arg1', 'arg')) – wyświetla string formatowany przy użyciusprintf.
    pattern oraz array('arg1', 'arg') jest opcjonalna.
    Przykłady:

    $slug->format('%s');
    $slug->format('%s-%d.html', array(12));
    $slug->format('%s_%s_%s.html', array('prefix', 'postfix'));

    Podsumowanie

    EasySlug to prosta paczka która wygeneruje nam podstawowy slug, z możliwością sformatowania go w dowolny sposób.

    Na chwilę obecną Klasa wspiera jedynie język polski, jednak z czasem będą dodawane kolejne języki.
    Strona na GitHub: GitHub EasySlug

    Top