HelloWorld: Transport.php

File Transport.php, 1.8 KB (added by /C=FR/O=CNRS/OU=UMR8607/CN=Christian Arnault/emailAddress=arnault@…, 12 years ago)
Line 
1<?php
2
3include ('Faisceau.php');
4include ('Cavité.php');
5
6class Paramètres
7{
8  var $data;
9  var $twiss;
10  var $énergie;
11
12  var $champ;
13  var $longueur;
14};
15
16$Paramètres = new Paramètres ();
17
18class Control
19{
20  function get_post ()
21    {
22      global $_GET;
23      global $Paramètres;
24
25      foreach ($_GET as $cle => $value)
26        {
27          //echo "[{$cle}]={$value}<br>";
28
29          $words = explode ('_', $cle);
30
31          $n = count ($words);
32
33          $classe = $words[0];
34          $champ = '';
35          if ($n > 1) $champ = str_replace ($classe . '_', '', $cle);
36
37          if (is_array ($value))
38            {
39              $str = "cle=($cle) _GET[{$classe}.{$champ}]=";
40            }
41          else
42            {
43              $Paramètres->$cle = $value;
44            }
45        }
46    }
47
48};
49
50class Transport
51{
52  function Transport ()
53    {
54    }
55
56  function run ($faisceau, $cavité)
57    {
58      $sortie = new Faisceau ("", $faisceau->twiss, $faisceau->énergie);
59
60      $sortie = $cavité->accélère ($sortie);
61
62      $string = '<pspa></pspa>';
63
64      $xml = new SimpleXMLElement($string);
65
66      $f = $xml->addChild ("faisceau");
67      $f->addAttribute ("twiss", $sortie->twiss);
68      $f->addAttribute ("energie", $sortie->énergie);
69
70      echo $xml->asXML();
71    }
72};
73
74$control = new Control ();
75
76$control->get_post ();
77
78$xml = simplexml_load_file($Paramètres->data);
79
80$faisceau = $xml->faisceau;
81$Paramètres->twiss = (double) $faisceau['twiss'];
82$Paramètres->énergie = (double) $faisceau['energie'];
83$cavité = $xml->cavite;
84$Paramètres->longueur = (double) $cavité['longueur'];
85$Paramètres->champ = (double) $cavité['champ'];
86
87$faisceau = new Faisceau ("", $Paramètres->twiss, $Paramètres->énergie);
88$cavité = new Cavité ($Paramètres->champ, $Paramètres->longueur);
89
90$Transport = new Transport ();
91
92$Transport->run ($faisceau, $cavité);
93
94?>