src/Form/StationMeteoType.php line 14

Open in your IDE?
  1. <?php
  2. // src/Form/StationMeteoType.php
  3. namespace App\Form;
  4. use App\DTO\StationMeteoDTO// Assure-toi d'importer ton DTO
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. class StationMeteoType extends AbstractType
  11. {
  12.     public function buildForm(FormBuilderInterface $builder, array $options)
  13.     {
  14.         $builder
  15.            // ->add('apikey')
  16.             ->add('stationAPI'ChoiceType::class, [
  17.                 'choices' => $this->getStationAPIChoices(),
  18.             ])
  19.             ->add('Envoyer'SubmitType::class);
  20.     }
  21.     public function configureOptions(OptionsResolver $resolver)
  22.     {
  23.         $resolver->setDefaults([
  24.             'data_class' => StationMeteoDTO::class, // Utilisation du DTO ici
  25.         ]);
  26.     }
  27.     
  28.      public function getStationAPIChoices() {
  29.         return [
  30.             '01-AMBERIEU' => '01089001',
  31.             '01-CESSY' => '01071001',
  32.             '01-SUTRIEU' => '01414001',
  33.             '02-ST QUENTIN' => '02320001',
  34.             '02-BRAINE' => '02110002',
  35.             '02-FONTAINE-LES-VV' => '02321002',
  36.             '03-VICHY-CHARMEIL' => '03060001',
  37.             '03-LURCY-LEVIS SA' => '03155003',
  38.             '03-MONTBEUGNY' => '03180001',
  39.             '03-MONTLUCON' => '03185007',
  40.             '03-ST-NICOLAS' => '03248001',
  41.             '04-ST AUBAN' => '04049001',
  42.             '05-EMBRUN' => '05046001',
  43.             '05-GAP' => '05061009',
  44.             '05-LARAGNE MONTEGLIN' => '05070003',
  45.             '05-ST JEAN-ST-NICOLAS' => '05145002',
  46.             '05-VILLAR ST PANCRACE' => '05183001',
  47.             '06-CANNES' => '06029001',
  48.             '06-NICE' => '06088001',
  49.             '06-PEONE' => '06094002',
  50.             '07-COLOMBIER JEUNE RAD' => '07068001',
  51.             '07-GLUIRAS RAD' => '07096001',
  52.             '07-LANAS SYN' => '07131001',
  53.             '07-MAZAN ABBAYE RAD' => '07154005',
  54.             '08-CHARLEVILLE-MEZ' => '08105005',
  55.             '08-ROCROI' => '08367002',
  56.             '08-SAULCES-CHAMPENOISES' => '08401001',
  57.             '09-ASTON' => '09024004',
  58.             '09-MONTAUT' => '09199002',
  59.             '09-ST GIRONS' => '09289001',
  60.             '10-TROYES-BARBEREY' => '10030001',
  61.             '10-MATHAUX-ETAPE' => '10228002',
  62.             '11-CARCASSONNE' => '11069001',
  63.             '11-LEZIGNAN-CORBIERES' => '11203004',
  64.             '11-MOUTHOUMET' => '11260002',
  65.             '12-MILLAU' => '12145001',
  66.             '12-RODEZ-AVEYRON' => '12254001',
  67.             '12-VILLEFRANCHE-DE-ROUERGUE' => '12300004',
  68.             '13-MARIGNANE' => '13054001',
  69.             '13-AIX EN PROVENCE' => '13001009',
  70.             '13-ARLES' => '13004003',
  71.             '14-BERNIERES' => '14066001',
  72.             '14-CAEN-CARPIQUET' => '14137001',
  73.             '14-DAMBLAINVILLE' => '14216001',
  74.             '14-ST GATIEN DES B' => '14578001',
  75.             '14-VIRE HIPPODROME' => '14762004',
  76.             '15-AURILLAC' => '15014004',
  77.             '15-COLTINES' => '15053001',
  78.             '15-MARCENAT' => '15114002',
  79.             '15-MAURS' => '15122002',
  80.             '16-COGNAC' => '16089001',
  81.             '16-LA COURONNE' => '16113001',
  82.             '16-MONTEMBOEUF' => '16225001',
  83.             '16-RIOUX MARTIN' => '16279001',
  84.             '16-TUSSON' => '16390001',
  85.             '17-NUAILLE SUR BOUTONNE' => '17268002',
  86.             '17-LA ROCHELLE-ILE DE RE' => '17300009',
  87.             '17-ROYAN-MEDIS' => '17306004',
  88.             '17-CHASSIRON' => '17323001',
  89.             '17-ST GERMAIN DE LUSIGNAN' => '17339002',
  90.             '17-SAINTES' => '17415003',
  91.             '18-BOURGES' => '18033001',
  92.             '18-AVORD' => '18092001',
  93.             '19-BRIVE' => '19031008',
  94.             '19-EGLETONS' => '19073006',
  95.             '20-AJACCIO' => '20004002',
  96.             '20-CALVI' => '20050001',
  97.             '20-CORTE' => '20096008',
  98.             '20-FIGARI' => '20114002',
  99.             '20-BASTIA' => '20148001',
  100.             '20-SOLENZARA' => '20342001',
  101.             '21-PAGNY-LE-CHATEAU' => '21131001',
  102.             '21-CHATILLON/SEINE' => '21154001',
  103.             '21-DIJON-LONGVIC' => '21473001',
  104.             '22-KERPERT' => '22092001',
  105.             '22-PLOUGUENAST' => '22219003',
  106.             '22-POMMERIT-JAUDY' => '22247002',
  107.             '22-QUINTENIC' => '22261002',
  108.             '22-ROSTRENEN' => '22266001',
  109.             '22-SAINT-CAST-LE-G' => '22282001',
  110.             '22-ST BRIEUC' => '22372001',
  111.             '23-BOURGANEUF' => '23030004',
  112.             '23-GUERET-ST LAURENT' => '23206002',
  113.             '24-BELVES' => '24035003',
  114.             '24-BERGERAC' => '24037005',
  115.             '24-COULOUNIEIX' => '24138004',
  116.             '24-ST MARTIAL VIVEYROLS' => '24452001',
  117.             '25-BESANCON' => '25056001',
  118.             '25-MAICHE' => '25356003',
  119.             '25-PONTARLIER' => '25462001',
  120.             '25-SANCEY-LE-GRAND' => '25529002',
  121.             '26-ALBON' => '26002003',
  122.             '26-BESIGNAN' => '26050001',
  123.             '26-VALENCE-CHABEUI' => '26064001',
  124.             '26-ETOILE' => '26124001',
  125.             '26-LUS L CROIX HTE' => '26168001',
  126.             '26-MONTELIMAR' => '26198001',
  127.             '26-ST-AUBAN' => '26292002',
  128.             '26-ST ROMAN-DIOIS' => '26327001',
  129.             '27-BERNAY' => '27056003',
  130.             '27-EVREUX-HUEST' => '27347001',
  131.             '28-CHARTRES' => '28070001',
  132.             '28-CHATEAUDUN' => '28198001',
  133.             '29-BREST-GUIPAVAS' => '29075001',
  134.             '29-LANVEOC' => '29120001',
  135.             '29-PLEYBER-CHRIST SA' => '29163003',
  136.             '29-PLOUDALMEZEAU' => '29178001',
  137.             '29-PLOVAN' => '29214001',
  138.             '29-QUIMPER' => '29216001',
  139.             '29-ST-SEGAL S A' => '29263002',
  140.             '29-LANDIVISIAU' => '29264001',
  141.             '29-SIBIRIL S A' => '29276001',
  142.             '30-LA GRAND COMBE' => '30132004',
  143.             '30-MEJANNES-LE-CLAP' => '30164001',
  144.             '30-NIMES-COURBESSAC' => '30189001',
  145.             '30-PUJAUT' => '30209002',
  146.             '31-TOULOUSE-BLAGNAC' => '31069001',
  147.             '31-LUCHON' => '31042012',
  148.             '31-CLARAC' => '31147001',
  149.             '31-MURET-LHERM' => '31299001',
  150.             '31-ST-FELIX-LAURAGAIS' => '31478001',
  151.             '32-AUCH' => '32013005',
  152.             '32-LE HOUGA' => '32155001',
  153.             '32-MAUROUX' => '32248001',
  154.             '32-PEYRUSSE-GRANDE' => '32315001',
  155.             '33-BORDEAUX-MERIGNAC' => '33281001',
  156.             '33-CAZAUX' => '33529001',
  157.             '33-BELIN BELIET' => '33042005',
  158.             '33-PAUILLAC' => '33314005',
  159.             '33-ST EMILION' => '33394002',
  160.             '34-MONTPELLIER-AEROPORT' => '34154001',
  161.             '34-SETE' => '34301002',
  162.             '34-PEZENAS-TOURBES' => '34311001',
  163.             '35-LOUVIGNE-DU-DESERT' => '35162003',
  164.             '35-LA-NOE-BLANCHE' => '35202001',
  165.             '35-DINARD' => '35228001',
  166.             '35-RENNES-ST JACQUES' => '35281001',
  167.             '36-CHATEAUROUX DEOLS' => '36063001',
  168.             '36-MONTGIVRAY' => '36127002',
  169.             '36-ROSNAY' => '36173002',
  170.             '37-TOURS' => '37179001',
  171.             '37-SAVIGNY - VERON' => '37242002',
  172.             '38-ALPE-D\'HUEZ' => '38191002',
  173.             '38-GRENOBLE-ST GEOIRS' => '38384001',
  174.             '38-VILLARD-DE-LANS' => '38548001',
  175.             '39-LONS LE SAUNIER' => '39362001',
  176.             '39-LA PESSE' => '39413001',
  177.             '39-ST JULIEN - SA' => '39485002',
  178.             '39-TAVAUX SA' => '39526003',
  179.             '40-BISCARROSSE' => '40046001',
  180.             '40-CAPBRETON' => '40065002',
  181.             '40-DAX' => '40088001',
  182.             '40-MONT-DE-MARSAN' => '40192001',
  183.             '40-SABRES' => '40246003',
  184.             '40-URGONS' => '40321002',
  185.             '41-ROMORANTIN' => '41097001',
  186.             '41-BLOIS' => '41281001',
  187.             '42-ST ETIENNE-BOUTHEON' => '42005001',
  188.             '43-LE PUY-CHADRAC' => '43046001',
  189.             '43-LE PUY-LOUDES' => '43062001',
  190.             '43-FONTANNES' => '43096001',
  191.             '43-LANDOS-CHARBON' => '43111002',
  192.             '43-MAZET-VOLAMONT' => '43130002',
  193.             '43-SAUGUES-SA' => '43234005',
  194.             '44-NANTES-BOUGUENAIS' => '44020001',
  195.             '44-ST NAZAIRE-MONTOIR' => '44103001',
  196.             '44-NORT-SUR-ERDRE' => '44110002',
  197.             '45-ORLEANS' => '45055001',
  198.             '45-VILLEMURLIN' => '45340002',
  199.             '46-GOURDON' => '46127001',
  200.             '46-LUNEGARDE' => '46181001',
  201.             '46-LE MONTAT' => '46197002',
  202.             '47-AGEN-LA GARENNE' => '47091001',
  203.             '47-MAUVEZIN-SUR-GUPIE' => '47163001',
  204.             '48-MENDE' => '48095005',
  205.             '49-BEAUCOUZE' => '49020001',
  206.             '49-CHOLET' => '49099003',
  207.             '49-MARTIGNE-BRIAND' => '49191001',
  208.             '50-GONNEVILLE' => '50209001',
  209.             '50-GOUVILLE' => '50215002',
  210.             '50-PONTORSON' => '50410003',
  211.             '50-STE MARIE DU MO' => '50509002',
  212.             '51-ARGERS' => '51015001',
  213.             '51-REIMS-PRUNAY' => '51449002',
  214.             '52-LANGRES' => '52269001',
  215.             '52-ST-DIZIER' => '52448001',
  216.             '52-CHAUMONT-SEMOUTIERS' => '52469001',
  217.             '53-ERNEE' => '53096004',
  218.             '53-LE HORPS' => '53116003',
  219.             '53-LAVAL-ETRONNIER' => '53130008',
  220.             '54-ST MAURICE' => '54481001',
  221.             '54-NANCY-ESSEY' => '54526001',
  222.             '55-COUROUVRE' => '55129001',
  223.             '55-HOUDELAINCOURT' => '55248001',
  224.             '55-NONSARD' => '55386002',
  225.             '55-SEPTSARGES' => '55484001',
  226.             '56-BIGNAN' => '56017003',
  227.             '56-PLOERMEL' => '56165003',
  228.             '56-LORIENT-LANN BIHOUE' => '56185001',
  229.             '56-VANNES-SENE' => '56243001',
  230.             '57-METZ-FRESCATY' => '57039001',
  231.             '57-AEROPORT METZ-NANCY-LORRAINE' => '57251001',
  232.             '57-SEINGBOUSE' => '57644001',
  233.             '58-AVREE' => '58019001',
  234.             '58-CHATEAU CHINON' => '58062001',
  235.             '58-NEVERS-MARZY' => '58160001',
  236.             '58-PREMERY' => '58218006',
  237.             '59-LILLE-LESQUIN' => '59343001',
  238.             '59-VALENCIENNES' => '59606004',
  239.             '60-BAILLEUL-LE-SOC' => '60040001',
  240.             '60-CREIL' => '60175001',
  241.             '60-BEAUVAIS-TILLE' => '60639001',
  242.             '61-ALENCON' => '61001001',
  243.             '61-FLERS' => '61169003',
  244.             '61-L AIGLE' => '61214002',
  245.             '62-LILLERS' => '62516002',
  246.             '62-CALAIS-MARCK' => '62548002',
  247.             '62-LE-TOUQUET' => '62826001',
  248.             '62-ARRAS' => '62873001',
  249.             '63-AMBERT' => '63003004',
  250.             '63-CHASTREIX' => '63098001',
  251.             '63-CLERMONT-FD' => '63113001',
  252.             '63-COURPIERE' => '63125002',
  253.             '63-ISSOIRE' => '63178001',
  254.             '63-ST-ANTHEME' => '63319002',
  255.             '63-ST-GERMAIN-L HE' => '63353003',
  256.             '63-ST-GERVAIS-D AU' => '63354004',
  257.             '63-ST-SULPICE' => '63399002',
  258.             '64-AICIRITS' => '64010002',
  259.             '64-BIARRITZ-PAYS-BASQUE' => '64024001',
  260.             '64-BUSTINCE - ST JEAN' => '64155001',
  261.             '64-IRATY ORGAMBIDE' => '64316003',
  262.             '64-ORTHEZ' => '64430003',
  263.             '64-PAU-UZEIN' => '64549001',
  264.             '65-CAMPISTROUS' => '65125001',
  265.             '65-CASTELNAU MAGNOAC' => '65129003',
  266.             '65-TARBES-LOURDES-PYRENEES' => '65344001',
  267.             '65-VIC EN BIGORRE' => '65460002',
  268.             '66-PERPIGNAN' => '66136001',
  269.             '66-TARGASONNE' => '66202001',
  270.             '66-TORREILLES' => '66212001',
  271.             '67-BERG' => '67029001',
  272.             '67-STRASBOURG-ENTZHEIM' => '67124001',
  273.             '67-SELESTAT SA' => '67462004',
  274.             '68-COLMAR-MEYENHEIM' => '68205001',
  275.             '68-MULHOUSE' => '68224006',
  276.             '68-MARKSTEIN CRETE' => '68247003',
  277.             '68-BALE-MULHOUSE' => '68297001',
  278.             '69-LYON-BRON' => '69029001',
  279.             '69-LES SAUVAGES' => '69174002',
  280.             '69-LYON-ST EXUPERY' => '69299001',
  281.             '70-CHARGEY-LES-GRAY' => '70132001',
  282.             '70-BALLON DE SERVANCE' => '70283006',
  283.             '70-LUXEUIL' => '70473001',
  284.             '70-VILLERSEXEL SA' => '70561002',
  285.             '71-AUTUN' => '71014004',
  286.             '71-CHALON-CHAMPFO' => '71081001',
  287.             '71-MACON' => '71105001',
  288.             '71-MT-ST-VINCENT' => '71320001',
  289.             '71-ST YAN' => '71491001',
  290.             '72-LUCHE-PRINGE' => '72175002',
  291.             '72-LE MANS' => '72181001',
  292.             '72-ROUESSE-VASSE' => '72255001',
  293.             '73-BOURG ST MAURICE' => '73054001',
  294.             '73-COL-DES-SAISIES' => '73132003',
  295.             '73-MONT CENIS' => '73144001',
  296.             '73-MONTMELIAN' => '73171002',
  297.             '73-LA MASSE' => '73257003',
  298.             '73-CHAMBERY-AIX' => '73329001',
  299.             '74-LE GRAND-BORNAND' => '74136005',
  300.             '74-MEYTHET' => '74182001',
  301.             '74-MONT ARBOIS' => '74236002',
  302.             '75-PARIS-MONTSOURIS' => '75114001',
  303.             '75-LONGCHAMP' => '75116008',
  304.             '76-ROUEN-BOOS' => '76116001',
  305.             '76-DIEPPE' => '76217001',
  306.             '76-ECTOT LES BAONS' => '76228001',
  307.             '76-OCTEVILLE' => '76481001',
  308.             '77-CHANGIS' => '77084001',
  309.             '77-CHEVRU' => '77113002',
  310.             '77-NANGIS' => '77211001',
  311.             '77-MELUN' => '77306001',
  312.             '77-TORCY' => '77468001',
  313.             '78-TRAPPES' => '78621001',
  314.             '78-VILLACOUBLAY' => '78640001',
  315.             '78-ACHERES' => '78005002',
  316.             '78-MAGNANVILLE' => '78354001',
  317.             '79-BRESSUIRE' => '79049004',
  318.             '79-MELLE' => '79174002',
  319.             '79-NIORT' => '79191005',
  320.             '80-ABBEVILLE' => '80001001',
  321.             '80-AMIENS-GLISY' => '80379002',
  322.             '81-LAVAUR' => '81140002',
  323.             '81-MONTREDON-LABESSONNIE' => '81182004',
  324.             '81-ALBI' => '81284001',
  325.             '82-CASTELSARRASIN' => '82033005',
  326.             '82-MONTAUBAN' => '82121002',
  327.             '82-SAVENES' => '82178002',
  328.             '83-BORMES LES MIMOSAS' => '83019002',
  329.             '83-LE LUC' => '83031001',
  330.             '83-FREJUS' => '83061001',
  331.             '83-ILE DU LEVANT' => '83069003',
  332.             '83-TOULON' => '83137001',
  333.             '83-VINON SUR VERDON' => '83150002',
  334.             '84-CABRIERES D\'AVIGNON' => '84025001',
  335.             '84-CARPENTRAS' => '84031001',
  336.             '84-ORANGE' => '84087001',
  337.             '84-VISAN' => '84150001',
  338.             '85-CHATEAU-D\'OLONNE' => '85060002',
  339.             '85-FONTENAY' => '85092004',
  340.             '85-L ILE D YEU' => '85113001',
  341.             '85-NOIRMOUTIER EN' => '85163001',
  342.             '85-LE PERRIER' => '85172001',
  343.             '85-LA ROCHE SUR YON' => '85191003',
  344.             '86-ARCHIGNY' => '86009001',
  345.             '86-POITIERS-BIARD' => '86027001',
  346.             '86-CIVRAY' => '86078002',
  347.             '86-LOUDUN' => '86137003',
  348.             '86-MONTMORILLON' => '86165005',
  349.             '87-LIMOGES-BELLEGARDE' => '87085006',
  350.             '87-ST YRIEIX LA PE' => '87187003',
  351.             '88-BAN-DE-SAPT' => '88033002',
  352.             '88-EPINAL' => '88136001',
  353.             '88-LIGNEVILLE' => '88271001',
  354.             '88-ROVILLE' => '88402002',
  355.             '89-AUXERRE-PERRIGNY' => '89295001',
  356.             '91-ORLY' => '91027002',
  357.             '95-LE BOURGET' => '95088001',
  358.             '95-ROISSY' => '95527001',
  359.             '95-WY-DIT' => '95690001',
  360.             '971-LE RAIZET AERO' => '97101015',
  361.             '971-CAPESTERRE-B-EAU NEUFCHATEAU' => '97107002',
  362.             '971-LA DESIRADE METEO' => '97110002',
  363.             '971-ST-BARTHELEMY METEO' => '97123001',
  364.             '971-STE-ROSE VIARD' => '97129015',
  365.             '972-FOND-DENIS-CADET' => '97208001',
  366.             '972-FORT-DE-FRANCE DESAIX' => '97209004',
  367.             '972-FRANCOIS-CHOPOT' => '97210001',
  368.             '972-LAMENTIN-AERO' => '97213004',
  369.             '972-ROBERT-PTE FORT' => '97222002',
  370.             '972-ST-JOSEPH LEZARD' => '97224004',
  371.             '972-TRINITE-CARAVEL' => '97230001',
  372.             '972-VAUCLIN' => '97232003',
  373.             '973-CAYENNE SUZINI' => '97302005',
  374.             '973-CAYENNE-MATOURY' => '97307001',
  375.             '973-SAINT GEORGES' => '97308001',
  376.             '973-SAINT LAURENT' => '97311001',
  377.             '974-BELLEVUE BRAS-PANON' => '97402240',
  378.             '974-PONT-MATHURIN' => '97404540',
  379.             '974-PLAINE DES PALMISTES' => '97406220',
  380.             '974-LE PORT' => '97407520',
  381.             '974-LE COLOSSE' => '97409230',
  382.             '974-SAINT-BENOIT' => '97410238',
  383.             '974-COLIMACONS' => '97413520',
  384.             '974-PETITE-FRANCE' => '97415536',
  385.             '974-PITON-MAIDO' => '97415566',
  386.             '974-POINTE DES TROIS-BASSINS' => '97415590',
  387.             '974-PIERREFONDS-AEROPORT' => '97416463',
  388.             '974-LE BARIL' => '97417360',
  389.             '974-GILLOT-AEROPORT' => '97418110',
  390.             '974-GROS PITON SAINTE-ROSE' => '97419350',
  391.             '974-BELLECOMBE-JACOB' => '97419380',
  392.             '974-PLAINE DES CAFRES' => '97422440',
  393.             '974-CILAOS' => '97424410'
  394.         ];
  395.     }
  396.     
  397.     public function getKeyById($id)
  398. {
  399.     // Récupère le tableau des choix
  400.     $choices $this->getStationAPIChoices();
  401.     // Recherche la clé correspondant à l'ID
  402.     $key array_search($id$choices);
  403.     // Si une clé est trouvée, retourne-la, sinon retourne null ou une valeur par défaut
  404.     return $key !== false $key null;
  405. }
  406.     
  407. }