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.

Kapcsolódó cikkek