/dev/null 2>&1 &'; // stdout > /dev/null et & permettent de rendre la main à PHP // stderr > stdout pour cacher un message inutile return $command; } // NOTE 1: en PHP 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 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); } function makeFolder(string $path) { if(!file_exists($path)) { mkdir($path); chmod($path, 0755); } } function makeLatexAndPdfDocument($file_name, $template, Clients $Client, Prestations $Presta = null, $Details = null) // $Details peut être de type DevisFactures ou Locations { //~ $data = ; // tableau associatif avec des données des différents objets $latex = getLatexFromTemplate($template, $data); file_put_contents($latex_path . $file_name, $latex); // injection des variables & écriture du fichier latexToPdf($latex_path, $file_name, $pdf_path); } function getLatexFromTemplate(string $template, $data) { // 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'); }