Piszę pierwszy raz na tym forum wiec proszę o wyrozumiałość. Od nie dawna uczę się PHP a tym bardziej programowania obiektowego więc będę robił dużo błędów wiec proszę o poprawianie mnie.
Stworzyłem klasę CDB w której jest łączenie się z bazą danych. Wywoływana jest w konstruktorze. Następnie stworzyłem klasę w odzielnym pliku do obsługi błędów(Głównie wyświetlanie oraz zapis logów do pliku). W pliku engine.inc.php są zapisane hasła do łączenia się z bazą danych.
Tutaj klasa CDB.
<?php include("class.errors.php"); class CDB extends CErrors { public $_filename = null; public $_error = null; protected $_mysql_connect = null; function __construct($filename) { $error = new CErrors(); $this->_filename = $filename; if(include($this->_filename)) { if($this->_mysql_connect) { if($mysql_select_db){ $this->_dbname = $mysql_data[3]; $this->_error = $error->getErrors('DB', 0,false, true); } else { $this->_error = $error->getErrors('DB', 2,true, true); } } else { $this->_error = $error->getErrors('DB',1,true, true); } } else { $this->_error = $error->getErrors('FILE', 1, true, true); } } } function __destruct() { } } ?>
Wywoływując tą klasę musimy podać ścieżkę gdzie znajduje się plik konfiguracyjny engine.inc.php.
Klasa CErrors:
<?php class CErrors { protected $_logFileName = '../logs/logs.php'; protected function getErrors($name,$id,$show,$setLogToFile) { $name = (string)$name; $id = (int)$id; 0 => 'Połączono z serwerem MySQL', 1 => 'Nie można połączyć się z serwerem MySQL', 2 => 'Nie można wybrać preferowanej bazy danych w MySQL' ), 1 => 'Nie można wybrać pliku zawietającego hasła dostepu do bazy danych w MySQL' ) ); if($setLogToFile) { CErrors::setLogToFile($errors[$name][$id]); } if($show) { return $errors[$name][$id]; } } protected function setLogToFile($error) { $saveError = $date.' Error: "'.$error.'"'."<br /> \n"; } else { chmod($this->_logFileName,0600); $saveError = $date.' Error: "'.$error.'"'." <br /> \n"; } } } ?>
Plik engine.inc.php
<?php ?>
Plik index.php
<?php $db = new CDB("../goo/engine.inc.php"); ?>
Pytanie takie:
- Czy opłaca się tak kombinować, czy się zakombinowałem, czy w ogóle jest to dobre?
- Czy, jeśli chodzi o kod, jest w miarę przejrzysty?
- Czy dobrze są stworzone klasy. Do tych klas bym dopisał następne metody ale chcę wiedzieć czy w ogóle dobrze myślę.
Dziękuję za jakiekolwiek opinie i rady.
Pozdrawiam.