![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
napisałem sobie aplikację bota do komunikatorów. Ma wiele modułów, każdy jest zapisany w osobnym pliku. Na chwilę obecną są to tablice - każdy plik zwraca tablicę, która jest przechwytywana przez require. Chcę jednak bardziej elegancko pogrupować wspólne funkcjonalności w klasy, tak by każdy moduł był obiektem. Pytanie teraz jak to najładniej można osiągnąć?
Jak to się najczęściej robi w poważnych projektach? ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Moduły raczej będą składać się z wielu obiektów, wiec Twój mechanizm powinien operować na nieco szerszym kontekście.
2. http://symfony.com/doc/current/quick_tour/...e-bundle-system - zapewne takie cos Cie interesuje. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. Chwilę po napisaniu posta doszło do mnie, że wolę mieć każdy moduł jako osobną klasę dziedziczącą po typie modułu, żeby użyć interfejsów.
Kiedyś widziałem takie rozwiązanie w plikach z modułem jako klasą:
Czyli każdy plik modułu zwracał obiekt. Jest jakiś inny sposób na dynamiczne utworzenie instancji na podstawie pliku, w którym jest tylko klasa? Tak, żeby nie używać nazwy klasy dwukrotnie w tym samym pliku. Ten post edytował SmokAnalog 4.07.2014, 09:28:25 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Autoload
Tworzysz obiekt, a plik automatycznie jest dołączany. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No fajnie, tylko ciekawe skąd bot ma wiedzieć o istnieniu tej klasy
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Leszym rozwiązaniem jest rejestrowanie/instalowanie modułu i ładowanie tylko zarejestrowanych, a nie dynamiczne ładowanie wszystkiego co jest w katalogu. Jak pojawi się tam niepożądany plik to może wysypać całą aplikację.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
To prawda, ale ja lubię osobiście to podeście. Nie wiem jak się fachowo nazywa, ja je nazywam przypinaniem.
A wracając do mojego pytania, da się automatycznie utworzyć obiekt z definicji klasy? Przyszło mi na myśl jeszcze, że mogę bazować na nazwie pliku, bo i tak mam w zwyczaju nazywać plik tak jak nazywa się klasa. Jeśli nic lepszego nie wymyślimy, to tak zrobię. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:25 |