/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 $input, Clients $Client): array { $input_array = explode(' ', $input); // si plusieurs mot, on les recherche tous l'un après l'autre $result = $Client->findByKeywords($input_array, 'prenom_nom'); // on obtient un tableau à deux dimensions avec les entrées trouvées return($result); } // 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(string $name, Clients $Client): bool { if($name !== '') { $tableau = explode('|', $name); if(count($tableau) === 4) { $Client->newRow($tableau); // écriture dans la BDD 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'); }