Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Uniwersalne tworzenie obiektów klas o nazwach ze string'a
eerie
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 3.08.2017

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


Sorry, jeśli odpowiedź na moje pytanie jest banalna. Jednak szukam w Google i nie mogę nic znaleźć.

Chcę przekazywać parametrem metody stringi (np. 'NewClass'), na podstawie których będę tworzyć obiekty (np. $object = new NewClassModel()). Potem chcę te obiekty zwracać (return $object). Chodzi o to, aby to było uniwersalne. Jak to prosto zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eerie
post
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 3.08.2017

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


Cytat
Trochę mało uniwersalne jak dla mnie. Już samo ustawianie $class = 'App\\Repository\\' . $name . 'Repository'; eliminuje ładne użycie ::class.

Z zapisem ::class spotkałem się przy programowaniu w Symfony, ale zbytnio jeszcze nie wiem, jak tego używać samemu. Muszę doczytać...

Cytat
Nie bardzo rozumiem czemu controller tworzy połączenie z bd dla modelu i dlaczego jest ustawiany model a nie repo.

Z tym tworzeniem obiektu db z poziomu kontrolera spotkałem się we framework'u Symfony. Zrobiłem tak, aby było niemal identyczne wywołanie metod. W Symfony z poziomu kontrolera pobierane jest Doctrine i dalej Menadżer Encji. Z menadżera pobierane są Repozytoria i dalej wywoływane ich metody. Co do nazwy klasy Model. Lepiej będzie, aby klasa zarządzająca repozytoriami nazywała się po prostu Repository?

Cytat
Ale nawet jeśli co gdyby chcieć użyć 2 modele? Co jeśli chciałbyś miec 2 instancje modelu (trochę ciężko ustalić co wg ciebie znaczy model - )?

Model odpowiada u mnie za jednokrotne połączenie z bazą danych i zarządzanie repozytoriami. Mogę mieć jeden obiekt modelu (menadżera), który tworzy i zwraca dowolną ilość repozytoriów. Tak jest w Symfony...

Cytat
Albo co jeśli model to nie zwykła baza tylko np elasticsearch?

Czyli jak? Starczy, że zmienię nazwę klasy Model (mojego menadżera repozytoriów) na np. Repository i będzie już dobrze (brak konflików)? Bo zbytnio chyba nie do końca zrozumiałem, w czym tkwi problem. Chodzi o samą nazwę klasy Model?
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 01:33