Skip to content

Mike-maximaster/tools.finder

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

maximaster/tools.finder

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Π‘Π” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сущностСй. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²ΡΠ·Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΎΡ‚ нСобходимости использования Π² Π½Π΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠ°ΠΊ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° состоит глобально ΠΈΠ· 3Ρ… частСй:

  • Абстрактный класс для всСх Finder'ΠΎΠ²
  • РСализация Finder'ΠΎΠ² для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сущностСй:
    • Π˜Π½Ρ„ΠΎΠ±Π»ΠΎΠΊ
    • Бвойство ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°
    • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Ρ‚ΠΈΠΏΠ° "Бписок" ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°
    • Π Π°Π·Π΄Π΅Π» ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°
    • Higload-Π±Π»ΠΎΠΊ
    • Π“Ρ€ΡƒΠΏΠΏΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
    • Π’ΠΈΠΏ Ρ†Π΅Π½Ρ‹
    • Бвойство Π·Π°ΠΊΠ°Π·Π°
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ CRUD ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с сущностями для обновлСния кСша

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ для использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get() ΠΈ getId(). Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Finder'Π° для сущности эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ содСрТат Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (см. phpDoc для Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ). НапримСр, для ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строчный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ самого ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°.

\Maximaster\Tools\Finder\Iblock::get('catalog', 'products');

, Π° для Ρ€Π°Π·Π΄Π΅Π»Π° ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ get() Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π·Π΄Π΅Π»Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΈΠ· ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ:

\Maximaster\Tools\Finder\IblockSection::get(
    \Maximaster\Tools\Finder\Iblock::get('catalog', 'products'),
    'section_code'
);

ΠœΠ΅Ρ‚ΠΎΠ΄ get() ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ массив с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ сущности. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ всСх ΠΏΠΎΠ»Π΅ΠΉ сущности. ΠœΠ΅Ρ‚ΠΎΠ΄ getId() ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числовой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сущности

Π‘ΠΎΠ»Π΅Π΅ эффСктивная Ρ€Π°Π±ΠΎΡ‚Π° с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ

Для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹, ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ½Π΄Π΅Ρ€ΠΎΠ². НапримСр для ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой класс \Vendor\Finder\Iblock, ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ частной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Finder'Π° ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° \Maximaster\Tools\Finder\Iblock, ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для быстрого доступа ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ°ΠΌ. НапримСр, для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°:

namespace Vendor\Finder;

class Iblock extends \Maximaster\Tools\Finder\Iblock 
{
    public static function catalog()
    {
        return static::get('catalog', 'products')
    }
}

РСализация собствСнных Finder'ΠΎΠ²

Для создания Ρ„Π°ΠΉΠ½Π΄Π΅Ρ€Π° для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сущности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ AbstractFinder ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  • абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ getAdditionalCachePath(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ строку. Π­Ρ‚Π° строка Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для построСния адрСса кСша Finder'Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сущности
  • абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ requireModules(). Π”ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ массив Ρ‚Π΅Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Finder'Π°
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ query(). ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ 2 Π²Π΅Ρ‰ΠΈ
    1. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инстанс \Bitrix\Main\Entity\Query ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ. НуТно Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ составлСнии запроса. НС ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ запрос Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сущности, Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΎΡ…Π²Π°Ρ‚. НапримСр, внутрСнняя рСализация Finder'Π° для ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠ° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊ, Π° список ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
    2. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сгСнСрированном запросС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setQueryMetadata(), Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
    • НаимСнованиС поля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ массива со списком Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… этим запросом сущностСй
    • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ поля, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈΠ· списка
    • Массив Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ кСш Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса Для подробностСй ΠΏΡ€ΠΎΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Finder'ΠΎΠ² ΠΈΠ· поставки Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π° Π΄Π΅Π»Π΅ всС сильно ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ каТСтся.
  • Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get() ΠΈ getId(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ‚ Π² IDE Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚.ΠΊ. ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ любоС количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
  • Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getItems(). Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ запрос, сгСнСрированный Π² query(), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ поля ΠΈΠ· ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ запроса. Π’ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° структуру сохраняСмых Π² кСш Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² AbstrractFinder

ΠšΡ€ΠΎΠΌΠ΅ класса самого Finder'Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π‘Π” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ очистки Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. НапримСр, Ссли ΠΈΠ½Ρ„ΠΎΠ±Π»ΠΎΠΊ мСняСт свой ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ кСш, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сущности ΠΏΠΎ Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² OnAdd, OnUpdate ΠΈ OnDelete, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ кСш Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ сущности. Для ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ кСша Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ AbstractFinder::invalidateCache(). Π—Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ классам ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ src/EventHandlers Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ВсС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ maximaster/tools.events.

WTF. ΠŸΠΎΡ‡Π΅ΠΌΡƒ статика?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ-Ρ‡Ρ‚ΠΎ ... Битрикс - статичСский синглтоновый Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ монстр. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ хотя Π±Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ServiceLocator, Ρ‚ΠΎΠ³Π΄Π° ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%