From 0d2fd7a0a53c527d3f6f112a149960a52c1082e1 Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 10 Aug 2021 02:11:20 +0200 Subject: disco --- model/Classes.php | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 model/Classes.php (limited to 'model/Classes.php') diff --git a/model/Classes.php b/model/Classes.php new file mode 100644 index 0000000..d940e53 --- /dev/null +++ b/model/Classes.php @@ -0,0 +1,176 @@ +page = $page; + } + + //public function setAscending($croissant) + //{ + // $this->Ascending = $croissant; + //} + + public function findFileName($numArticle) + { + $this->fileName = $this->files[$numArticle - 1]; + } + + public function setFileName($nomFichier) + { + $this->fileName = $nomFichier; + } + + // GET + public function getPage() + { + return($this->page); + } + + public function getFileName() + { + return($this->fileName); + } + + public function nbArticles() + { + return($this->nbArticles); + } + + + // tableau des noms des articles + public function getFiles() + { + if($this->page == '') + { + die("debug: la méthode setPage() doit être appelée avant toute autre."); + } + + $this->files = glob('data/' . $this->page . '/html/*.html'); + + //$this->nbArticles = count($this->files); + } + + // ordre du tableau des noms de fichiers + public function reverseFilesArray() + { + $this->files = array_reverse($this->files); + } + + + // fonctions CRUD (create - read - update - delete) + // ce sont les 4 opérations de base qu'un programme doit permettre pour être complet + + // create + public function create($content) + { + if($this->page == '') + { + die("debug: la méthode setPage() doit être appelée avant toute autre."); + } + + // nommer les fichiers avec le timestamp + // - trie par ordre chronologique + // - rendre quasi impossible d'avoir deux fois le même nom (à la condition de gérer la "concurrence") + $nom_fichier = 'data/' . $this->page . '/html/' . time() . '.html'; + + $fichier = fopen($nom_fichier, 'w'); // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu + fputs($fichier, $content); + fclose($fichier); + chmod($nom_fichier, 0666); + } + + // read + public function getNumber() + { + return $this->nbArticles; + } + + public function getOne() + { + return(file_get_contents($this->fileName)); + } + + public function getAll() + { + //$this->getFiles(); + + $i = 0; + $articles = array(); + foreach ($this->files as $file) + { + $articles[$i] = file_get_contents($file); + $i++; + } + + //print_r($articles); + return $articles; + } + + public function getDate($fileNumber) + { + // le 2è paramètre exclut le suffixe .html + $timestamp = basename($this->files[$fileNumber], '.html'); + return getdate($timestamp); + } + + // update + public function update($content) + { + $file = fopen($this->fileName, 'w'); + // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu + fputs($file, $content); + fclose($file); + //chown($this->fileName, 'http'); + chmod($this->fileName, 0666); + } + + // delete + public function delete() + { + unlink($this->fileName); + } +} + +// note: les pros font de l'hydration +// le code du modèle est orienté objet et "refactorisé" d'une manière précise: +// on utilise un objet pour une chose (des articles, commentaires, etc), +// un objet article contiendrait ainsi tout le nécessaire pour lire, écrire ou modifier un article +// il y a pour ça un programme appelé "doctrine" (inclu dans symphony) qui est capable de lire une base de données et d'en écrire les objets PHP + +class AlbumsManager extends ArticlesManager +{ + // variables + + // SET + + // GET + + // fonctions CRUD + + // create + public function create() + {} + + // read + public function read() + {} + + // update + public function update() + {} + + // delete + public function delete() + {} +} \ No newline at end of file -- cgit v1.2.3