Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czy ten kod jest estetyczny
Forum PHP.pl > Forum > Przedszkole
crazy_programmer
Witam wszystkich. Naukę PHP musiałem porzucić ze względu na maturę i od tego tygodnia, a konkretnie poniedziałku zacząłem znowu. PHP uczę się z książki "PHP i MySQL Vademecum Profesjonalsity Wydanie Trzecie". Chciałbymbym abyście wyrazili swoją opinię czy ten kod jest estetyczny. Pod tym względem dostaje świra.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <title>Home Page</title>
  6. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
  7. <meta http-equiv="Content-Style-Type" content="text/css" />
  8. <link rel="stylesheet" href="style.css" type="text/css" />
  9.  
  10. <meta name="Author" content="crazy_programmer" />
  11. <meta name="Generator" content="Notepad++" />
  12. <meta name="Description" content="Strona testowa" />
  13. </head>
  14. <body>
  15.  
  16. <?php
  17. //Utwórz krótkie nazwy zmiennych
  18. $iloscopon = $_POST['opony'];
  19. $iloscoleju = $_POST['olej'];
  20. $iloscswiec = $_POST['swiece'];
  21. $sklep_wiedza = $_POST['opinia'];
  22.  
  23. //Utworzenie zmiennych potrzebnych do oblicznenia kosztów
  24. $ilosc = 0;
  25. $wartosc = 0.00;
  26. $wartosc_vat = 0.00;
  27. $wartosc_vat_znizka = 0.00;
  28. $vat = 0.22;
  29. $suma_znizki = 0.00;
  30.  
  31. //Utworzenie stałych, które przechowują ceny
  32. define("CENAOPON", 200);
  33. define("CENAOLEJU", 130);
  34. define("CENASWIEC", 100);
  35.  
  36. //Zniżki na cene opon
  37. if($iloscopon < 10)
  38. $znizka = 0;
  39. elseif($iloscopon >= 10 && $iloscopon <= 49)
  40. $znizka = 0.05;
  41. elseif($iloscopon >= 49 && $iloscopon <= 99)
  42. $znizka = 0.10;
  43. elseif($iloscopon >= 100)
  44. $znizka = 0.15;
  45.  
  46. //Obliczenie ilości przedmiotów
  47. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  48.  
  49. //Obliczenie wartości przedmiotów bez VAT
  50. $wartosc = $iloscopon * CENAOPON
  51. + $iloscoleju * CENAOLEJU
  52. + $iloscswiec * CENASWIEC;
  53.  
  54. //Obliczenie wartości przedmiotów z VAT
  55. $wartosc_vat = $wartosc * (1 + $vat);
  56.  
  57. //Obliczanie wartości przedmiotó ze zniżką
  58. $wartosc_vat_znizka = $wartosc * (1 + $vat) - ($wartosc * $znizka);
  59.  
  60. //Obliczenie sumy znizki
  61. $suma_znizki = $wartosc * $znizka;
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. if($ilosc < 1)
  69. {
  70. echo "<h1>Na poprzedniej stronie nie zostało złożone żadne zamówienie</h1>";
  71. }
  72. else
  73. {
  74. if($ilosc > 0)
  75. {
  76. echo "<h1>Części samochodowe Janka</h1><br />
  77. <h2>Wyniki zamówienie</h2>";
  78. echo "<p>Zamówienie przyjęte o ";
  79. echo date('H:i, jS F')."</p>";
  80. echo "<p>Zamówione produkty:<br />";
  81. }
  82. if($iloscopon > 0)
  83. echo $iloscopon.' opon<br />';
  84. if($iloscoleju > 0)
  85. echo $iloscoleju.' oleju<br />';
  86. if($iloscswiec > 0)
  87. echo $iloscswiec.' świec zapłonowych</p>';
  88. if($ilosc > 0)
  89. {
  90. echo '<p>Zamówionych części: '.$ilosc.'</p>';
  91. echo '<p>Cena Netto: '.number_format($wartosc, 2).' PLN</p>';
  92. echo '<p>Cena Brutto: '.number_format($wartosc_vat, 2).' PLN</p>';
  93. }
  94. if($iloscopon >= 10)
  95. {
  96. echo '<p>Cenat Brutto + zniżka: '.number_format($wartosc_vat_znizka, 2).' PLN</p>';
  97. echo '<p>Zniżka: '.number_format($suma_znizki, 2).' PLN</p>';
  98. }
  99. }
  100.  
  101. //Zapytanie klientów o źródło informacji na temat sklepu
  102. switch($sklep_wiedza && $ilosc > 0)
  103. {
  104. case 'a' :
  105. echo '<p>Stały Klient</p>';
  106. break;
  107. case 'b' :
  108. echo '<p>Reklama Telewizyjna</p>';
  109. break;
  110. case 'c' :
  111. echo '<p>Książka Telefoniczna</p>';
  112. break;
  113. case 'd' :
  114. echo '<p>Znajomy</p>';
  115. break;
  116. }
  117. ?>
  118.  
  119. </body>
  120. </html>
