Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sens użycia dynamicznych właściwości klasy
sazian
post 19.04.2024, 16:08:54
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


Przeglądają bibliotekę od sms api trafiłem na taką klasę
https://github.com/smsapi/smsapi-php-client...SendSmssBag.php
Uproszczony fragment kodu:
  1. /**
  2.  * @api
  3.  * @property string $from
  4.  * @property string $message
  5. .....
  6.  * @property string $timeRestriction
  7.  */
  8. #[\AllowDynamicProperties]
  9. class SendSmssBag
  10. {
  11. /** @var string */
  12. public $encoding = 'utf-8';
  13.  
  14. public static function withMessage(array $receivers, string $message): self
  15. {
  16. $bag = new self();
  17. $bag->to = $receivers;
  18. $bag->message = $message;
  19.  
  20. return $bag;
  21. }
  22.  
  23. }
  24.  

I tak się zastanawiam jaki jest tu sens użycia AllowDynamicProperties i "definiowanie" właściwości w @property?
Przecież skoro lista tych właściwości jest znana to było można je zdefiniować tak jak to zrobili z $encoding.

Czy w tym jest jakiś geniusz którego ja nie dostrzegam? Jakiś wzorzec którego nie znam / nie rozumiem?

Macie pomysł "po co tak robić"?
Go to the top of the page
+Quote Post
nospor
post 19.04.2024, 16:30:03
Post #2





Grupa: Moderatorzy
Postów: 36 459
Pomógł: 6297
Dołączył: 27.12.2004




Dynamiczne wlasciwosci sa deprecated od php8.2
Wiec to pewnie jakis stary kod, ktory przeniesli na php8 wiec musieli dodac tag AllowDynamicProperties by sie nie wykrzaczal
https://www.php.net/manual/en/class.allowdy...cproperties.php

oczywiscie mogli to poprawic porzadnie, no ale po co wink.gif

edit:
O prosze, nawet jeden commit sprzed dwoch lat mowi dokladnie to co ja wlasnie powiedzialem
"Fixes dynamic property deprecations"
biggrin.gif

Tu masz wszystkie zmiany z tego nieszczesnego commita
https://github.com/smsapi/smsapi-php-client...a4d152a811d4e11
poszli po najmniejszej linii oprou i poprostu pododawali wszedzie #[\AllowDynamicProperties]


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sazian
post 19.04.2024, 17:51:48
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


A już myślałem że coś genialnego, a nie przykrywanie g... papierkiem...

Tylko to jeszcze bardziej zastanawiające po co, poprawienie tego zajęło by jakieś 10 sekund.

Cóż czyli jednak lepiej nie szukać przejawów geniuszu na siłę ;p
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: 2.05.2024 - 22:45