Jak uruchomić aplikację w symfony?

Jak uruchomić aplikację w symfony?
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

Mam taki problem, że zainstalowałem symfony, coś tam z GPT napisaliśmy ale nie renderuje mi strony wynikowej

kod

Kopiuj
<?php
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class LuckyController
{
   
    public function number(): Response
    {
        $number = random_int(0, 100);

        // Creating a Response object with the generated random number
        $html = '<html><body>';
        $html .= '<h1>Your lucky number is: ' . $number . '</h1>';
        $html .= '</body></html>';

        // Return the Response object
        return new Response($html);
    }
}

wyświetla mi jako tekst

Kopiuj
// src/Controller/LuckyController.php namespace App\Controller; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class LuckyController { public function number(): Response { $number = random_int(0, 100); // Creating a Response object with the generated random number $html = ''; $html .= '
Your lucky number is: ' . $number . '
'; $html .= ''; // Return the Response object return new Response($html); } }

php 8.24

Dodałem <?php i wypluwa pusty dokument

Uruchomiłem serwer symfony w katalogu zmieniłem nazwę projektu na index.php nie działą
Uruchomiłem xampp z oryginalną nazwą projektu i nic nie pokazuje

GPT

Apologies for the confusion earlier. In the code snippet you provided, the #[Route] annotation is missing. To define a route using annotations, you need to add the #[Route] annotation above the controller method you want to associate with a specific URL.

Sam to napisał godzinę wcześniej.


edytowany 5x, ostatnio: Riddle
Mjuzik
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Postów:717
2

"Apologies for the confusion earlier. In the code snippet you provided, the #[Route] annotation is missing. To define a route using annotations, you need to add the #[Route] annotation above the controller method you want to associate with a specific URL."

Odpowiedź już znasz. Zachęcam bardziej niż z chatgpt korzystać z dokumentacji symfony:

https://symfony.com/doc/current/controller.html

