summaryrefslogtreecommitdiff
path: root/src/model/File.php
blob: 31691dcb6830d13480be0d743579efac4e9f98fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
// src/model/File.php
//
// manipulations des fichiers

class File
{
    private $file_name = '';
    private $path = '';
    private $data = ''; // écriture de binaire (blob) non prévue
    private $file_rights = 0644;
    private $folder_rights = 0755; // droits en octal
    private $write_mod = 0; // 0 = écraser, 1 = ajouter à la suite, 2 = nouveau fichier 
    
    
    public function __construct(string $file_name, string $path)
    {
        $this->file_name = $file_name;
        $this->path = $path;
    }
    
    // getters
    public function getData(): string
    {
        return $this->data;
    }
    
    // setters
    public function setFileName($file_name)
    {
        $this->file_name = $file_name;
    }
    
    public function setPath($path)
    {
        $this->path = $path;
    }
    
    public function setData($data)
    {
        $this->data = $data;
    }
    
    public function setFileRights(int $octal)
    {
        $this->file_rights($octal);
    }
    public function setFolderRights(int $octal)
    {
        $this->folder_rights($octal);
    }
    
    public function setWriteMod(int $mod)
    {
        $this->write_mod = $mod;
    }
    
    
    // fichiers
    public function readFile(): string
    {}
    
    public function writeFile()
    {
        file_put_contents($this->path. $this->file_name, $data);
        chmod($this->path, $this->file_rights);
    }
    
    
    // dossiers
    public function makeFolder()
    {
        if(!file_exists($this->path))
        {
            mkdir($this->path);
            chmod($this->path, $this->folder_rights);
        }
    }
}

// compilation à partir d'un fichier .tex
class latexToPdf extends File
{
    public function __construct(string $latex_path, string $file_name, string $pdf_path)
    {}
    
    $output_dir = '';
    if($pdf_path !== '')
    {
        $output_dir = '-output-directory=' . $pdf_path . ' ';
    }
    
    // compilation
    //echo 'pdflatex ' . $output_dir . $latex_path . $file_name . "\n";
    exec('pdflatex ' . $output_dir . $latex_path . $file_name);
    
    // nettoyage
    $basename = basename($file_name, '.tex');
    unlink($pdf_path . $basename . '.aux');
    unlink($pdf_path . $basename . '.log');
}