Резюме концепция

Резюме концепция

При създаването на уеб проекти Битрикс Рамковата платформа на разположение обширна функционалност "извън кутията", която може да се използва като се обадите на подходящи модули API. В допълнение, всяка единица в рамките на концепцията е независима операционна единица, която осигурява решение на определен набор от задачи.

Обикновено API на всеки модул е ​​разработен въз основа на конкретната задача и често наричаме формат се различава от един модул към. С цел намаляване на тези различия до минимум основната функционалност, която присъства в почти всеки модул, той е стандартизиран. Това CRUD работа: Създаване, четат, актуализират, изтриване (създавате, четете, обновяване и изтриване на данни).

концепция лице

Същност - съвкупност от колекция от предмети с вътрешна основа (ниско ниво) бизнес логика. Същността има набор от характеристики, чиито стойности са предмет на определени правила за обработка.

Например, същността на потребителя - набор от потребители с набор от области:

Когато този номер се издава автоматично в базата данни, Фамилия е ограничен до 50 знака, Вход трябва да съдържа само букви, цифри и долна черта знак и др.

Вместо програмиране всеки такъв субект, ние бихме искали да го опиша в определен формат. Такова описание ще се поеме от ядрото на системата, е за него един вид конфигурация:

Така например, по подобен начин може да се опише като каталог на книгите, в които самата система ще следят коректността на целостта на данните: Проверете формата и влизането в приемливи граници.

машинописни полета

За конфигурацията на субекти, които не се използват за маркиране средства (XML, YML и т.н.) се използва вместо PHP. Тази опция ви дава максимална гъвкавост и възможности за развитие.

Тя изглежда като определението за типове данни в примера по-горе:

Внимание! Въпреки факта, че в примера на духа означаваше Book (книга), е свързана с наставка името на класа: BookTable. Това се прави нарочно - на описателно име на класа на лице винаги трябва да завършва с думата таблица. Име на Главна книга по същия пространство от имена се счита за да бъде запазено и в бъдеще да се използва основното име (в този случай - Книга клас) да представят елементите на природата под формата на обекти (в момента данни същност са масиви, както и в старите методи getList).

За описанието на структурата по същество съответства getMap () метод. която връща масив от полевите екземпляри.

Всеки тип поле е представен под формата на извлечен клас Entity \ ScalarField - тези полета работят с прости скаларни стойности, които се съхраняват в базата данни "както е". 8 от тези видове е налице по подразбиране:

поле се препоръчва да се нарече само с главни букви В рамките на стандарти за кодиране на съответствие. Имената трябва да са уникални в рамките на едно предприятие.

Обикновено, дизайнерът на полето в първия параметър предава името на полето, а вторият аргумент - разширени настройки. Общи настройки са обсъдени по-късно в тази глава, но има и специфични настройки за BooleanField и EnumField:

За BooleanField, тъй като истинското и фалшивото не може да се съхранява като такъв в базата данни, картографиране стойностите, дадени под формата на масив, където първият елемент съхранение замества фалшива, а вторият е вярно.

Забележка. в описанието на същността, можете да зададете името на таблицата в метод getTableName. в този пример, `my_book`. Ако не се определи този метод, името на таблицата ще се генерира автоматично от мястото на имената и имената на класа за предприятието ще бъде `b_somepartner_mybookscatalog_book`.

първичен autoincrement длъжен

В повечето случаи, предприятието има първичен ключ на едно поле. Той е, като правило, е автоматичното увеличение. Да се ​​говори за този факт, трябва да използвате опциите в поле конструктора:

Забележка. композитен основен ключ също е възможно. Така например, в отношенията между двете автономни ще бъде комбиниран ключ ID двете лица. За да научите повече за това и вижте пример в раздел N: M отношения.

Така заявява полетата, принадлежащи на първичния ключ. С тази опция, същността е да контролира вмъкване на данни и няма да добавите запис, без да уточнява стойност за първичния ключ. Когато актуализирате или изтривате записи могат да бъдат идентифицирани само на основния ключ.

Често тя не посочва ясно стойността на ID, но това се получава от базата данни, след като успешно се добавя записа. В този случай е необходимо да се информира за същността:

