Szlak już człowieka trafia jak nie może znaleźć żadnej fajnej pracy a tylko musi się zadowalać zleceniami za które klienci czasem płacą jak chcą. Gdzie nie spojrzę na ogłoszenia na takich portalach jak nofluffjobs, justjoin.it to w PHP wszędzie tylko ten Symfony, czasem trafi się Laravel ale nie tak często. I teraz niech jakiś junior który dopiero co liznął Symfony albo Laravel i słabo się w tym czuje, bo opanowanie tego nie
@WyjmijKija: <ziew> By ci go PHP pod pachę #!$%@?ł byś myślał, że targasz dywan ( ͡° ͜ʖ ͡°) taka prawda. co niby lepsze do weba? Node i JS? ( ͡° ͜ʖ ͡°) najszybsze API webowe duże obecnie śmigają na PHP i w JS to co najwyżej można sobie trzasnąć froncik. wiele platform wybiera jedynie garstkę języków do wspierania i wciąż jest w nich
@Klopsztanga: Wygląda na to, że to jakiś stary manual. Szukałem tego security:checker i znalazłem taki workflow do GH Actions
https://github.com/symfonycorp/security-checker-action/blob/master/action.yml

Tam jest wspomniany obraz ghcr.io/symfony-cli/symfony-cli:v5

A to, że obraz wisi w BitBucket to albo jak LaylaTichy pisze, albo może gdzieś wyżej masz jakieś logowanie do dockera i ten użytkownik ma dostęp? Bo obrazy prywatne na hub.docker.com też zwracają 404.
@panDocent: dzięki wielkie, zmieniam na repo z githuba do tego obrazu - by było jasne że na każdej platformie zadziała.

Myśle że faktycznie, jakis cache to jest czy cusik. Możliwe że bitbucket daje hard cache na najczęściej pobierane docker-images - bo ja bym tak zrobił
Cześć Mirki.

Mam pytania związane z #docker #devops z perspektywy #php #symfony (dla mnie jako backendowca). Moje pytania są kontynuacją https://www.wykop.pl/wpis/69825103/siema-programowanie-php-symfony-docker-jak-robicie/. Bardzo możliwe, że źle zrozumiałem to co zostało poprzednio napisane, ale to pewnie przez to, że słabo nakreśliłem sytuację i odpowiedzi dotyczyły czegoś innego.

Co chcę osiągnąć?
Zbudować projekt od a do z, czyli: napisać kod (php), wykorzystać dockera i zrobić pełne CI/CD (testy, budowanie obrazu, deploy na vpsa itd.)

Stack
Siema #programowanie #php #symfony #docker

Jak robicie deploy aplikacji na VPS? Uruchamiacie testy itd, i wtedy:
1. Budujecie dockerowy obraz (zawierający kod, interpreter php, nginx, etc.) oraz na VPSie robicie docker run -e DATABASE_URL....
2. czy może na VPSie robicie git pull z repo i docker compose up -d ?

