Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]OOP - kilka pytań o sens i poprawność "mojego" kodu
sadistic_son
post 5.01.2023, 10:17:43
Post #1





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cześć,
Przerobiłem na własne potrzeby kod z ksiązki ale nie do końca rozumiem, czy robię to logicznie. Generalnie to kod działa, ale sądzę, że mam tam zbędne kawałki. dodatkowo pytanie - czy to w ogóle tak powinno wyglądać?

klasa PageDisplay:
  1. namespace nameOne;
  2.  
  3. class PageDisplay
  4. {
  5. private $request;
  6. private $post;
  7. private $get;
  8.  
  9. public function __construct($request)
  10. {
  11. $requestString = \explode("?", $request);
  12. $this->request = empty($requestString) ? $request : $requestString[0];
  13. }
  14. public function processRequest()
  15. {
  16.  
  17. if (!$this->request) {
  18. return;
  19. }
  20.  
  21. $this->post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
  22. $this->get = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
  23.  
  24. switch ($this->request) {
  25. case "/":
  26. $title = 'Product List';
  27. $pageContent = "ProductList";
  28. include("ProductList.php");
  29. break;
  30. case SUBDOMAIN."add-product":
  31. $title = 'Product Add';
  32. $pageContent = "ProductAdd";
  33. include("ProductAdd.php");
  34. break;
  35. case "/mass_delete":
  36. //metoda massDelete
  37. break;
  38. case "/save":
  39. //metoda save new product
  40. break;
  41. default:
  42. $title = 'Product List';
  43. $pageContent = "ProductList";
  44. include("ProductList.php");
  45. break;
  46.  
  47. }
  48. $this->displayHeader($title);
  49. require('views/' . $pageContent . '.view.php');
  50. $this->displayFooter();
  51. }
  52.  
  53.  
  54. private function displayHeader($title)
  55. {
  56. require_once("views/html/header.html");
  57. }
  58.  
  59.  
  60. private function displayFooter()
  61. {
  62. require_once("views/html/footer.html");
  63.  
  64. }
  65.  
  66. }


Teraz w index.php mam wywołanie tej klasy i metod:
  1. include("PageDisplay.php");
  2. $page = new PageDisplay($_SERVER['REQUEST_URI']);
  3. $page->processRequest();


Moje pytania.

1. Uważam, że obiekt klasy PageDisplay jest zbędny. Skoro odwołuję się tylko do jej metod to przerobiłbym processRequest() , displayHeader($title) oraz displayFooter() na metody statyczne i w index.php odwoływałbym się do PageDisplay::processRequest Ma to sens?

2. Czy w $page = new PageDisplay($_SERVER['REQUEST_URI']); powinienem jako paramert podać właśnie REQUEST_URI? Właściwie tylko to działa....

3. Jak mam się odwoływać do $_POST czy $_GET w reszcie kodu ? No bo już nie tradycyjnie if(isset($POST['add'])){ //add(); } skoro mamy taki zapis $this->post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

Trochę się w tym pogubiłem i potrzebuję naprowadzenia. Dzięki z góry.

Ten post edytował sadistic_son 5.01.2023, 10:21:38


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 17.05.2024 - 04:31