Jak najlepiej zaimplementować płatności?
Np. Stripe pozwala na przelewy, płatność kartą, subskrypcję itd. Użytkownik może opłacić coś raz przelewem, raz karta, a później aktywować subskrypcję.

Myślałem o czymś takim (encje, tabele itd.):
- plans, gdzie jest lista planów (kwota, dni, okres testowy),
- payment - gdzie każda rozpoczętą płatność jest przechowywana w tej tabeli, przypisana do uzytkownika jej status itd.
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirunek: imo wszystko zależy jakiej konkretnie logiki biznesowej potrzebujesz,

nie napisałeś wprost o co chodzi, ale między wierszami rozumiem, że masz jakiś serwis, który oferuje jakąś treść w ramach subskrypcji czasowej

jak widziałbym to tak, że to w zasadzie sklep internetowy, którym produktem jest przedłużenie, aktywacji subskrypcji na określoną ilość dni, czy jakiegoś planu dostępności do różnej głębokości
  • Odpowiedz
via Android
  • 0
@Serghio

teraz trzeba tylko jakaś nową encje z polami (user, endtime, plan) oraz mechanizm, który zaktualizuje te encje, np opartą na jakiś eventach, workflow, czy coś, tutaj rozwiązań jest multum


Właśnie to chodziło mi pp głowie. Czyli jakaś tabela "pomocnicza", która będzie trzymała informacje do kędy jest opłacone konto.

Sądzisz ze to powinien być jeden rekord per user, któremu będę co płatność przedłużał date?
  • Odpowiedz
Załóżmy że chciałbym zrobić grę przeglądarkową w stylu gry Plemiona.pl. Gra ma mieć podobną koncepcję jak plemiona, czyli mamy miasto, które rozwijamy, tworzymy plemiona/gildie z innymi graczami, podbijamy inne miasta itd, z tą różnicą, że gra miałaby miejsce w klimacie fantasy, a nie typowym średniowieczu.

