Komponens osztálytámogatás
Zaitsev Artemij:
Most úgy gondolom, hogy a nagy alkatrészek gonoszak, még az osztályoknál is. Az osztályokat külön fájlokba helyeztem és csatlakoztattam az autoloaderot.
De előfordul, hogy szükség van egy pár funkcióra az összetevőben. És akkor egy ilyen osztály nagyon hasznos lesz. És statikus változók az osztályban.
Ezt szem előtt tartva tervezték.
A súlyos üzleti logika jobb, ha egy "modul" -on olyan lényegben marad.
A 12.0.0 verzió támogatja az alkatrészosztályokat. A fájl /component_name/class.php fájlként kerül végrehajtásra. A Class.php egy fenntartott fájlnév, és ez a fájl automatikusan csatlakozik, amikor hívják:
Ez azt a végső initComponent módszert nevezi meg, amelyben a class.php csatolva van (ha van ilyen) és a CBitrixComponent örököse is.
nem lesz sikeres. Ennek eredményeképpen a CDemoTestDecorator2 kerül felhasználásra.
Ne feledje, hogy az összetevő alaposztályának megváltoztatásakor figyelembe kell venni minden gyermeke (más összetevő) viselkedését.
Használati példák
Tekintsük a négyzetes paraméter legegyszerűbb összetevőjét.
Valódi összetevőknél a szorzási művelet helyett három tucat sor lehet, és ilyen műveletek 5-6. Ennek eredményeképpen a file component.php egy nehezen érthető "dolog-in-self" -re változik.
Válassza ki az összetevő logikáját az osztályban.
Most a component.php fájl kódja kezelhetővé válik.
Komponens öröklés
Komponens alkatrész nélkül.php nélkül
Hozzon létre egy összetevőt a component.php fájl nélkül
Ehhez elegendő felülbírálni a executeComponent metódust. Például:
Most törölheti a component.php fájlokat mindkét összetevőből.