Salt la conținut

Helpers

Leto include un set de clase utilitare sub namespace-ul Leto\Helpers. Fiecare acoperă o nevoie frecventă în aplicațiile web.

Strings

Manipulări de string-uri: slug-uri, generare aleatorie, eliminare diacritice, extragere subșiruri.

use Leto\Helpers\Strings;

Strings::slugify('Titlu articol');              // "titlu-articol"
Strings::generateRandom(32);                    // String aleatoriu de 32 caractere
Strings::remove_accents('Ștefănescu');          // "Stefanescu"
Strings::replace_once('abc', 'a', 'x');         // "xbc" — doar prima apariție
Strings::string_between('<p>Text</p>', '<p>', '</p>'); // "Text"
Strings::string_alphanum('Hello! 123');         // "Hello123" — doar caractere alfanumerice

Arrays

Acces și manipulare de array-uri cu dot notation — o sintaxă comodă pentru structuri imbricate.

use Leto\Helpers\Arrays;

$data = ['user' => ['name' => 'Ion', 'email' => 'ion@example.com']];

Arrays::get($data, 'user.email');          // "ion@example.com"
Arrays::set($data, 'user.role', 'admin');  // Adaugă în structura imbricată
Arrays::push($data, 'items', $newItem);    // Push la un sub-array
Arrays::exists($data, 'config.debug');     // Verifică existența unei chei

Numbers

use Leto\Helpers\Numbers;

Numbers::formatPrice(1234.56);  // "1.234,56 RON"

DateTimeFormatter

Formatare date cu suport pentru localizare. strftime() este un polyfill peste IntlDateFormatter pentru compatibilitate.

use Leto\Helpers\DateTimeFormatter;

$formatter = new DateTimeFormatter();
$formatter->get($dateTime);                        // Formatare implicită
$formatter->strftime($dateTime, '%d %B %Y');      // "05 iunie 2026"

Mime

Detectare tip MIME din extensia fișierului.

use Leto\Helpers\Mime;

Mime::getTypeFromFilename('document.pdf');  // "application/pdf"
Mime::getTypeFromFilename('foto.jpg');      // "image/jpeg"

Download

Servire fișiere pentru download forțat sau streaming.

use Leto\Helpers\Download;

// Forțează download-ul unui fișier de pe disk
Download::force('/path/document.pdf');

// Streaming — conținut generat dinamic
Download::output($csvContent, 'export.csv', 'text/csv');

Is

Verificări rapide — returnează bool, utile pentru validări simple.

use Leto\Helpers\Is;

Is::email('test@example.com');     // true
Is::json('{"key":"val"}');         // true
Is::dateValid('2026-01-15');       // true
Is::bot();                         // true dacă User-Agent-ul pare a fi bot
Is::audioFile('song.mp3');         // true
Is::imageFile('photo.jpg');        // true
Is::pdfFile('doc.pdf');            // true
Is::validIp('192.168.1.1');        // true

EventTracer

Utilitar de debugging pentru evenimente — înregistrează și afișează evenimentele care au loc în timpul unui request.

use Leto\Helpers\EventTracer;

EventTracer::trace('event-name', $data);  // Înregistrează un eveniment
$events = EventTracer::getEvents();       // Lista completă de evenimente
EventTracer::printEvents();               // Afișează pentru debug

SocialMedia

use Leto\Helpers\SocialMedia;

SocialMedia::extractYouTubeId('https://youtube.com/watch?v=ABC123');  // "ABC123"
SocialMedia::embedYouTubeLink('ABC123');  // https://youtube.com/embed/ABC123