Załóżmy, że na razie byłby to projekt hobbistyczny, ale gdybym dobrze rozwinął grę to mógłbym rozważyć możliwość przeistoczenia jej w projekt komercyjny (pomijam tutaj aspekty opłacalności biznesowej takiego
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Generalnie w takich grach więcej pracy jest po stronie frontu jeśli to ma jakkolwiek wyglądać, nawet na standardy lat 2000. Nie jestem frontem, ale rekomendowałbym wybór jakiegoś frameworka. Dałoby się to napisać w PHP i z tego co się orientuję istnieją gry które odniosły sukces napisane w tej technologii. Framework tutaj dużej roli nie gra na tym szczeblu abstrakcji. Wybór bazy danych dla projektu gdzie nie wiesz z czym będziesz się mierzyć
  • Odpowiedz
To chyba najbardziej prymitywna jaka może być implementacja Event Sourcingu w PHP:

<?php

$events = [
'init' => function($a, &$r) {$r = $a;},
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Moje pytanie jest takie, gdzie to może mieć praktyczne zastosowanie?


@daro1: wskazany przykład? Np. w PHP Object Injection. Szczególnie w użyciu z pobieraniem danych z użyciem zewnętrznego źródła, takiego jak filegetcontents. Polecam jednak użyć Jsona.

Skoro wspomniałeś Laravel, to idąc tym tokiem można wskazać kolejki jako miejsce, w którym można z takiego rozwiązania (bezpiecznej wersji) korzystać - czyli wykonywać kod już poza udziałem samego requesta/usera. Szczególnie, że teraz
  • Odpowiedz
Event Sourcing można zastosować tylko w takich frameworkach


@daro1: framework nie ma tu absolutnie nic do rzeczy

event sourcing nadaje się do trackowania częstych zmian elementów Twojej domeny - możesz odbudować na nowo obiekt nakładając na niego naniesione zdarzenia. produktem tego jest w pełni wiarygodny audyt działania twojego systemu. ofc jest to zasobożerne, więc co jakiś czas zapisujesz snapshot encji po iluś nałożonych
  • Odpowiedz
Hej #devops, jak teraz robi się deploy aplikacji #php #symfony na #azure za pomocą #terraform czy #opentofu?

Apka składa się z dwóch kontenerów #php i #apache. Do tego potrzebna jest baza danych #mysql i jakiś volumen/dysk, w którym będę przetrzymywać treści z symfony wstawiane przez użytkowników (np. obrazki). Chciałbym też wykorzystać
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@panDocent: Jak kontenery to najprościej to zrobić w AKS, czyli Azurowy zarządzany k8s. Do tego jakiś FluxCD/Argo do deploymentu.

1. Wypychasz nowy kod do repo
2. GH actions buduje obrazy i wypycha do container registry (nie pamiętam jak to się dokładnie w ażure nazywa)
3. Konfigurujesz fluxa/argo, żeby obserwował registry
4. Po wykryciu nowego obrazu leci deploy nowej wersji apki na AKS
  • Odpowiedz
czy w MVC, event-driven architecture ma sens przy tworzeniu error handlingu? Załóżmy że za każdym razem gdy rzucony jest jakikolwiek błąd, łapię go i tworzę event, a event listener zwraca response z odpowiednią odpowiedzią, że wystąpił błąd. Refaktoryzuję swój stary kod API i zastanawiam się jak taki system zaimplementować żeby było miło. Zastanawia mnie tylko, skoro kontrolery są odpowiedzialne za zwracanie response, jak przekierować tam później ruch z listenera. Ewentualnie zrobić tak,
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Yanushevitz: Nie musisz nigdzie przekierowywać ruchu z powrotem do kontroler. Masz w symfony wszystkie potrzebne eventy, żeby zrobić to praktycznie bez typowych kontrolerów.

Jeśli oprzesz wszystko na eventach to będziesz miał ładną kontrolę od wejścia do wyjścia eventami jak w API Platform.
Sprawdź właśnie API Platform, bo tam wszystko leci na eventach.
  • Odpowiedz
@Yanushevitz: ciekawa koncepcja, ale osobiście bym olał robienie listenera, którego głównym celem już jest przygotować konkretny response pod konkretny endpoint - na takiej zasadzie, że one już przygotowują w teorii konkretnego typu response, pod konkretny już Content-Type.

Mogę się mylić, ale tak mi powiedzmy obecnie logika podpowiada.

Ogólnie jeszcze dam inny przykład: Laravel. Laravel wymyślił coś takiego jak error-handler, opakowujący kontrolera w (bardzo upraszczając) w try-catcha. Kiedy wystąpi konkretny exception
  • Odpowiedz
Tester here, lekko ponad dwa lata doświadczenia w branży. Początkowo manualne testy, teraz głównie automatyczne i ogólnie cała automatyzacja wszelkich procesów związanych z testami, dodatkowo często wspomagam przy fixowaniu (php, js, nodejs), samemu też trochę sobie piszę prywatnie w php (symfony), myślicie że doświadczenie "przy fixach" mogło by się wliczać w doświadczenie komercyjne wymagane w ofertach pracy? Ktoś też był w takiej sytuacji przejścia z QA -> Dev?

#tester #
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Reverse: kolejny QA, który się pcha na deva? Tylko po co, jak jako SDET masz podobną ilość programowania, zbliżone stawki, a dużo mniej stresu i presji. Do tego dużo łatwiej się wybić, bo dobrych devów jest pełno, a ogarniętego SDETa ze świecą szukać, bo większość osób z QA to debile, które przebranżowiły się z innych zawodów i jak widzę ich kod to można się załamać.
  • Odpowiedz
Cześć, gdzie teraz najlepiej zlecań prace freelancerskie z #programowanie?
Szukam kogoś do pomocy przy systemie legacy opartym na symfony2.
A może ktoś tutaj jest chętny do współpracy kilku godzin tygodniowo?

#php #symfony #webdev
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak instalowałem composera linijkę wyżej to podałeś ścieżkę, w której Linux szuka sobie komend.

Zrób to samo z symfony.
  • Odpowiedz
✨️ Obserwuj #mirkoanonim
Mam obecną #pracait w której jestem #php developerem z #symfony - tyle że siedzę tutaj już ponad 2 lata, podwyżki od roku nie widziałem i nie zanosi się na to. Od listopada rozglądałem się za nową robotą i w końcu coś się udało znaleźć, z tym że propozycja nowego pracodawcy to projekt w pythonie i react - gdzie pythona kiedyś używałem, ale
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dodo_: Caly system dziala tak: Masz firme co jest w skladzie jak podalem powyzej. Dev powiedzmy robi za 100/h, przy miesiacu pracy daje to 16800. Firma z tego bierze 5040, na konsultanta pozostaje 11760. Z tego liczymy wydatki na tego konsultanta (wakacje, ubezpieczenia, podatki) jakies 20% czyli 3360. Ostatecznie pozostaje czyste netto 8400.
Z tych 30% musi wyzyc cala czesc firmy co na siebie nie zarabia.
  • Odpowiedz
Symfony Messenger i klasy Transportów

https://gildia-developerow.pl/symfony-messenger-i-klasy-transportow/ ( ͡º ͜ʖ͡º)

Symfony Messenger jest świetny. Zgodzicie się? Instalujecie jedną paczkę i możecie wysłać wiadomość na kolejkę… oh wait. No jednak nie. Chociaż nie jest to tak trywialne jak w Doctrine, to jest to dosyć proste, o czym będzie dzisiejszy post.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #
CppPolska - Symfony Messenger i klasy Transportów

https://gildia-developerow.pl/symf...

źródło: rodrigo-abreu-lq9PxpwDZUk-unsplash-2048x1358

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Serghio: Tak, właśnie tak robię jak piszesz. Korzystam z Flock Store do przechowywania id.

Aktualnie rozwiązanie mam takie, że daję sleep na pół sekundy (i powtarzam to 3 razy) xD W ideale to musiałbym odrzucić wiadomość z nagłówkiem opóźniającym kolejna próbę obsługi, ale brakuje mi wiedzy, żeby robić takie skomplikowane rzeczy, więc obecnie sleep musi wystarczyć.
  • Odpowiedz
@Serghio: Czekam 500ms, ponawiam próbę i tak 3x, potem event zostaje odrzucony tak jak przy wystąpieniu wyjątku. Oczywiście loguję to zdarzenie, żebym w razie czego, mógł coś zrobić "ręcznie". No ale jako, że wiadomość zostaje odrzucona, to zgodnie z ustawieniami aplikacji, event wraca do kolejki jakby został normalnie odrzucony (bo np. wystąpił wyjątek) i próba jest ponawiana, ponieważ standardowo w razie błędu - event dostaje ospowiednie nagłówki i obsługa jego
  • Odpowiedz
Czy możemy korzystać z FlashBaga w serwisach?

https://gildia-developerow.pl/czy-mozemy-korzystac-z-flashbaga-w-serwisach/ ( ͡º ͜ʖ͡º)

Niezależnie od tego, z którego frameworka korzystamy, zawsze powinniśmy promować własną refleksję ponad wszystko. Nawet pracując w Symfony, który uchodzi za najlepsze narzędzie w swojej kategorii, jesteśmy w stanie stworzyć niefajny kod. Dziś poruszymy temat reprezentatywnego przykładu, który potwierdza tą tezę.
Tagi: #programowanie, #naukaprogramowania i #programista15k w #php
CppPolska - Czy możemy korzystać z FlashBaga w serwisach?

https://gildia-developerow...

źródło: micah-tindell-AdOeV-qlAs4-unsplash-1170x728

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Doctrine i problem Lazy Loadingu ()

https://gildia-developerow.pl/doctrine-i-problem-lazy-loadingu/

Większość świeżych programistów, którzy pytają tych starszych o porady, słyszą: „Ucz się Symfony, Doctrine i pisz testy”. A młodzi przyjmują to za świętość i uczą się. Znają podstawowe pojęcia, po czym wchodzą na projekt, napiszą endpoint dla dużego zestawu danych i… całość wykonuje się w 13 sekund. Ta historia, choć nieco przeze mnie ufarbowana, wydarzyła się całkiem niedawno.
CppPolska - Doctrine i problem Lazy Loadingu (。◕‿‿◕。)

https://gildia-developerow.pl/...

źródło: priscilla-du-preez-dOnEFhQ7ojs-unsplash-1536x1024

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Krolik: a potem będziesz miał system z setkami takich obiektów w których wyciągasz sqlem dane i im bardziej złożone zapytanie tym większa przyjemność szukania błędu w razie czego jak coś się wywali. To też nie jest idealne rozwiązanie.
  • Odpowiedz
#programowanie chcę się pobawić jakimś nowym językiem i frameworkiem. Co polecacie do postawienia sobie proxy z zapisywaniem danych z serwisu zewnętrznego i serwującego te dane lokalnie aż do inwalidacji.
Zapisywałbym dokumenty do jakiegoś #elasticsearch i serwował. High usage (100M requestów miesięcznie),

Standardowo bym użył jakiegoś #symfony #php, ale chcę się pobawić i poczuć jak student ponownie.
#nodejs? #expressjs
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

A może #golang? Bo chyba #rustlang #rust się do tego nie nadaje?


@kamillus: Nadaje się i to bardzo, ale tak jak napisał @Saly jest trochę więcej nauki, bo Rust jest bardziej rozbudowany i bardziej pryncypialny niż Go. Za to potem idzie szybciej bo kompilator więcej kontroluje za programistę i mniej bugów do naprawiania jest ;) W przypadku bardzo krótkiego projektu, jak nie
  • Odpowiedz
@kamillus: Do Elastica pasuje Java i Spring (masz tam rozbudowane liby pod tę bazę/silnik). Sam Elasticsearch jest napisany w Javie.
A teraz czekam aż się zlecą sekciarze spod znaku "Java zua!" xD
  • Odpowiedz
Metody modelowania domeny w Doctrine 2

https://gildia-developerow.pl/metody-modelowania-domeny-w-doctrine-2/ ()

Warstwa domeny w Domain Driven Design jest prawdziwą wisienką na torcie. Powinniśmy dbać o nią, aby zawsze była czysta. Dziś przedstawię Wam kilka heurystyk, których stosowanie spowoduje, że Wasza domena nabierze barw ʕʔ

Tagi: #programowanie, #naukaprogramowania, #programista15k w #php, #symfony
CppPolska - Metody modelowania domeny w Doctrine 2

https://gildia-developerow.pl/met...

źródło: wesual-click-eXdKs9d37Sc-unsplash-1170x779

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Metody modelowania domeny w Doctrine 2

Warstwa domeny w Domain Driven Design jest prawdziwą wisienką na torcie. Powinniśmy dbać o nią, aby zawsze była czysta.


@CppPolska: Jak będziesz używał encji z ORM-ma jak encji domenowych, to nigdy nie będzie czysta. To są zupełnie inne warstwy. Jak sobie nie wchodzą w paradę, to nie problemu z czystością i setterami.
  • Odpowiedz
Koncept migracji bazodanowych i Doctrine 2

https://gildia-developerow.pl/koncept-migracji-bazodanowych-i-doctrine-2/ ( ͡º ͜ʖ͡º)

Podczas tworzenia aplikacji biznesowych, nie sposób nie poruszyć tematu aktualizacji bazy danych – elementu, z którym spotykamy się w codziennej pracy. Niezależnie od typu środowiska, zawsze trafimy na temat migracji bazy danych. Na szczęście Doctrine posiada specjalnie do tego wyspecjalizowany mechanizm, którego najważniejsze elementy poruszymy w tym wpisie.

Tagi: #programowanie, #naukaprogramowania oraz
CppPolska - Koncept migracji bazodanowych i Doctrine 2

https://gildia-developerow.pl...

źródło: ross-parmly-rf6ywHVkrlY-unsplash-1170x777

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wszystkie klasy powinny być finalne bo dziedziczenie jest złe. W najlepszym przypadku niczego nie upraszcza, a w najgorszym prowadzi do sterowania skaczącego po kodzie jak pijany zając.
  • Odpowiedz
Fajnie. 15 lat temu twierdzono że finał to zło, bo uniemożliwia dziedziczenia, teraz się to zmieniło i zmieniać się będzie.
Ogólnie, pisz jak ci wygodnie i twojemu zespołowi, bo czasami powstają potworki w stylu "bo taka była filozofia na najlepszy późniejszy rozwój, a tego jednego co ja rozumiał już nie ma".
Offtop: używacie interfejsów, a abstract? Czy też umarło?
  • Odpowiedz
Komunikacja dwóch mikroserwisów z Symfony Messengerem

https://gildia-developerow.pl/komunikacja-dwoch-mikroserwisow-z-symfony-messengerem/ ()

W poprzednim wpisie zajmowaliśmy się tematem przetwarzania asynchronicznego wiadomości za pomocą komponentu Symfony Messenger. Czy wiecie, że Messenger służy również do komunikacji dwóch serwisów ze sobą? Nie? No to zaraz się dowiecie ( ͡º ͜ʖ͡º)

Tagi: #programowanie, #naukaprogramowania i #programista15k w #programowanie,
CppPolska - Komunikacja dwóch mikroserwisów z Symfony Messengerem

https://gildia-dev...

źródło: neom-s0A8sa9oasY-unsplash-scaled

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach