#php #javascript #laravel

Mam aplikację w Laravelu. Wprawdzie jeszcze nie mam tego wdrożonego, ale chcę ograniczyć do wyłącznie jednego zalogowania na użytkownika (=logowanie na innym urządzeniu = usunięcie sesji z pierwszego urządzenia). To wydaje się proste.
Ale jak ogarnąć zabezpieczenie, żeby użytkownik mógł pracować wyłącznie na jednej zakładce?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@husky83: w tym wypadku chyba nie masz innej opcji jak wykorzystanie JSa. Bo przy samym backendzie nie da się tego zrobić w miarę rozsądnie.
Mógłbyś np. doklejać do każdego URLa jakiś kawałek hasha i sprawdzać go po przejściu na kolejny link i robić przekierowania(aby użytkownik nie kopiował linku z hashem), ale wtedy mnożysz route'y oraz takie rozwiązanie jest słabe przy otwieraniu linku w nowej karcie, wtedy stara karta nie da
  • Odpowiedz
W sumie taka ankieta z ciekawości, bo gadałem na pw z @Jurix jakbyście teraz zmieniali robotę w #php to patrzylibyście w ogóle w ofercie na wersje które są, a potem na rozmowach? bo ja osobiście bym nawet nie podchodził do firm które nie mają już php 8 albo przynajmniej nowych rzeczy na nim nie robią, toć to prawie 2 lata minęły także wg mnie wstyd jeśli firma dalej trzyma

Szukasz roboty, od jakiej wersji PHP patrzysz?

  • PHP5, lubię gnić w legacy kodzie i technologii 7.8% (9)
  • PHP7 w górę, nie ma takiej tragedii 11.2% (13)
  • PHP 7.4 minimum 27.6% (32)
  • PHP8 w górę, szanujmy się 18.1% (21)
  • To ktoś jeszcze pisze w tym języku? 35.3% (41)

Oddanych głosów: 116

  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jurix: @Jurigag: Odmawiam dotykania kodu poniżej 8.1, chyba, że najpierw zostanie zaktualizowany do tejże wersji, co nie jest większym problemem. Przerabiałem projekty z 7.3 na 8.0 i 8.1.
Mi chodzi o pewne detale, które mają wpływa na elegancję kodu. Najwieksza zmiana w 8.1, którą uważam za coś, co będzie standardem w ciągu kilku miesięcy, to eliminacja absurdalnych getterów na rzecz publicznych readonly.
Ilość latających commandów, eventów i innych
  • Odpowiedz
albo dostosować projekt do innych bibliotek itd


@Jurigag: tutaj jeszcze dodam, że zdarzało mi się, że autor jakiegoś vendora "przy okazji" dostosowania do nowszej wersji PHPa postanowił w ogóle przebudować cały kod. Raz nawet miałem sytuację, że typ po takiej przebudowie zmienił tylko numerek "minor" w release. I weź się potem męcz człowieku z naprawianiem tego wszystkiego.
  • Odpowiedz
Potrzebuje dodać withTrashed globalnie do zapytania gdy użytkownik jest adminem jednak w boot/booted i addGlobalScope mi nie dodaje tego zapytania macie jakieś rozwiązanie ?

#laravel
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Radaka: e nie wydaje mi się ;-) czym się różni whereNull('deletedAt' )->orWhereNotNull('deletedAt') (to co de facto chcesz zrobić) od po prostu nie dodawania tych where'ów w ogóle (to jest to co ja proponuje)? reszta mechanizmu softdelete będzie działać tak jak działała
  • Odpowiedz
Otóż chciałem poznać ten słynny #laravel, ale od razu najnowszą wersję nr 9 (bo i tak zanim poznam to będzie przestarzała)

- Utworzyłem lokalnie projekt: composer create-project laravel/laravel fakturomat :-)
- Wrzuciłem przez FTP na hosting produkcyjny (praca na produkcji to moje hobby)
- Upgrejdnąłem hosting, żeby PHP 8 działało
- Działa, ale w stopce strony witającej pojawia się informacja: Laravel v8.83.14 (PHP
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jefrey: Podejrzewam, że composer create-project stworzył ci projekt na "domyślnej" wersji.
Chyba takie coś: composer create-project laravel/laravel="9.*" fakturomat stworzy ci projekt na wersji 9.
  • Odpowiedz
@mariecziek: oraz @wiesiu2: zagadka rozwiązana - otóż na kompie na którym zapuszczałem composera miałem PHP 7.4 i dlatego composer ściągnał mi Laravel 8. Wyjaśnił mi to łopatologicznie na ekranie jak próbowałem wymusić 9 zgodnie ze sugestią. Cwana bestia!

Wrzuciłem PHP 8.0, composera też upgrejdnąłem na 2.x i poszło jak z płatka - Laravel 9 ściągnięty.

Dziękuję Panowie za porady, życzę miłego dnia i smacznej kawusi :)
  • Odpowiedz