флаг "за автоматично довършване. за същността, това означава, че когато добавяте нов рекорд не е необходимо да се изисква от предприемача да зададете стойността на това поле. По подразбиране, това изискване се отнася само до областта на първичния ключ, но можете да зададете на системата да изискват монтиране на всяка друга сфера:

Сега ще бъде невъзможно да се добави нова книга, без да посочва своя ISBN код.

име Картографиране колона

При описанието на характера на съществуващите таблици може да се изкуши да се обадя в друга колона. Например, първоначално в таблицата `my_book` поле ISBN обозначават като ISBNCODE и стария код използва името на колона в SQL запитвания. Ако искате да оптимизирате името на по-четлива ISBN, а след това на тази опция ще помогне "COLUMN_NAME" в новия програмен интерфейс:

Има и други случаи, в които един физически колона в таблицата съхранява различни стойности в смисъл. В този случай, можете да създадете няколко полета на природата, които ще имат една и съща "COLUMN_NAME".

изрази ExpressionField

Там не са само съхраняват данни, както и да е, но и превръщането им в извадката. Да предположим, че е имало изискване на равна нога с датата на публикуване веднага получи книга възраст в дни. Съхранявайте този номер в базата данни е скъпо: ние ще трябва да брои всеки ден, за да актуализирате данните. Можете просто да го отведе до навършване на базата данни:

За да направите това, трябва да се опише в действителност виртуална поле, стойността на които се основава на SQL-израз с друга област или области:

Първият параметър, както и в други области, се дава име. Вторият параметър е необходимо да се предава текста на отчета за SQL, но и други области на природата трябва да се заменят с контейнери в съответствие с sprintf формат. Третият параметър трябва да мине масив от имена на полета по същество в определен ред, който се помещава в израз.

Забележка. както се препоръчва заместители `% s` or`% 1 $ s`,`% 2 $ s` и така нататък. Например, когато експресията на Expr включва няколко области (FIELD_X + FIELD_Y) * FIELD_X. експресията може да бъде описан, както следва: "(% S +% S) *% S '[FIELD_X, FIELD_Y, FIELD_X]; или както следва: "(1% $ S +% 2 $ S) *% 1 $ S" [FIELD_X, FIELD_Y].

Много често експресията може да се прилага за агрегиране на данни (например, COUNT (*) или SUM (ОБЛАСТ)), тези примери ще бъдат обсъдени в проба глава данни.

Забележка. израз полета могат да се използват само, когато данните на пробата: изберете, филтър, групата и да ги сортирате. Като такива физически графи в таблицата на базата данни не е налице, няма място да запише стойността на полето: системата ще генерира изключение.

потребителски полета

В допълнение към полетата и ScalarField ExpressionField. единица може да включва поле за употреба. Те се конфигурира чрез администраторския интерфейс и не се налага допълнително описание от страна на природата. Всичко, което е необходимо да се посочи по същество, е на избрания обект е персонализирано поле:

В бъдеще е необходимо да се уточни този идентификатор, когато поставяте на потребителските полета до същността:

Резюме концепция

Така, че е възможно да се избере и да се актуализира стойностите на дефинирани от потребителя полета на равна нога със стойности по същество редовни полета.

Според резултатите от тази глава, получени от следните дъщерни дружества:

По този начин е възможно да се опише по същество конвенционален поле скаларна, изберете един основен ключ, уточни автоматично инкрементиране области и кои полета трябва да бъдат попълнени. При преминаване име на колона в таблицата и желаното име на предприятието ще бъде в състояние да уреди този въпрос.

Внимание! метод getMap се използва само като получаването на първоначалната конфигурация субект. Ако искате да получите списък на действителния характер на областта, да се използва методът BookTable :: getEntity () -> getFields ().

Остава само да се определи характера на кода в проекта. В съответствие с общите правила за именуване на файлове в D7, същността на кода, който искате да запишете файла: местни / модули / somepartner.mybookscatalog / ИЪ / book.php

След това системата ще се свързва автоматично, когато класът на файл BookTable призовава.