Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Pytanie o procentową jakość skryptu w OOP
Danone
post
Post #1





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

Ostrzeżenie: (0%)
-----


Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jestem na jakimś etapie nauki OOP, strukturalnie już jest ok:)

Mam do Was pytanie, w jakim stopniu ten skrypt poniżej jest Obiektowy? Może być ocena procentowa, jeśli macie jakieś uwagi to też bardzo proszę pisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2. class MyClass{
  3. public $host="localhost";
  4. public $login="root";
  5. public $pass="nokia";
  6. public $connection;
  7. public $baza;
  8. public $zapytanie;
  9.  
  10. //Konstruktor do połączenia z bazą...
  11. function __construct(){
  12. $this->connection= mysql_connect("$this->host", "$this->login", "$this->pass");
  13. if(is_resource($this->connection)){
  14. echo "Polaczenie do " .$this->host. " udane";
  15. }
  16. $this->baza= mysql_select_db("dzienniczek");
  17.  
  18. if($this->baza){
  19. echo "<br />ok";
  20. }
  21.  
  22. }
  23. //wyswietlenie wszystkich rekordów w tabeli
  24. public function show(){
  25. $this->zapytanie="SELECT * FROM user";
  26. $this->wybor=mysql_query($this->zapytanie);
  27. echo "<table border=1>
  28. <tr>
  29. <td><a href='klasa_czwarta.php?sort=id'>ID</a></td>
  30. <td><a href='klasa_czwarta.php?sort=imie'>Imię</a></td>
  31. <td><a href='klasa_czwarta.php?sort=nazwisko'>Nazwisko</a></td>
  32. </tr>";
  33. while($row=mysql_fetch_array($this->wybor)){
  34. <tr>
  35. <td>".$row['id']."</td>
  36. <td>".$row['imie']."</td>
  37. <td>".$row['nazwisko']."</td>
  38. </tr>
  39. ";
  40. }
  41. echo "</table>";
  42. }
  43. //funkcja odpowiedzialna za sortowanie danych
  44. public function sort(){
  45. if(isset($_GET['sort'])){
  46. $sortowanie="SELECT * FROM user ORDER BY ".$_GET['sort']."";
  47. $sort=mysql_query($sortowanie);
  48. echo "<table border=1>
  49. <tr>
  50. <td bgcolor=red>ID</td>
  51. <td bgcolor=red>Imie</td>
  52. <td bgcolor=red>Nazwisko</td>
  53. </tr>";
  54. while($row2=mysql_fetch_array($sort)){
  55. <tr>
  56. <td>".$row2['id']."</td>
  57. <td>".$row2['imie']."</td>
  58. <td>".$row2['nazwisko']."</td>
  59. </tr>";
  60. }
  61. }
  62. }
  63. }
  64.  
  65.  
  66. $test=new MyClass;
  67. $test->show();
  68. $test->sort();
  69. ?>
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


0%

1. nie ocenia sie tego procentowo, co nazwyzej: jest dobra, ujdzie, i 'czemu-nie-dales-tego-szitu-na-przedszkolu' (edit: ja myslalem ze to jest w forum OOP (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
2. nazwa 'MyClass' nic nie mowi o przeznaczeniu klasy
3. jest niezykozystywalna (na stale zapisane parametry polaczenia z baza)
4. czemu funkcja 'sort' wyswietla dane? a nie sortuje
5. powielasz kod wyswietlania danych
6. polaczenie z baza powinno byc w osobnej klasie z ktorej bys korzystal

itd.
Go to the top of the page
+Quote Post
Danone
post
Post #3





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

Ostrzeżenie: (0%)
-----


Jeśli chodzi o ten podpuntk?

3. jest niewykorzystywalna (na stale zapisane parametry polaczenia z baza)

Poczytałem trochę i czy teraz połączenie z bazą jest odpowiednie? Parametry można zmieniać.


  1. <?php
  2. Class MYSQL{
  3.  
  4. public $polaczenie;
  5.  
  6. function __construct($dbHost, $dbUser, $dbPass){
  7. $this->DBHost =$dbHost;
  8. $this->DBUser =$dbUser;
  9. $this->DBPass =$dbPass;
  10.  
  11. }
  12.  
  13. function connect(){
  14. $this->polaczenie = mysql_connect($this->DBHost, $this->DBUser, $this->DBPass);
  15.  
  16. if($this->polaczenie){
  17. echo "Jestes polaczony jako: " .$this->DBUser. " :)";
  18. }
  19. }
  20. }
  21.  
  22. $DB= new MYSQL(localhost, root, nokia);
  23. $DB->connect();
  24. ?>


Ten post edytował Danone 29.05.2007, 22:34:27
Go to the top of the page
+Quote Post
Amorph
post
Post #4





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

Ostrzeżenie: (0%)
-----


Główną zaletą OOP jest skalowalność, i podział w którym każda klasa odpowiada za obiekt lub grupę obiektów. W twoim wypadku napisałeś klasę która nic nie ma związanego z OOP oprócz tego że jest klasą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Powinieneś napisać jedną klasę odpowiadającą za obsługę bazy danych, drugą za wyświetlanie danych jakie zostaną do niej przypisane....
Zobacz ile funkcji musiałbyś napisać, jeśli chciałbyś wyświetlać dane np. w takich kolejnościach:
1. id, imie, nazwisko
2. id, nazwisko, imie
3. imie, nazwisko, id
4. imie, id, nazwisko
itd.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:05