peter13135
1. Wcięcia trochę przy duże (chyba, że takie lubisz) moim zdaniem 2 spacje wystarczy. Ale dobrze, że są
2. Komentarze, jak najbardziej dodają przejrzystości
3. Poczytaj o MVC, php nie powinno się mieszać z html. To znacznie "uprzejrzyści" twój kod.
4. Żeby kod było łatwo analizować, powinno się go grupować. Mam na myśli tworzenie własnych funkcji. Później tworzenie klas.

Ogólnie, przy małych skryptach (do 200 linii powiedzmy) taki kod będzie wystarczająco dobry. Przy dużych projektach, patrz punkt 3 i 4. Bez tego trudno będzie się połapać.
sebap123
Jak na mój gust nawet bardzo bym powiedział. Fajny, czysty i przejrzysty kod.

Widze, że kolega mnie ubiegł. A co do funkcji i klas to się zgodzę, ale chodziło chyba tylko o ten fragment a nie o regułę. Na pewno lepiej jest pisać obiektowo ale według mnie, przy tak krótkim kodzie to się trochę mija z celem.
crazy_programmer
Dopiero zaczynam zabawę z PHP smile.gif Jedyne co mnie w tej książce zraziło to to, że w podanym przykładach wszystkie zmienne jakie są tworzone przez użytkownika są pororzucane po całym skrypcie i ciężko to analizować. Co do pisania obiektowego to jeszcze długa droga przede mną. Dzięki wielkie za odpowiedź.
peter13135
Cytat(sebap123 @ 29.06.2011, 19:36:52 ) *
Jak na mój gust nawet bardzo bym powiedział. Fajny, czysty i przejrzysty kod.

Widze, że kolega mnie ubiegł. A co do funkcji i klas to się zgodzę, ale chodziło chyba tylko o ten fragment a nie o regułę. Na pewno lepiej jest pisać obiektowo ale według mnie, przy tak krótkim kodzie to się trochę mija z celem.


Czyżbym inaczej, niż Ty ? tongue.gif

Napisałem przecież, że przy małych projektach, tak jak on pisze jest dobrze. A przy większych, należało by zastosować MVC i obiektowość
crazy_programmer
Mam do was jeszcze jedno pytanko. Tam gdzie użyłem instrukcji "elseif" //Zniżki na cene opon, możecie mi pokazać jak zrobić dokładnie to samo ale przy użyciu instrukcji "switch"?
Daimos
Dobrym nawykiem jest używanie klamerek {}, nie korzystaj ze skróconej wersji warunków typu if()coś
Zawsze stosuj
  1. if($warunek)
  2. {
  3. // cos
  4. }

Dodaje to do przejrzystości, a oprócz tego nie pogubisz się w kodzie. Będziesz musiał coś dodać do warunku, zakomentować, klamerki będą jak znalazł

PS
  1. $vat = 0.22;
W naszym "kochanym" kraju, rządzącym przez wspaniałych ludzi, vat już popraw na 0.23 wink.gif
crazy_programmer
A mógłbyś mi pokazać użycie instrukcji "switch" zamiast "elseif" pod komentarzem //Zniżka na cene opon?
zegarek84
http://www.php.net/manual/en/control-struc...witch.php#93342
http://www.php.net/manual/en/control-struc...witch.php#88643
http://www.php.net/manual/en/control-struc...witch.php#88248

normalnie przy case możesz dać warunek...

ps po co tyle kodu kiedy mogłeś przy elseif zrobić tak (i switch case z break jest jak elseif):
if($iloscopon < 10)
$znizka = 0;
elseif($iloscopon <= 49)
$znizka = 0.05;
elseif($iloscopon <= 99)
$znizka = 0.10;
else //a tu jak default - choć nie do końca ale pierwszy warunek wyłapie też liczby ujemne więc można to nazwać default...
$znizka = 0.15;

teraz sam sobie przerzuć w ramach ćwiczeń na switch...
crazy_programmer
Dzięki wielkie smile.gif
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.