Kopiuj
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class LuckyController
{
    #[Route('/lucky/number/{max}', name: 'app_lucky_number')]
    public function number(int $max): Response
    {
        $number = random_int(0, $max);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

Nic nie generuje 1.jpg1a.jpg1b.jpg1c.jpg

  • 1.jpg (118 KB) - ściągnięć: 8
  • 1a.jpg (61 KB) - ściągnięć: 11
  • 1b.jpg (217 KB) - ściągnięć: 5
  • 1c.jpg (17 KB) - ściągnięć: 3

edytowany 1x, ostatnio: johnny_Be_good
Riddle
@johnny_Be_good: Nie wklejaj screenów w posty. Skopiuj kod i wynik programu, i wklej go w znacznikach a ```. Jesteś na forum już długo, powinieneś to wiedzieć. https://4programmers.net/Forum/Spolecznosc/355922-dlaczego_nie_nalezy_zamieszczac_kodu_w_postaci_obrazkow
serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
2

Serio używasz notatnika do tego??

Screenów robienie też nie za bardzo wychodzi Ci. Możesz przecież wrzucić tylko wycinek, a nie cały ekran.

edytowany 1x, ostatnio: serek
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Postów:3506
0

Na screnie masz tylko informacje, że plik log najprawdopodobniej jest już otwarty i sam PHP nie może do niego zapisać.

Litości 21 wiek. Użyj jakiegoś IDE już nawet notepad ++ lepszy.

JB
var\log - "ten folder jest pusty"
jurek1980
odpowiadaj w postach!
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

1.jpg1a.jpg1b.jpg

  • 1.jpg (28 KB) - ściągnięć: 3
  • 1a.jpg (174 KB) - ściągnięć: 14
  • 1b.jpg (26 KB) - ściągnięć: 9

edytowany 1x, ostatnio: johnny_Be_good
Mjuzik
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Postów:717
0

Brakuje name w Route

serek
Name nie jest wymagane z tego co pamiętam
serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
0

W ogóle renderowanie HTML w kontrolerze? Mega MEH.

Weź zainstaluj TWIGa, będzie lepsze.

Zainstalowałeś paczki z composera?

edytowany 1x, ostatnio: serek
JB
Tak od 10 do 18 wczoraj instalowałem
serek
Co przez 8h robiłeś?
serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
0

Zrób sobie może w akcji samo:

Kopiuj
public function number(): Response
{
    return new Response('test');
}

Skoro nie działa, to trzeba uprościć trochę wszystko.

I sprawdź czy na 100% masz paczki z composera zainstalowane.

Możesz też sobie zdebugować routing: https://symfony.com/doc/current/routing.html#debugging-routes

edytowany 1x, ostatnio: serek
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Postów:3506
1

Tak nie da się za bardzo pomóc. Nie wklejaj screnów. Minimalny wysiłek włóż, żeby można Ci było pomóc. Tak nie da się tego czytać.
Opowiadaj w postach.
Albo dajesz routes w pliku yaml albo przez adnotacje.
Zacznij od sprawdzenia co SF myśli o Twoich wpisach w routes:
php bin/console debug:router
https://symfony.com/doc/current/controller.html
Potem
Przeklej sobie przykład 1:1 z tutoriala i uruchom.

edytowany 1x, ostatnio: jurek1980
serek
Ha, byłem pierwszy z tym debugowaniem! xD O całe 2 sekundy!
jurek1980
To nawet mi się jeszcze nie wyrenderowało ;)
JB
w przykładzie nie ma <?php jak byś nie zauważył nie chciałem tego zmieniać bo tam jest dodany parametr
serek
@johnny_Be_good: w dokumentacji nigdy się tego <?php nie podaje, tylko sam kod już. Bo KAŻDY wie, że plik php ma mieć ten tag... Brakuje Ci podstaw podstaw.
JB
Tak GPT też pozwala, żebym sobie wszędzie to milion razy sam dopisywał
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
jurek1980 napisał(a):

Tak nie da się za bardzo pomóc. Nie wklejaj screnów. Minimalny wysiłek włóż. Tak nie da się tego czytać.
Opowiadaj w postach.
Albo dajesz routes w pliku yaml albo przez adnotacje.
Zacznij od sprawdzenia co SF myśli o Twoich wpisach w routes:
php bin/console debug:router
https://symfony.com/doc/current/controller.html
Potem
Przeklej sobie przykład 1:1 z tutoriala i uruchom.

"K:\xampp4\htdocs\my_project_name>php bin/console debug:router
PHP Warning: Module "openssl" is already loaded in Unknown on line 0

Warning: Module "openssl" is already loaded in Unknown on line 0


Name Method Scheme Host Path


_preview_error ANY ANY ANY /_error/{code}.{_format}
app_routes ANY ANY ANY /lucky/number
---------------- -------- -------- ------ --------------------------"

dałem response new ("test");

  1. Czy to obojętne czy daję " czy '

  2. Czy w yaml ma być 'App\Controller\LuckyController:number' czy App\Controller\LuckyController:number ?

  3. Czy plik to może być index.php ?


edytowany 2x, ostatnio: johnny_Be_good
serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
0
johnny_Be_good napisał(a):
  1. Czy to obojętne czy daję " czy '

Eeee... Ty tak na serio się pytasz? Tak, w tym przypadku obojętne. Ale jeśli nie wiesz tego, to widzę ciężko Twoją przygodę z Symfony.

johnny_Be_good napisał(a):
  1. Czy w yaml ma być 'App\Controller\LuckyController:number' czy App\Controller\LuckyController:number ?

Nie powinno mieć znaczenia.

johnny_Be_good napisał(a):
  1. Czy plik to może być index.php ?

Jaki plik? Index.php jest to główny plik aplikacji.

edytowany 1x, ostatnio: serek
JB
po zamiania LuckyNumber.php na index.php serwer przestaje rzucać ostrzeżeniem
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Postów:3506
0

Ad 2 zostań na razie przy adnotacji Route
Ad 3 Pliku Index.php nie zmieniasz. On ładuje Kernel który robi magię w tym routing.
Plik kontrolera ma być w odpowiednim miejscu, ma rozszerzać klasę Controller itd.

Zacznij od przeklejenia 1:1 z tutoriala.

Ostrzeżenie o OpenSSL masz bo pewnie przeedytowałeś php.ini z błędem.

edytowany 1x, ostatnio: jurek1980
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
jurek1980 napisał(a):

Ad 2 zostań na razie przy adnotacji Route
Ad 3 Pliku Index.php nie zmieniasz. On ładuje Kernel który robi magię w tym routing.
Plik kontrolera ma być w odpowiednim miejscu, ma rozszerzać klasę Controller itd.

Zacznij od przeklejenia 1:1 z tutoriala.

Ostrzeżenie o OpenSSL masz bo pewnie przeedytowałeś php.ini z błędem.

Gdzie mam index.php? Mam w nim zawartość Tego LuckyNumber, wcześniej pokazało mi komunikat że strona nie jest skonfigurowana.
Jaka zawartość powinna być index.php jeśli nie to

Kopiuj
<?php
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class LuckyController
{
    #[Route('/lucky/number/{max}', name: 'app_routes')]
    public function number(int $max): Response
    {
        $number = random_int(0, $max);

        return new Response( 'zzzz');
    }
}

??
O ten index chodzi?

"<?php

use App\Kernel;

require_once dirname(DIR).'/vendor/autoload_runtime.php';

return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};
"

'app_routes' dodałem taka jak konsola to nazwała.


edytowany 3x, ostatnio: johnny_Be_good
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Postów:3506
0

index.php powinien być w katalogu public i powinno tam być coś o ładowaniu Kernel.
Jeśli tego nie masz, to coś ostro poszło nie tak.

JB
Jest, skopiowałem go też na próbę do src id src/Controller
serek
Nie... Index php ma być tylko jeden, ten w public.
serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
1

@johnny_Be_good brakuje Ci totalnych podstaw i ogólnego zrozumienia PHP. Wg mnie Symfony to za wysokie progi, zacznij od czegoś prostszego, bez frameworka. Inaczej co chwilę będziesz miał problemy z czymś.

edytowany 1x, ostatnio: serek
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

A tu dali <?php xD

serek napisał(a):

@johnny_Be_good brakuje Ci totalnych podstaw i ogólnego zrozumienia PHP. Wg mnie Symfony to za wysokie progi, zacznij od czegoś prostszego, bez frameworka. Inaczej co chwilę będziesz miał problemy z czymś.

1a.jpg1.jpg


jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 godzin
  • Postów:3506
0

Jest, skopiowałem go też na próbę do src id src/Controller —

To nie tak!
To jest MVC. index.php jest plikiem wejścia. Nie ruszasz go! Potem ten plik z użyciem Kernela i całego mechanizmu jaki ma ładuje sobie jakiś kontroler i ten kontroler odpowiada za ruch na konkretnym adresie URL.
Względnie wywołuje plik z widokiem.
Poczytaj co to MVC. Nie ruszaj core framework`a.
I odpowiadaj w postach. Komentarze są do korespondencji "poza tematem" - stąd nazwa "komentarz".

JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
jurek1980 napisał(a):

Jest, skopiowałem go też na próbę do src id src/Controller —

To nie tak!
To jest MVC. index.php jest plikiem wejścia. Nie ruszasz go! Potem ten plik z użyciem Kernela i całego mechanizmu jaki ma ładuje sobie jakiś kontroler i ten kontroler odpowiada za ruch na konkretnym adresie URL.
Względnie wywołuje plik z widokiem.
Poczytaj co to MVC. Nie ruszaj core framework`a.
I odpowiadaj w postach. Komentarze są do korespondencji "poza tematem" - stąd nazwa "komentarz".

I nigdy nigdy nie kopiowałeś kluczowych plików systemowych w różne ciekawe miejsca?


ccwrc
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 2 godziny
  • Postów:383
0

Kiedyś, dawno, dawno temu też pisałem LuckyNumber. I mam straszne wrażenie, że pan ChatGPT skopiował go ode mnie.

Mam także wrażenie, że chcesz odpalić wszystko równoczesnie korzystając z dwóch serwerów (apache + symfonowy). Muszę doczytać twoje posty.

Rady na szybko:

  1. zainstaluj sobie jakiegoś linuxa (mint? ubuntu?)
  2. na linuchu zainstaluj VSC - ma mnóstwo pomocnych dodatków.
  3. zainstaluj potrzebne rzeczy. A jak?
    • wpisujesz to co chcesz odpalić (np. php)
    • linuch oburzony zaczyna krzyczeć, że nie masz tego w systemie i wyświetla komendę za pomocą której możesz daną rzecz zainstalować.
    • komendę kopiujesz i odpalasz (no, po prostu naciskasz enter)
    • brawo, instalacja potrzebnej rzeczy zakończona.
      Powyższe 4 podpunkty powtarzasz do momentu aż będziesz miał zainstalowane wszystko co chcesz. Włącznie z composerem, instalatorem symfony itd.
JB
apache mam wyłączony ALE podoba mi się ten pomysł, że serwer działa w katalogu w którym się go uruchamia. Nie wiem czemu ale fajne to jest. Mogę mieć 10 różnych serwerów.
ccwrc
możesz mieć i 15 różnych serwerów odpalonych na różnych wersjach PHP. Symfony bardzo to upraszcza -> dokumentacja.
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

Zacząłem do nowa przy użyciu

php bin/console make:controller HelloWorldController

Ogólnie jesteśmy w tym miejscu gdzie powinien być komunikat błędu

I mamy to

1.jpg

  • 1.jpg (32 KB) - ściągnięć: 3

ccwrc
Wrzuć kod, napisz, czy masz przekierowanie do widoku i sam kod widoku też możesz wrzucić.
JB
Mam problem z AbstractController, to może być coś niedoinstalowane?
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
ccwrc napisał(a):

Kiedyś, dawno, dawno temu też pisałem LuckyNumber. I mam straszne wrażenie, że pan ChatGPT skopiował go ode mnie.

...

Dodałem do routes.yaml linijkę app_routes:
path: /hello/world
controller: 'App\Controller\HelloWorldController::index'

I zaczęło wyświetlać pustą stronę. Cały czas jest pusta.

serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
0

Spytam się kolejny raz: czy masz zainstalowane paczki? Działa Ci PHP/Apache(lub nginx)?

A co się wyświetla na stronie głównej? Powinna być strona powitalna z Symfony.

edytowany 1x, ostatnio: serek
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
serek napisał(a):

Spytam się kolejny raz: czy masz zainstalowane paczki?

Jakie?

Kopiuj
C:\Users\juzio\Desktop\my_project_name>composer require symfony/maker-bundle --dev
PHP Warning:  Module "openssl" is already loaded in Unknown on line 0

Warning: Module "openssl" is already loaded in Unknown on line 0
./composer.json has been updated
Running composer update symfony/maker-bundle
Loading composer repositories with package information
Restricting packages listed in "symfony/symfony" to "7.0.*"
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking doctrine/inflector (2.0.8)
  - Locking nikic/php-parser (v4.18.0)
  - Locking symfony/maker-bundle (v1.52.0)
  - Locking symfony/process (v7.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
    Failed to download symfony/process from dist: The zip extension and unzip/7z commands are both missing, skipping.
The php.ini used by your command-line PHP is: K:\xampp4\php\php.ini
    Now trying to download from source
  - Syncing symfony/process (v7.0.0) into cache
    Failed to download nikic/php-parser from dist: The zip extension and unzip/7z commands are both missing, skipping.
The php.ini used by your command-line PHP is: K:\xampp4\php\php.ini
    Now trying to download from source
  - Syncing nikic/php-parser (v4.18.0) into cache
    Failed to download doctrine/inflector from dist: The zip extension and unzip/7z commands are both missing, skipping.
The php.ini used by your command-line PHP is: K:\xampp4\php\php.ini
    Now trying to download from source
  - Syncing doctrine/inflector (2.0.8) into cache
    Failed to download symfony/maker-bundle from dist: The zip extension and unzip/7z commands are both missing, skipping.
The php.ini used by your command-line PHP is: K:\xampp4\php\php.ini
    Now trying to download from source
  - Syncing symfony/maker-bundle (v1.52.0) into cache
  - Installing symfony/process (v7.0.0): Cloning 13bdb1670c from cache
  - Installing nikic/php-parser (v4.18.0): Cloning 1bcbb2179f from cache
  - Installing doctrine/inflector (2.0.8): Cloning f9301a5b2f from cache
  - Installing symfony/maker-bundle (v1.52.0): Cloning 112f9466c9 from cache
Generating autoload files
30 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Symfony operations: 1 recipe (69da1fb20da5bd62e648f35fed47f34e)
  - Configuring symfony/maker-bundle (>=1.0): From github.com/symfony/recipes:main
Executing script cache:clear [OK]
Executing script assets:install public [OK]

 What's next?


Some files have been created and/or updated to configure your new packages.
Please review, edit and commit them: these files are yours.

https://repo.packagist.org could not be fully loaded (curl error 28 while downloading https://repo.packagist.org/p2/symfony/cache-contracts.json: SSL connection timeout), package information was loaded from the local cache and may be out of date
No security vulnerability advisories found.
Using version ^1.52 for symfony/maker-bundle

serek
  • Rejestracja:około 11 lat
  • Ostatnio:22 minuty
  • Postów:1475
0

Wejdź na 127.0.0.1:8000 i zobacz czy masz stronę powitalną z Symfony.

JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
serek napisał(a):

Wejdź na 127.0.0.1:8000 i zobacz czy masz stronę powitalną z Symfony.

Nie mam
A wcześniej miałem komunikat "Widzisz tą stronę ponieważ strona nie jest skonfigurowana" coś tkaiego

Uruchomiłem serwer w innym katalogu i pokazuje stona not found.


edytowany 1x, ostatnio: johnny_Be_good
ccwrc
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 2 godziny
  • Postów:383
0

Poczytałem trochę i mam pytania oraz prośbę.

  • co właściwie instalujesz? Na jednym ze screenów widzę Symfony 5 a piszesz o PHP 8.2
  • czy to zadanie ma coś wspólnego z zadaniem związanym z Symfony które dostałeś na rekrutacji (nie pamiętam, czy wczoraj czy wcześniej, nie chce mi się teraz sprawdzać)? To z czystej ciekawości, nie musisz się do tego odnosić.

Wklej cały kod np. na githuba - to da możliwość weryfikacji w kilka sekund zamiast bawienia się we wklejanie kilku linijek, które bez całej reszty są przeważnie bezwartościowe.

jurek1980
Według tego co wklejał ma SF 7 >Syncing symfony/process (v7.0.0)
ccwrc
Na jednym ze screenów jest Symfony 5. Ale OP nie chce na razie dzielić się kodem. No i sobie czekam, może udostępni.
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
0
ccwrc napisał(a):

Poczytałem trochę i mam pytania oraz prośbę.

  • co właściwie instalujesz? Na jednym ze screenów widzę Symfony 5 a piszesz o PHP 8.2
  • czy to zadanie ma coś wspólnego z zadaniem związanym z Symfony które dostałeś na rekrutacji (nie pamiętam, czy wczoraj czy wcześniej, nie chce mi się teraz sprawdzać)? To z czystej ciekawości, nie musisz się do tego odnosić.

Wklej cały kod np. na githuba - to da możliwość weryfikacji w kilka sekund zamiast bawienia się we wklejanie kilku linijek, które bez całej reszty są przeważnie bezwartościowe.

A wcześniej

routes.yaml wyglądał tak

controllers:
resource:
path: ../src/Controller/
namespace: App\Controller
type: attribute


Zobacz pozostałe 11 komentarzy
JB
@ccwrc: mój edytorek (wersja 2.0) zajmuje 165 kilobajtów. I to jest normlany rozmiar. Nie 200 Megabajtów nie licząc PHP tylko 165 kilobajtów.
ccwrc
Nie wiem po co o tym piszesz. Mam wrażenie, że nie chcesz czytać tego co napisałem ja i inni wcześniej.
JB
Pisałeś, że nie widzisz composera, to zwróciłem uwagę, że pojawiło się 200 MB danych.
JB
Wcześniej było to "The following exception is caused by a process timeout Check https://getcomposer.org/doc/06-config.md#process-timeout for details" To zdjęcie też mi wyskoczyło a potem już tylko pusta strona. To jest scam i tyle.
ccwrc
composer działa podobnie jak np. npm - też zarządza zależnościami. Napisałem, że nie widzę composera bo nie wrzuciłeś pliku composer.json W tym pliku jest to co jest wymagane i to co jest instalowane. To co wrzuciłeś tutaj to kilka linijek opisujące, że composer zakończył pracę. Mało przydatne w szerszym kontekście.
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 14 godzin
  • Lokalizacja:Holandia
  • Postów:851
1

Chyba jednak to zwykły scam

@ccwrc


edytowany 1x, ostatnio: johnny_Be_good

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.