bitrix-best-practice-sql
Use for Bitrix SQL and ORM patterns raw SQL or Connection queries, DataManager maps or field definitions, Objectify objects or collections, ORM queries or filters, ORM writes or batch persistence. Use when designing, reviewing, or implementing DB reads, writes, schema, or data access code.
How do I install this agent skill?
npx skills add https://github.com/bitrix-tools/best-practice --skill bitrix-best-practice-sqlIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides comprehensive security-conscious coding guidelines and best practices for database interactions within the Bitrix framework. It contains instructional markdown files that promote the use of framework-native tools to prevent SQL injection and ensure data consistency. No malicious patterns or security risks were detected.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Bitrix Best Practice SQL
Скилл помогает понять, какие нужно использовать SQL/DB best practices. Используй его только для задач, где есть работа с базой данных: схема, SQL-запросы, ORM-модели, выборки, запись, миграции данных, индексы, транзакции или другие DB-boundary решения.
Как использовать
- Определи, действительно ли задача затрагивает SQL, ORM или хранение данных.
- Выдели конкретную DB-область задачи: чтение, запись, схема, миграция, производительность, консистентность или безопасность запроса.
- Открой только те rule-файлы, которые напрямую относятся к этой DB-области.
- Сначала следуй более строгим правилам репозитория и ограничениям модуля.
- Предпочитай framework-native и Bitrix-native паттерны работы с данными вместо самодельных SQL- и storage-абстракций.
Выбор rule-файла
<!-- rules-dictionary:start -->Когда читать rules/query-execution.md
Читай rules/query-execution.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\Application::getConnection(),Bitrix\Main\DB\ConnectionилиgetSqlHelper();query(),queryScalar(),queryExecute(),add(),addMulti()илиBitrix\Main\DB\Result;Bitrix\Main\DB\SqlExpression, placeholders?s,?i,?f,?#,?@или ручную сборку SQL из частей;SqlHelper::quote(),forSql(),prepareInsert(),prepareUpdate(),convertToDb*()илиgetTopSql();- замену legacy
$DB/CDatabaseна D7 DB API; - выбор между raw SQL через
Connectionи более высокоуровневым framework-native DB path.
Когда читать rules/orm-datamanager-map.md
Читай rules/orm-datamanager-map.md, если задача затрагивает хотя бы одну из этих областей:
- класс
*Table extends Bitrix\Main\ORM\Data\DataManager; getTableName(),getConnectionName(),getMap(),getUfId(),postInitialize()илиsetDefaultScope();- описание полей через
Bitrix\Main\ORM\Fields\Fieldи наследников вместо legacy array map; Reference,OneToMany,ManyToMany,configureJoinType(),configureCascade*Policy()именно на уровне декларации сущности;- primary key, autocomplete, validators, save/fetch modifiers, title и default values в entity map;
- выбор между typed field objects и старым массивом в
getMap().
Когда читать rules/orm-objectify.md
Читай rules/orm-objectify.md, если задача затрагивает хотя бы одну из этих областей:
Bitrix\Main\ORM\Objectify\EntityObject,Collection,createObject(),createCollection(),wakeUpObject()илиwakeUpCollection();get(),require(),remindActual(),fill(),isFilled(),isChanged(),collectValues();- работу с relation graph через
addTo(),removeFrom(),removeAll()или collection lifecycle; Collection::walk(),filter(),find(),merge(),hasByPrimary()илиgetByPrimary();- выбор между Objectify-объектами и массивами результата;
- object state (
RAW,ACTUAL,CHANGED,DELETED) и in-memory поведение ORM.
Когда читать rules/orm-query-filter.md
Читай rules/orm-query-filter.md, если задача затрагивает хотя бы одну из этих областей:
DataManager::query(),getList(),getRow(),getByPrimary()илиgetCount();Bitrix\Main\ORM\Query\Query,Query::filter(),ConditionTree,where*,having*,logic()или nested filters;fetchObject(),fetchCollection(),fetch(),fetchAll()и выбор между object fetch и массивами;- runtime fields,
registerRuntimeField(),Query::expr(),ExpressionFieldв query-path; buildFilterSql(),disableDataDoubling(), private fields, aggregation/object-fetch restrictions;- выбор между modern query builder и legacy filter array.
Когда читать rules/orm-persistence-write.md
Читай rules/orm-persistence-write.md, если задача затрагивает хотя бы одну из этих областей:
DataManager::add(),update(),delete(),addMulti(),updateMulti()или object/collectionsave();DeleteByFilterTrait::deleteByFilter(),MergeTrait::merge()или low-level ORM write helpers;Bitrix\Main\ORM\Data\AddStrategy,InsertIgnore,Merge,MergeByDefaultTrait,InsertIgnoreByDefaultTrait,AddMergeTraitилиAddInsertIgnoreTrait;- выбор между обычной ORM-записью, batch-операцией, merge/upsert и delete-by-filter;
- события ORM при записи,
ignoreEvents, cache cleanup и caveats batch persistence; - массовая запись или обновление нескольких строк через ORM lifecycle.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/bitrix-tools/best-practice/bitrix-best-practice-sql">View bitrix-best-practice-sql on skillZs</a>