Pytam bo w kilku miejscach widziałem, że stosowana jest druga metoda (np. https://stackoverflow.com/a/56686418) ale... po cholere w takim razie budować obraz skoro
@mirunek: Nginx powinien być zainstalowany na hostingu, a potem powinien być skonfigurowany tak, aby ruch był skierowany na konkretny kontener. Ustawienie ruchu wymaga tylko wskazania adresu IP kontenera. Jako przykład, jeśli masz kontener, który hostuje twoją aplikację z adresem IP 192.168.1.2, możesz ustawić ruch z domeny dupa.pl na ten kontener, wykorzystując adres IP 192.168.1.2. Nginx może również służyć do obsługi żądań HTTP/HTTPS, jak również jako proxy dla kontenera.
próbuję napisać API w #php używając auth0 i wszystko ładnie się łączy przez sdk, ale nie wiem na jakiej zasadzie rozwiązać autoryzację. Mam w bazie tabelę z aukcjami i chcę do nich przypisywać właściciela z auth0, wystarczy zrobić w tabeli kolumnę na wygenerowany przez sdk klucz? a jeśli tak, to który klucz służy do tego żeby w takiej bazie figurować? czytam te dokumentacje ale chyba za krótki jeszcze na to jestem #
@Yanushevitz: Możesz dodać kolumnę do tabeli z aukcjami, w której będzie przechowywany wygenerowany przez SDK klucz. Ten klucz służy do identyfikacji użytkownika i autoryzacji. Możesz użyć unikalnego identyfikatora z Auth0, aby określić właściciela aukcji. Aby to zrobić, wystarczy, że wywołasz API Auth0 i pobierzesz identyfikator użytkownika (ID użytkownika), a następnie umieścisz go w swojej tabeli z aukcjami.
Mam pytanie o API Platform - jak przefiltrować żądanie, zanim zostanie ono zapisane do bazy? Chcę "w locie" utworzyć dodatkowe wartości dla encji, których nie będzie na pewno w żądaniu POST (jak np. kod statusu albo data żądania), ale które powinny znaleźć się w zapisanym wierszu w bazie. Może lepiej utworzyć do tego klasyczny kontroler i utworzyć i zapisać encję ręcznie z obiektu żądania?

#symfony #php #programowanie
czlowiekzlisciemnaglowie - Mam pytanie o API Platform - jak przefiltrować żądanie, za...

źródło: comment_16720854084O3gvWSTi1dsxbP1JYdHUM.jpg

Pobierz
Takie pytanie do #symfony i #php bo ostatnio na grupie wydziałem że ktoś się pytał, ale nie dostał dobrej odpowiedzi i może tutaj będą bardziej ogarnięci. Jak testujecie albobyście przetestowali autowiring który zależy od nazwy zmiennej? Tyczy się to np logging, workflow czy flysystem. Da się to jakoś zabetonować testem jednostkowym, aby ktoś przez przypadek nie zrobił jakiegoś refactoru i nie zmienił nazwy, lub ewentualnie jakieś narzędzie opalane z automatu?
@lolen: integracyjnie/funkcjonalnie i tyle, test unitowe nie są zbyt dobre do czegokolwiek gdzie masz autowiring, musisz to testować jak black box i tyle, cokolwiek związanego z frameworkiem - black box test

poza tym to ogólnie zależy jak sobie zdefiniujesz ten unit, ogólnie to w testach unitowych również możesz korzystać z frameworka, nikt tego nie zakazuje, irytują mnie te dziwne nazwy unit/integration/functional, po prostu wyciągnij serwis z kontenera i sprawdź czy działa
Nowy projekt API, customowe zwrotki a nie typowy crud. Robić w Symfony czy budować na Api Platform? Dawno w Api Platform nic nie pisałem i nie wiem czy bardziej nie będzie przeszkadzało niż pomagało?

#symfony
@pitu120: zdecydowanie w api platform szybciej wszystko postawisz, to tez kwestia czy robisz w DDD i uzywasz atrybutow w domenie, sporo automatyzacji mozna ogarnac samemu przy resolverach do controllerow a jeszcze lepiej jak zrezygnujesz z RESTa na rzecz GraphQL :)
po migracji aplikacji w #symfony do #docker, doctrine nie wprowadza żadnych zmian do bazy ani nic z niej nie odczytuje mimo że credentialsy w .env się zgadzają i teoretycznie powinien być połączony z bazą (jednak isConnected() w managerRegistry zwraca false). Nie pokazuje żadnych errorów, chyba że zmienię dane logowania na błędne/zmienię adres ip bazy. Ma ktoś pomysł czym jest to spowodowane? Nie działa ani mysql na osobnym kontenerze, ani mysql na
@Yanushevitz:
- lokalnie jestes w stanie polaczyc sie z bazka np datagripem?
- nie ma zadnego koncowego error listenera ktory moglby te wyjatki obslugiwac?
- logi, var/logs albo stdout w kontenerze z php cos mowia?
- skrobnij sobie jakies proste zapytanie z PDO (bez DBAL) albo xdebuguj
@Yanushevitz:

teoretycznie powinien być połączony z bazą


A docker z apką jest w stanie połączyć się do bazy? W pierwszej kolejności sprawdź to. jeśli isConnected() w managerRegistry zwraca false to teoretycznie nie powinien być połączony z bazą, wbrew temu co piszesz.
#kbin update (tag do czarnolistowania)

https://karab.in/

Szybki update:
W tym tygodniu nudziarstwo, będzie mniej status update'ów

- #php upgrade (8.2)
- #symfony update
- #docker update
- deploy powiadomień podbić/ulubionych treści

strona projektu - https://kbin.pub

#fediverse https://axbom.com/fediverse/
#programowanie #webdev #ciekawostki #reddit #wykop
Ernest_ - #kbin update (tag do czarnolistowania)

https://karab.in/

Szybki updat...

źródło: comment_1670872617XQ5Z2ObjS6YuEVRB56GYfZ.jpg

Pobierz
Siema murki. Mam problem z #php #symfony #devops. Chodzi o uruchamianie testów. Skorzystałem z gotowego dockera od dunglasa https://github.com/dunglas/symfony-docker

Uruchamiam projekt

docker-compose up -d
uruchamiana jest migracja i tworzona baza danych "app". Wszystko jest ok jeśli używam np. postmana. Ale wolę napisać testy żeby nie testować ręcznie.

Użyłem behat (test rejestracji użytkownika), odpalam komendą:

docker compose exec php vendor/bin/behat
i dostaję to:

[critical] Uncaught PHP Exception Doctrine\DBAL\Exception\ConnectionException: "An exception occurred in
@mirunek: Wygląda na to że baza danych nie istnieje w kontenerze. Możesz dodać jako wolumen skrypt tworzący testową bd na starcie:

docker-compose.yml:

database:
restart: always
image: postgres:${DATABASE_SERVER_VERSION:-14}-alpine
ports:
- "5432"
environment:
POSTGRES_DB: ${DATABASE_NAME}
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
depends_on:
- rabbitmq
networks:
- symfony
volumes:
- ./docker/database/init-test-db.sh:/docker-entrypoint-initdb.d/init-test-db.sh

skrypt:

#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE DATABASE "${POSTGRES_DB}-test";
GRANT ALL PRIVILEGES ON DATABASE "${POSTGRES_DB}-test" TO "${POSTGRES_USER}";
EOSQL

Oczywiście
Mircy, zajmuję się #programowanie ale coraz częściej spoglądam w stronę #devops #docker. Zastanawiam się jakie są dobre praktyki związane z tworzeniem aplikacji #php #symfony z perspektywy właśnie devopsa czy (bardziej doświadczonego) developera.

Co mam na myśli?
Założmy, że mam aplikację która potrzebuje: serwer www (nginx, apache, etc.), php, mysql, rabbitmq, redis.
Obraz aplikacji będzie zawierał naturalnie kod php, ale tu pojawia się pytanie o resztę. O ile mysql, rabbitmq, nie powinien
@kozik_wnb: Nie odpowiem na twoje pytanie, ale mam dla ciebie protipa. Według mnie najlepsze firmy to takie, gdzie na rozmowach rekrutacyjnych nie pytają cię o szczegóły funkcjonalności różnych bundli frameworka, a o ogólne koncepty programistyczne i ich praktyczne zastosowanie. Ważniejsze dla nich jest w jaki sposób myślisz, niż to jak szczegółową masz wiedzę. Rozmowy rekrutacyjne powinny być faktycznymi rozmowami, a nie przesłuchaniami w charakterze oskarżonego gdzie twój rozmówca stara ci się
Zawsze jak rozkminiałem nowy framework to zawsze sobie po prostu budowałem panel admina ze wszystkimi potrzebnymi opcjami: logowanie, uprawnienia, użytkownicy + kilka jakiś modułów z różnymi typami pól i funkcji. Dobry tok myślenia w przypadku #symfony ?


@kozik_wnb: jak chcesz uprawiać freelancerkę to sobie rób.

W profesjonalnych firmach takie rzeczy są już zrobione. Jeśli chcesz iść w backend to naucz się lepiej wystawiać i implementować zewnętrzne API, zarówno REST jak i
Luźne pytanie z rana do mirków z #php #symfony.

Czy używacie produkcyjnie #apiplatform ? Wiem, że np. #sylius z tego korzysta żeby wystawić API ale... czy to powszeche? Czy to może overkill?

API platform sporo załatwia out of the box (np. paginacja, filtrowanie) ale też sporo dorzuca od siebie. Jakieś "magiczne" definicje dla endpointów, które leżą na encji. Chcesz symfony messenger? Dodaj tylko parametr. Zamiast votera (fakt, można nadal z niego
@mirunek:

> definicje dla endpointów, które leżą na encji


U amatorów tak ( ͡° ͜ʖ ͡°) Należy mieć tu dwie klasy w praktyce (co najmniej). Jedna reprezentuje Response Object / DTO pod kontrakt api, gdzie ją kolorujesz tymi magicznymi Adnotacjami/Atrybutami/yml/xml. A Encja domenowa to co całkiem co innego i ona nie wie o istnieniu api-platform.

@JackBauer: trochę jak wyżej, jak się traktuje to jako część infrastruktury
@devopsiarz: na wszystko co przyspieszy phpa jest popyt, bo powiedzmy sobie szczerze, php-fpm to archaiczne rozwiązanie, aby za każdym razem podnosić całą appkę, mam nadzieję że w php 9/10 jakoś ogarną aby w core języka było jakieś rozwiązanie aby appka mogła działać w banalny sposób jako daemon i była rozstawiana raz
Ratunku, dlaczego w #symfony 5 nie działają constraints w formularzu przy edycji? (PUT api call)
Mam notBlank, przy create ładnie pokazuje "field cannot be blank" a przy update wykrzacza się dopiero na setterze w entity (setter spodziewa się stringa). update i create to ten sam formularz - update extends create z nowymi polami. Na pewno to coś głupiego ale od paru godzin nie mogę namierzyć :/

public function updateAction(Request $request, Device $device,
@LaylaTichy: Dzięki, rozwiazane :D Miałem wersje docker compose 1.25, na 2.10 śmiga :D To wiele by wyjasniało dlaczego mi nie rozpoznawało polecenia docker compose, tylko po staremu docker-compose :D
Jakby ktoś miał podobny problem to wystarczy doinstalować docker compose w wyższej wersji(2). Starszej wersji nie wyrzucać i wtedy projekty moga korzystać z obu wersji.
#kbin update (tag do czarnolistowania)

https://karab.in

Szybki update:
- zmiana polityki podbijania treści
- fix zmiany magazynu federowanej treści
- fix testów po ostatnim prototypowaniu
- doszła częsciowa federacja z lemmym #fediverse
- zacząłem prototypować moduł zdecentralizowanych bloków parterskich dla innych instancji kbin, opartych na smartcontrakcie #cardano.

strona projektu: https://kbin.pub

#programowanie #strimi #ciekawostki #php #symfony
Ernest_ - #kbin update (tag do czarnolistowania)

https://karab.in

Szybki update...

źródło: comment_1664347525p366rY9QLLcAy6sgpRDRGy.jpg

Pobierz