kiltum (kiltum) wrote,
kiltum
kiltum

[sscms] 2

Следующий класс будет заниматься не менее важным делом - обеспечивать интерфейс к логу. Пока в файл, но на данном этапе большего и не надо.
     1  <?php
     2  require_once("config.php");
       
     3  class Log{
     4          var $file, $filename;
     5          function Log() {
     6                  $config=new Config();
     7                  $conf=$config->getconfig();
     8                  $this->filename=$conf["log"]["file"];
     9                  if(!is_writable($this->filename)) {
    10                          // file does not exist or not writeable
    11                          // make attempt to create file for write
    12                          $file=@fopen($this->filename,"a");
    13                          if(!$file) {
    14                                  echo "Error! Cannot open logfile ".$this
->filename." for writing. Stop all.";
    15                                  exit(1);
    16                                  }
    17                          fclose($file);
    18                          }
    19                  }
    20
    21          function Add($text) {
    22                  $file=@fopen($this->filename,"a");
    23                  if(!$file) {
    24                                  echo "Error! Cannot open logfile ".$this
->filename." for writing. Stop all.";
    25                                  exit(1);
    26                                  }
    27                  fwrite($file,date("r")." ".$text."\n");
    28                  fclose($file);
    29                  }
    30  }
    31  ?>


6-19 - конструктор класса. Его задача присвоить переменной $file (4) имя файла, в который можно писать. Если файла нет, он попытается его создать. Если же он есть и его нельзя по каким-то причинам открыть на запись, все должно остановиться с простыми и понятными криками на экране.
21-29 - функция, которую мы будем вызывать для добавления сообщений об ошибке. Строки 23-26 служат для обработки ситуации, когда файлу поменяли права после создания класса. Если его просто стерли, то функция попытается создать его заново (режим доступа "а", смотреть мануал по fopen)
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 20 comments