Model_txt.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * MINZ - Copyright 2011 Marien Fressinaud
  4. * Sous licence AGPL3 <http://www.gnu.org/licenses/>
  5. */
  6. /**
  7. * La classe Model_txt représente le modèle interragissant avec les fichiers de type texte
  8. */
  9. class Model_txt {
  10. /**
  11. * $file représente le fichier à ouvrir
  12. */
  13. protected $file;
  14. /**
  15. * $filename est le nom du fichier
  16. */
  17. protected $filename;
  18. /**
  19. * Ouvre un fichier dans $file
  20. * @param $nameFile nom du fichier à ouvrir
  21. * @param $mode mode d'ouverture du fichier ('a+' par défaut)
  22. * @exception FileNotExistException si le fichier n'existe pas
  23. * > ou ne peux pas être ouvert
  24. */
  25. public function __construct ($nameFile, $mode = 'a+') {
  26. $this->filename = $nameFile;
  27. $this->file = fopen ($this->filename, $mode);
  28. if (!$this->file) {
  29. throw new FileNotExistException (
  30. $this->filename,
  31. MinzException::WARNING
  32. );
  33. }
  34. }
  35. /**
  36. * Lit une ligne de $file
  37. * @return une ligne du fichier
  38. */
  39. public function readLine () {
  40. return fgets ($this->file);
  41. }
  42. /**
  43. * Écrit une ligne dans $file
  44. * @param $line la ligne à écrire
  45. */
  46. public function writeLine ($line, $newLine = true) {
  47. $char = '';
  48. if ($newLine) {
  49. $char = "\n";
  50. }
  51. fwrite ($this->file, $line . $char);
  52. }
  53. /**
  54. * Efface le fichier $file
  55. * @return true en cas de succès, false sinon
  56. */
  57. public function erase () {
  58. return ftruncate ($this->file, 0);
  59. }
  60. /**
  61. * Ferme $file
  62. */
  63. public function __destruct () {
  64. if (isset ($this->file)) {
  65. fclose ($this->file);
  66. }
  67. }
  68. }