Instal·lació
Requisits
| Eina | Versió mínima |
|---|---|
| PHP | 8.2 |
| Composer | 2.x |
| Symfony CLI | qualsevol versió recent |
| MySQL | 8.0 |
Passos
1. Clonar el repositori
git clone git@github.com:OneTandem/visor2030-backend.git
cd visor2030-backend2. Instal·lar dependències PHP
composer install3. Configurar les variables d'entorn
Copia el fitxer d'exemple i edita'l:
cp .env .env.localVariables mínimes a configurar a .env.local:
# Connexió a la base de dades — paràmetres discrets per variables d'entorn.
# El mateix mecanisme funciona a tots els entorns (local, DIBA, Heroku)
# sense haver d'editar config/packages/doctrine.yaml.
DATABASE_HOST=127.0.0.1
DATABASE_PORT=3306
DATABASE_NAME=visor2030
DATABASE_USER=usuari
DATABASE_PASSWORD=contrasenya
DATABASE_SERVER_VERSION="8.0.22" # p. ex. "8.0.22" (MySQL) o "11.4.5-MariaDB"
# SSL de la connexió: deixa-ho així en local i a servidors sense SSL.
# A Heroku (BBDD que exigeix SSL): DATABASE_SSL_CA_PATH=/etc/ssl/certs i DATABASE_SSL_VERIFY=true
DATABASE_SSL_CA_PATH=
DATABASE_SSL_VERIFY=false
CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$'
JWT_PASSPHRASE=una-frase-de-pas-seguraConnexió per variables d'entorn
La connexió es defineix sempre amb aquests paràmetres discrets (DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD) i les opcions SSL (DATABASE_SSL_CA_PATH, DATABASE_SSL_VERIFY). Així el mateix doctrine.yaml serveix per a qualsevol entorn: cada servidor només defineix les seves variables.
4. Generar les claus JWT
php bin/console lexik:jwt:generate-keypairAixò crea config/jwt/private.pem i config/jwt/public.pem. Aquests fitxers no s'han de cometre al repositori.
5. Crear la base de dades i executar migracions
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate6. Carregar dades inicials
php bin/console app:load-initial-dataAquesta comanda carrega les dades geogràfiques bàsiques: municipis, comarques, províncies i agrupacions territorials. Requereix connexió a internet (crida a l'API d'IDESCAT).
Dades específiques de la Diputació de Barcelona
Per defecte, la comanda carrega els municipis de la província de Barcelona (codi INE 08). Si adapteu el projecte per a un altre territori, haureu de modificar el filtre de província als serveis de càrrega de dades a src/Service/.
La comanda accepta flags per carregar només una part de les dades. Vegeu la referència completa a la secció Comandes CLI → app:load-initial-data.
7. Iniciar el servidor de desenvolupament
symfony server:startL'API estarà disponible a https://localhost:8000/api.
Entorn de test
Crea un .env.test.local (el sistema afegeix el sufix _test al nom de la base de dades automàticament per convenció de Symfony):
DATABASE_NAME=visor2030
DATABASE_SERVER_VERSION="8.0.22"Executa els tests:
php bin/phpunit
php bin/phpunit tests/Unit/ServerInfoTest.php # fitxer concret
php bin/phpunit --filter testMethods # mètode concretEines de qualitat de codi
vendor/bin/php-cs-fixer fix # aplica les regles de format (veure .php-cs-fixer.dist.php)