@mirasKo-Kalwario: jak wg ciebie może to inaczej działać jeśli chcesz bez przeładowania strony wykonać akcję i dostać odpowiedz z serwera. czy to używając vanilla js czy jakuegos vue, jquery cokolwiek efekt będzie podobny. jak wejdzie 1000 osób i każda kliknie guzik to będzie tysiąc requestow. ale to samo też będzie jak ktoś wejdzie na stronę i zacznie spamować refresh
  • Odpowiedz
@husky83: a może takie coś spróbuj:

DB::table('shop')
->select(DB::raw('SUM(order_items.value) as value, shop.name'))
->join('orders', 'order.shop_id', '=', 'shop.id')
->join('order_items', 'order_items.order_id',
  • Odpowiedz
Siemka, pytanie skierowane głównie do osób piszących coś w laravel. Gdy korzystam z CustomRequest.php jako walidatora, to mogę dodać coś więcej niż prostą arrayke w rules?

public function rules(): array
{
return [
'user_id' => 'required|numeric',
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@aso824: Osobiście to nie pchałbym logiki biznesowej do form requestów jako custom rules. Czemu? W przypadku, gdy chcielibyśmy zrobić podobną funkcjonalność, tylko jako command, to musimy walidować jeszcze raz. Więc najlepiej to chyba walidować gdzieś w serwisie i wstrzykiwać go do kontrolera lub commanda. Ewentualnie korzystać z samych policies, np. właśnie gdzieś w serwisie.
  • Odpowiedz
@aso824: kodami błędów na takim etapie by się nie przejmował, bo jak będzie potrzebne to w Handlarze wyłapie wyjątek i da poprawny, ale wrzucenie tego w policy pozwoli mu to wykorzystać w wielu miejscach np: serwis, kontroler, widok (@can w blade), routing (zabezpieczenie za pomocą can:coś tam)
  • Odpowiedz
Szukam fullstack developera #php #laravel #react. Miejsce pracy #gdynia, ale może ewentualnie być zdalnie z wizytami czasami w biurze. Chodzi o rozwijanie istniejącego projektu. Umowa o pracę/B2B.

#praca
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Po wielu przemyśleniach co się uczyć wybrałem #symfony zamiast #laravel (więcej ofert pracy i większa liczba projektów oraz długość na rynku). Czy zacząć naukę od wersji 6 czy najpierw 5? Jaką literaturę/kursy polecacie? Aktualnie pracuję jeszcze w Kohanie no ale czas się przerzucić na coś rozwijanego i popularnego :)
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mało napisane w temacie. Na pewno nie upadnie, bo poszli w dobrym kierunku. A czy przyciągnie więcej rynku - też wątpliwe.
  • Odpowiedz
#php #laravel #pracait
Hej mirki, rozglądam się za dodatkowym zajęciem. Ogarniam laravel, mysql, docker, redis, rabbit, trochę frontend (najlepiej na jakimś bootstrapie albo czymś podobnym).
Jeśli potrzebujecie kogoś do pomocy, przy zleceniach lub w firmie w której pracujecie przyda się pomoc na kilkadziesiąt godzin, zapraszam.

Nie zamykam się na framework laravel, chętnie nauczę się czegoś nowego.
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Stworzyłem kilka prostych SaaS-ów, czy CRM-ów, ale to nie potrzebowało więcej niż jednej bazy danych.
No i teraz mam dylemat, bo dla każdego klienta ma być osobna baza danych i jedna główna trzymająca dane wszystkich klientów, która posłuży do zarządzania tym wszystkim. No fajnie tylko, że za pomocą jednego logowania każdy może mieć dostęp do kilku baz danych np. pracownik pracuje w dwóch firmach i ma mieć dostęp do jednej i do drugiej.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 3
@nophp: W projekcie korzystamy z multi-tenanta jest jeden backend, z którego korzystają wszyscy klienci, jest jeden frontem. Tylko każdy klient ma osobną domenę, z której się łączy i na tej podstawie pobierane są dane z odpowiedniej bazy danych. User jest per baza/domena
  • Odpowiedz
@Anesa: jak potrzebujesz wrzucić jakieś dane w migracji to polecam po prostu dodać odpowiednie zapytania do migracji. Seedery zostały stworzone raczej do generowania danych do testów
  • Odpowiedz