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
Piątek wieczór – czas w sam raz na ostre cięcie na produkcji :-) Dzisiaj krótki wpis, który uporządkuje katalog z klasami migracji bazy danych w Laravelu. Z biegiem czasu straszliwie puchnie i warto go co jakiś czas trochę odchudzić. Continue reading Laravel: porządek w migracjach bazy danych
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
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.
1
useZipArchive;
Zaczniemy od krótkiej deklaracji ścieżki i nazwy nowego archiwum ZIP.
1
2
3
$downloadDir='../download';
$archiveFileName='archive.zip';
Tworzymy nowy obiekt klasy ZipArchive.
1
$zip=newZipArchive;
Sprawdzamy, czy archiwum może być utworzone we wskazanej ścieżce. Tutaj za chwilę będziemy pakować pliki.
Świetnie pokazane, jak jedno małe ustawienie może realnie poprawić UX na mobile'u – szczególnie przy dłuższych formularzach, gdzie każdy klik ma znaczenie. Ciekawi mnie, czy przeglądarki mobilne zawsze konsekwentnie interpretują inputmode, czy są tu jakieś różnice między Androidem a iOS-em?
Świetna robota - sticky w tabelach to niby banał, a jednak potrafi napsuć krwi przy złożonych układach. Ciekawe, czy ktoś z Was testował to w połączeniu z dynamicznym ładowaniem danych via JS – trzyma się, czy zaczyna się ślizgać?
Świetny artykuł – migracja do Tailwind CSS 3 faktycznie przynosi sporo usprawnień, a autor dobrze to rozłożył na czynniki pierwsze – widać, że nie jest to tylko wersja „podbijająca numer”. Zastanawiam się, jak poradzić sobie z nowym podejściem do content zamiast purge – czy ktoś zauważył, że po modernizacji plik konfiguracyjny zrobił się zdecydowanie czytelniejszy? Dzięki za kompendium, które daje realny punkt odniesienia przy aktualizacji!
html, body
{
margin: 0;
height: 100%
}div.a {
background: yellow;
height: 300px;
}div.b
{
background: gray;
height: calc(100% - 300px;
}Górny DIV o klasie "a" ma wysokość 300px, dolny DIV o klasie "b" ma wysokość całej strony, pomniejszony o wysokość górnego DIVa - zatem dolny DIV wypełnia pozostałą część strony pod DIVem górnym.
Marta
Świetnie pokazane, jak jedno małe ustawienie może realnie poprawić UX na mobile'u – szczególnie przy dłuższych formularzach, gdzie każdy klik ma znaczenie. Ciekawi mnie, czy przeglądarki mobilne zawsze konsekwentnie interpretują inputmode, czy są tu jakieś różnice między Androidem a iOS-em?2025-07-21 16:43:00