Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Moduły aplikacji jako obiekty
SmokAnalog
post
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ąć?

  1. Mogę wszystkie parametry zawrzeć w konstruktorze i zwrócić obiekt, jednak nie podoba mi się takie podejście.
  2. Mogę też użyć zmiennej, podziałać na niej i zwrócić obiekt na zasadzie:
    1. $module = new XxxModule;
    2. $module->addYyy('Zzz');
    3. return $module;
  3. Jeszcze inną metodą jest rejestracja modułów specjalną metodą, na zasadzie:
    1. $module = new XxxModule;
    2. $module->addYyy('Zzz');
    3. $module->register();

Jak to się najczęściej robi w poważnych projektach? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post
Post #2





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ą:
  1. class ModuleLion extends ModuleAnimal {...}
  2.  
  3. return new ModuleLion;


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
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: 15.10.2025 - 17:24