Projekt

Obecné

Profil

Požadavek #928

otevřený

Požadavek #921: Modularita

Adresářová struktura pro podporou modulů s jmennými prostory PHP tříd

Přidáno uživatelem Ondřej Fibich před více než 9 roky(ů). Aktualizováno před více než 9 roky(ů).

Stav:
Nový
Priorita:
Normální
Přiřazeno:
Kategorie:
Jádro systému
Cílová verze:
Začátek:
2014-07-28
Uzavřít do:
% Hotovo:

0%

Odhadovaná doba:
15:00hod

Popis

Zavést systém adresářů s moduly /modules/, každá podsložka reprezentující modul bude obsahovat:

  • application
    • controllers
    • helpers
    • i18n
    • libraries
    • models
    • views
  • db_upgrades
  • doc
  • media
  • module.php (soubor s definicemi verze, názvu apod.)

V repozitář modulu bude vypada následovně (tj. nebude v hlavním repozitáři):

  • src (výše popsaný obsah)
  • test
  • deb
  • README
  • LICENCE

PHP třídy bude mít každý modul ve vlastním PHP jmenném prostoru \freenetis\module\<jméno modulu>\<x>\<y>\<z>.
x, y, z bude respektovat adresářovou strukturu (stejně jako balíček v Javě), pokud budu mít teda controller Abc_Controller modulu abeceda pak jeho jmenný prostor bude \freenetis\module\abeceda\controllers. Pokud by byl ve složce controllers/a/ pak by se tato podložka projevila ve jmenném prostoru.

Pro podporu jmenných prostorů musí být vyhozen starý Kohaňácký nepořádek (Core a My třídy) a musí být přespán autoloader tříd. Navíc je taky nutné PHP 5.3 >, ale to by snad neměl být problém.

Jmenné prostory by se nakonec měli použít i mimo moduly. Celý základní FreenetIS by byl namespace \core s podnamespacem \system atd.

Aktualizováno uživatelem Ondřej Fibich před více než 9 roky(ů)

Také k dispozici: Atom PDF