UUID zamiast auto-increment ID w Laravelu


4 lutego 2021 / Michał Kortas


Zamiast stosować przewidywalne, inkrementowane identyfikatory w tabelach bazy danych zaleca się często, ze względów bezpieczeństwa, używanie tzw. UUID, czyli unikalnych identyfikatorów tekstowych. Taki klucz w tabeli maksymalnie niweluje skuteczność ataków polegających na kolejnym odpytywaniu URL, zwiększając jedynie parametr ID o jeden. Na przykładzie PHP i Laravela zademonstruję sposób na użycie UUID w projekcie. Continue reading UUID zamiast auto-increment ID w Laravelu


Tagi:


Supervisior – kontrola procesów na przykładzie działania kolejki w Laravelu


12 listopada 2020 / Michał Kortas


Supervisor wykorzystuję do pilnowania kolejek zadań w aplikacjach webowych, jednak może on kontrolować w zasadzie każdy proces w systemie operacyjnym. Dzisiejszy post poświęciłem w całości na instalację Supervisora na CentOS 8 oraz konfigurację do współpracy z frameworkiem Laravel. Continue reading Supervisior – kontrola procesów na przykładzie działania kolejki w Laravelu


Tagi:


Pakowanie i pobieranie ZIP w Laravel


14 stycznia 2019 / Michał Kortas


Pracuję ostatnio trochę z Laravelem, zatem w przyszłości może powstać kilka krótkich wpisów na ten temat. Dzisiaj pierwsza rzecz, prosta ale często przydatna – pakowanie plików do ZIP z opcjonalnym pobieraniem archiwum.

Tworzenie archiwum ZIP

Skorzystamy z klasy ZipArchive.

use ZipArchive; 

Zaczniemy od krótkiej deklaracji ścieżki i nazwy nowego archiwum ZIP.

$downloadDir= '../download';

$archiveFileName = 'archive.zip'; 

Tworzymy nowy obiekt klasy ZipArchive.

$zip = new ZipArchive; 

Sprawdzamy, czy archiwum może być utworzone we wskazanej ścieżce. Tutaj za chwilę będziemy pakować pliki.

if ($zip->open($downloadDir. '/' . $archiveFileName, ZipArchive::CREATE) === TRUE) 
{
    // tutaj pakujemy pliki        
    $zip->close();
} 

Pakowanie plików

Sprawdzamy, czy plik istnieje, a następnie dorzucamy do do paczki. Opcjonalnie możemy przypisać mu nową nazwę.

$file = '../path/to/file.pdf';

if(file_exists($file))
$zip->addFile($file, 'New Name.pdf'); 

Pobieranie archiwum ZIP

Przekazujemy ścieżkę pliku, jego nazwę…

if(file_exists($downloadDir. '/' . $archiveFileName))
{
    return response()->download($downloadDir. '/' . $archiveFileName,   $archiveFileName, $headers);
} 

Naszym nagłówkiem będzie:

$headers = array(
    'Content-Type' => 'application/octet-stream',
); 

Po wykonaniu skryptu przeglądarka uruchomi pobieranie.

Zapisywanie pliku ZIP

Podsumowanie

To w zasadzie wszystko. Pełny kod możecie podejrzeć na moim GitHubie.


Tagi: