Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie klas
Forum PHP.pl > Forum > Przedszkole
Raven1122
Witam napisalem takie cos:


  1. <?php
  2.  
  3. class mysql_db_connect {
  4.  
  5. public $host;
  6. public $user;
  7. public $password;
  8. public $database;
  9.  
  10. public function connect($host, $user, $password, $database){
  11. mysql_connect($host, $user, $password) or die(mysql_error());
  12. mysql_select_db($database);
  13.  
  14. }
  15. }
  16.  
  17. ?>
  18.  


  1. <?php
  2.  
  3. require_once("mysql.Class.php");
  4.  
  5. $db = new mysql_db_connect();
  6. $db->connect('localhost', 'user', 'password', 'database');
  7.  
  8. ?>


Czy jest to dobrze napisane? Prosze tez o wyrozumialosc, zaczynam dopiero co kolwiek robic obiektowo.
Z gorzy dziekuje z odpowiedz smile.gif
viking
Napisane jest dobrze tylko nie ma większego uzasadnienia. Po pierwsze i najważniejsze jest PDO, ewentualnie mysqli.
Raven1122
a moge o jakas podpowiedz poprosic? przyklad na ktorym bede mogl se wzorowac?
redeemer
@viking: Napisane jest to źle.

@Raven1122: Atrybuty w klasie w Twoim wypadku są niepotrzebne - bo nigdzie ich nie używasz. Zresztą i tak powinny mieć inny zakres widoczności. Ja osobiście zostawiłbym te atrybuty (ze zmienioną widocznością) i dane potrzebne do połączenia przekazał w konstruktorze, natomiast w funkcji connect() tylko bym się do nich odwołał.

A vikingowi chodziło o to, że jak masz zamiar pisać własną klasę do obsługi bazy danych, to istnieją już gotowe i sprawdzone rozwiązania.
Raven1122
a tak lopatologicznie jakis przyklad bym poprosil
viking
http://php.net/manual/en/book.pdo.php

Czy źle napisane to kwestia dyskusyjna. Jasne że według sztuki poprawne będzie coś w stylu:
  1. class mysqlAdapter {
  2.  
  3. protected $_host, $_user, $_password, $_database;
  4.  
  5. public function construct($host, $user, $password, $database){
  6. mysql_connect($host, $user, $password) or die(mysql_error());
  7. mysql_select_db($database);
  8. //zwrócić jeszcze connection
  9. }
  10.  
  11. public function setHost($host) {
  12. $this->_host = $host;
  13. }
  14.  
  15. public function getHost() {
  16. return $this->_host;
  17. }
  18.  
  19. }


Ale nie znaczy to że sposób wyżej jest od razu zły.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.