/dev/null 2>&1 &'; // stdout > /dev/null et & permettent de rendre la main à PHP // stderr > stdout pour cacher un message inutile return $command; } function rechercheClient(string $saisie): array { $resultats = []; // recherche dans la BDD return($resultats); } // NOTE 1: les objets sont passés aux fonctions par référence par défaut, toutefois ce n'est pas entièrement vrai // NOTE 2: PHP n'a pas de pointeur mais des références, une référence est un alias qui ne contient pas l'objet lui-même // NOTE 3: la variable créée lors d'un "new" est elle-même une référence contenant un identifiant (= le pointeur?) // NOTE 4: l'objet est détruit lorsque la dernière référence est supprimée function enregistrementNouveauClient(Clients $Client, ZenityForms $NouveauClient) { $entry = exec($NouveauClient->get()); if($entry !== '') { $tableau = explode('|', $entry); if(count($tableau) === 4) { $Client->newRow($tableau); return true; } else { echo "debug: mauvais tableau, il doit avoir 4 cases\n"; return false; } } else { echo "debug: pas de données saisies\n"; return false; } } function getLatexFromTemplate(string $template) { // variables à injecter $nom_client = "M. Duchmol"; // on obtient la variable $latex avec ob_get_clean() include('latex_templates/' . $template . '.php'); // on retourne le buffer // normallement le code PHP inséré avec include est nettoyé en quittant la fonction return($latex); } // compilation à partir d'un fichier .tex function latexToPdf(string $latexPath, string $fileName, string $pdfPath) { $outputDir = ''; if($pdfPath !== '') { $outputDir = '-output-directory=' . $pdfPath . ' '; } // compilation exec('pdflatex ' . $outputDir . $latexPath . $fileName); // nettoyage $basename = basename($fileName, '.tex'); unlink($pdfPath . $basename . '.aux'); unlink($pdfPath . $basename . '.log'); }