Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Metoda z parametrami POST czy bez
sadistic_son
post 10.01.2023, 13:19:15
Post #1





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

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


Cześć,
Jak lepiej napisać metodę?
Opcja 1:
  1. public function insertNewProduct(string $sku, string $name, string $price, string $productType)
  2. {
  3. $db->query("INSERT INTO `product` (`id`, `name`) VALUES (null, '$name')";);
  4. $db->bind(':name', $name);
  5. $db->execute();
  6. //ciąg dalszy tutaj jest zbędny
  7. }
  8.  
  9. //później wywołanie metody:
  10. $productObject->insertNewProduct($_POST['sku'], $_POST['name'], $_POST['price'], strtolower($_POST['productType']));


Opcja 2:
  1. public function insertNewProduct()
  2. {
  3. $name = (string) $_POST['name'];
  4. $selectedType = (string) $_POST['productType'];
  5. $sku = (string) $_POST['sku'];
  6. $price = (string) $_POST[price];
  7. $db->query("INSERT INTO `product` (`id`, `name`) VALUES (null, '$name')";);
  8. $db->bind(':name', $name);
  9. $db->execute();
  10. //ciąg dalszy tutaj jest zbędny
  11. }
  12.  
  13. //później wywołanie metody:
  14. $productObject->insertNewProduct();

Obstawiam opcję 1 za lepszą. Mam rację?


Halo, ktoś, odpowie?


--------------------
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
viking
post 10.01.2023, 13:21:25
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  1. public function insertNewProduct(Product $product)
  2. i Product zawiera właściwości produktu


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 10.01.2023, 13:45:39
Post #3





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

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


Czy chodzi Ci o to żeby produkt był oddzielna klasą (w tym wypadku abstrakcyjną?) i zawierał pola produktu? I potem odwołuję się do klasy Product? Nie wiem czy dobrze rozumuję.

Ten post edytował sadistic_son 10.01.2023, 13:45:59


--------------------
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
viking
post 10.01.2023, 13:47:59
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


https://draganatanasov.com/2022/11/12/data-...objects-in-php/


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 10.01.2023, 14:01:00
Post #5





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

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


No to mnie ukochałeś. Dwa razy to przeczytałem (język ang. to nie problem) i nie łapię sad.gif


--------------------
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
viking
post 10.01.2023, 14:32:28
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Co ci mogę powiedzieć. Czytaj. To forum nie powinno być źródłem jedynej wiedzy. W 5s tego nie poznasz ale rzucam tematy które mogą się przydać.
I nie, dlaczego Product miałby być klasą abstrakcyjną?


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 10.01.2023, 14:38:23
Post #7





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

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


Ok, dzięki za zapodanie tematu, ale to jeszcze nie mój poziom.

Dlaczego klasa Product powinna być abstrakcyjna? No cóż... mam to narzucone:
"Z OOP musisz zademonstrować konstrukcję kodu w sensownych klasach, które rozszerzają (dziedziczą) jedna drugą, więc chcielibyśmy zobaczyć klasę abstrakcyjną dla głównej logiki produktu. Zainteresuj się polimorfizmem"



--------------------
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
com
post 18.01.2023, 17:55:17
Post #8





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


Te zadanie jest bez sensu, tak sie nie powinno towrzyc kodu jak narzucili wink.gif
Go to the top of the page
+Quote Post
vokiel
post 19.01.2023, 14:15:02
Post #9





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Skoro chcą tak utrudniać to pogrupuj produkty w jakieś mniejsze rodzaje i zrób abstrakcyjna klasę główną, np:

  1. abstract class Product
  2. {
  3. protected string $sku;
  4.  
  5. public function getSku(): string
  6. {
  7. return $this->sku;
  8. }
  9.  
  10. public function setSku(string $sku): self
  11. {
  12. $this->sku = $sku;
  13.  
  14. return $this;
  15. }
  16. }


  1. class namedProduct extends Product
  2. {
  3. protected string $name;
  4.  
  5. public function getName(): string
  6. {
  7. return $this->name;
  8. }
  9.  
  10. public function setName(string $name): self
  11. {
  12. $this->name = $name;
  13.  
  14. return $this;
  15. }
  16. }


Potem jakieś repozytorium dla produktów
  1. class ProductRepository
  2. {
  3. public function add(Product $product)
  4. {
  5. // Jakiś zapis do bazy
  6. }
  7. }
  8.  


--------------------
Go to the top of the page
+Quote Post

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: 16.04.2024 - 20:26