Узо расшифровка: расшифровка в электрике, функции и принцип работы устройства защитного отключения

устройство, принцип действия, существующие виды и маркировка УЗО © Геостарт

Рубрика:

Электроприборы и освещение

Что такое УЗО: устройство, принцип действия, существующие виды и маркировка УЗО

Любая электрическая сеть должна иметь устройство защиты, но, что такое УЗО и какой принцип его действия знает далеко не каждый. Расшифровка аббревиатуры выглядит так – устройство защитного отключения.

Этот электрический низковольтный аппарат предназначен для выключения защищаемого участка цепи при создании дифференциального тока, превышающего номинальное значение для этого прибора.

Предназначение аппарата защиты

Устройство контура заземления УЗО является РЕ-проводником нейтральных токопроводящих корпусов или деталей электрических механизмов с сопротивлением не выше 4 Ом.

При возникновении тока утечки указанные элементы оборудования могут быть под напряжением, что представляет опасность для жизни человека и животных при соприкосновении с ними, а также для имущества в целом.

Спасти от получения электротравм — призвание обзорных аппаратов. При обнаружении тока утечки они отключают напряжение.

Наибольшая опасность кроется в том, что такие нарушения в цепи являются невидимыми и в редких случаях ощутимыми, когда при касании к прибору можно почувствовать легкий удар током.

Основной причиной этого явления служит нарушение изоляционного слоя проводки. Неконтролируемые процессы могут нанести большой вред, поэтому защитное оборудование обретает большую популярность в бытовых условиях.

Воздействие токопроводящих сетей на человеческий организм может обернуться плачевными последствиями. Эта проблема была решена с помощью контрольно-измерительных приборов УЗО, относящихся к защитному сегменту. Основные требования по монтажу и использованию описаны в МЭК 60364

Применение УЗО получило наибольшее распространение в однофазных сетях с переменным током и заземлением нейтральной линии, а также с показателями напряжения до 1 кВт в формате бытового электроснабжения.

Конструктивное исполнение УЗО

Опциональные особенности защитного механизма помогут разобраться в принципе действия УЗО, а именно воспроизводимую реакцию аппарата на утечку тока.

К ключевым рабочим узлам относятся:

  • трансформаторный дифференциальный датчик;
  • пусковой орган — механизм, разрывающий некорректно функционирующую электроцепь;
  • электромагнитное реле ;
  • контрольный блок.

К датчику подключены встречные обмотки – фаза и ноль. При нормальном режиме работы сети, эти полупроводниковые элементы образуют в сердечнике магнитные потоки, имеющие противоположное направление по отношении друг к другу. За счет этого магнитный поток равен нулю.

Трансформатор состоит из замкнутого стального сердечника, на который надеты две катушки: первичная – подключена к источнику переменного тока, вторичная – подсоединена к нагрузке. Во сколько раз трансформатор увеличивает напряжение переменного тока, во столько же раз уменьшается сила тока

Ко вторичной обмотке, намотанной на магнитопровод трансформатора, подключено реле электромагнитного типа. Если в сети соблюдены стандартные условия работы, оно не задействовано.

При возникновении утечки тока вся работа кардинально меняется. Фазный и нейтральный проводники начинают пропускать разные величины тока. Теперь силовое значение и направление магнитных потоков на сердечнике трансформатора также будут иметь различные параметры.

Во вторичных витках появляется ток и при достижении заданных значений, воспроизводится срабатывание электромагнитного реле. Оно подсоединено в паре с механизмом расцепления. Эта связка в нужный момент реагирует и расцепляет электросеть.

Согласно требованиям пожарной безопасности контрольные проверки устройства дифференциальной защиты производится регулярно, не менее одного раза в месяц. Для этого на приборе есть специальная кнопка «ТЕСТ»

Принцип действия/работы УЗО состоит в следующем: подача тока с фазной линии на контрольное сопротивление и после этого — на нейтральный провод, минуя датчик.

Таким образом создаются условия разных показателей тока на входе и выходе прибора. Этот дисбаланс и должен привести к запуску узла отключения.

В зависимости от разработчиков, схемотехническое устройство может разниться, однако принцип, используемый в работе УЗО, будет идентичный у всех моделей.

Принцип срабатывания защитного механизма

Рассмотрим, для чего нужно использовать УЗО. Функционирование защитного прибора основано на измерительном методе.

Фиксируются входящие и выходящие параметры протекающих через трансформатор токов. Если первое значение больше, чем второе, это означает, что в электроцепи происходит утечка тока и прибор воспроизводит отключение. Если параметры идентичны, устройство не срабатывает.

В двухпроводной системе дифференциальное устройство не срабатывает, если по проводам фазы и нейтрали проходит ток, одинаковой силы. Если есть разница в этих величинах, значит в сети изоляционный пробой и защитный механизм отключит поврежденный участок

Для лучшего понимания, рассмотрим, как будет работать УЗО в бытовом распределительном щитке с двухполюсной системой.

К верхним клеммным блокам подключен входной двухжильный провод (фаза и ноль). К нижним клеммникам подсоединены фаза и ноль, проложенные до участка нагрузки, например, к розетке питания бойлера или электрочайника. Защитное заземление прибора будет выполняться кабелем, минуя УЗО.

При стандартном рабочем режиме, передвижение электронов выполняется по линии-фаза от входящего кабеля на электрический нагреватель бойлера/чайника, протекая через прибор дифференциальной защиты. Назад они перемещаются на землю опять-таки через УЗО, однако по линии-нейтраль.

Если человек коснется к корпусу токопроводящего прибора, на котором из-за пробоя появился потенциал, в этой ситуации утечка тока будет проходить через тело человека, на что устройство практически мгновенно реагирует, отключая систему питания

К примеру, в ТЭНе прибора была повреждена изоляция. Таким образом, через воду, находящуюся внутри, ток частично будет проводиться корпусом, а затем уходить в землю посредством проводки защитного устройства.

Остатки тока вернутся по нейтральной линии через УЗО. Однако его сила станет меньше на величину утечки по сравнению с входящей.

Разницу показателей вычисляет дифференциальный трансформатор. Если цифра больше разрешенной, прибор моментально реагирует и разрывает цепь.

Целесообразность использования УЗО

Рассмотрим, для чего нужно использовать УЗО и от каких негативных факторов воздействия устройство обеспечивает защиту.

В первую очередь — замыкание фазы на корпус электротехники. В основном к проблемным участкам относят ТЭНы нагревателей и стиральных машин. Стоит заметить, что пробой образуется только в том случае, когда теплообразующая деталь нагревается под действием тока.

Также при некорректном подключении проводов. Например, если используются скрутки без клеммной коробки, которые в последующем утапливаются в стене и закрываются слоем штукатурки. Поскольку поверхность имеет повышенную влажность, эта скрутка и будет пробоем, дающим утечку в стену.

Дифференциальный защитный механизм в этом случае будет постоянно выполнять обесточивание линии пока участок полностью не высохнет или пока не будет переделан соединительный узел.

Автоматическая защита эффективно применяется в условиях быта: в электрических группах для ванной комнаты, кухни и розетках, с большим количеством питающихся приборов. Идеальный вариант, когда такого рода устройства установлены на каждой группе розеток

Сфера применения обзорных аппаратов довольно разнообразна — от общественных построек до масштабных предприятий. Ими комплектуются электротехнические конструкции и схемы, предназначенные для приема и распределения: щитки в жилых домах, системы снабжения током для индивидуального потребления и т.д. Главное при этоом — правильно выбрать УЗО по мощности .

Виды приборов и их классификация

Фирмы-разработчики наделяют свои изделия разноплановыми возможностями, которые необходимо учитывать при определении нужного вида УЗО, отталкиваясь от конкретных условий эксплуатации электропроводной сети.

Для того чтобы обычный потребитель сумел подобрать необходимое устройство защитного отключения среди многообразия предлагаемых моделей, была создана классифицирующая система, основанная на следующих характеристиках:

  • принцип срабатывания;
  • род дифференциального тока;
  • задержка по времени отключающего дифференциального тока;
  • количество полюсов;
  • метод установки.

Далее рассмотрим детальнее каждую из этих классификаций.

Классификация #1 — по методу включения

Существуют всего два метода включения – электромеханический и электронный. В первом случае автомат отключит питание на поврежденной линии вне зависимости от напряжения сети. Основной рабочий орган – тороидальный сердечник с обмотками.

При образовании утечки, во вторичной цепи формируется напряжение для задействования работы реле поляризации, что и приводит к активации механизма выключения.

Для устройств электромеханического типа не требуется внешнее напряжение. Источником для их срабатывания является дифференциальный ток на линии повреждения

Функционирование аппарата с электронной начинкой полностью зависит от дополнительного напряжения, т.е. требуется внешнее питание. Здесь рабочим органом представлена электронная плата с усилителем.

Внутри такого механизма нет дополнительных источников, аккумулирующих энергию, поэтому для работы схемы используется электричество внешней сети и, если напряжения нет, – устройство не разорвет цепь.

Определение типа устройства: к клеммам пальчиковой батарейки «АА» припаять два провода. Включить УЗО и подсоединить к входу защитного блока, а следующий – к выходу. Линии присоединяют на один полюс. Если аппарат отключится – это означает, что представлен электромеханический тип,  если нет – электронный

Пример работы электронного УЗО, установленного на линии с розеткой, откуда питается микроволновая печь: произошел обрыв нулевой фазы, в дополнение к этому, в этот же период образуется неисправность электропроводки СВЧ и происходит замыкание фазы на корпус, т. е. на нем появляется опасный потенциал.

Если дотронуться до печки, электронный тип защиты не будет задействован, т.к. нет питающей сети. Именно по причине ненадежности в сравнении с электромеханическим аналогом этот прибор получил меньшее распространение.

Классификация #2 — по роду тока утечки

Все модели выпускаемых автоматов безопасности дополнительно разделяют по току нагрузки, проходящего через устройство. Они обрабатывают напряжение заданного формата колебаний.

На корпусе всех приборов и в паспорте прописывается номинальное значение рабочего напряжения. Этот параметр должен соответствовать диапазону номинального тока электротехники.

Тип АС будет активирован при моментальном возникновении переменного напряжения утечки в подконтрольной схеме или же при его волнообразном наращивании. Эти аппараты маркируются надписью «АС» или символьным знаком «~».

Наиболее подходящий форм-фактор для бытового применения — УЗО-АС. Модель является самой дешевой из приборов аналогичного действия. В паспорте к электротехнике производители нередко указывают конкретную модель защитного автомата, подходящую для этого изделия

Тип А срабатывает при мгновенном образовании переменного или пульсационного пробойного тока в контролируемой цепи, или при их медленном нарастании.

Такой механизм можно использовать в любых представленных ситуациях. На корпусе автомата нанесена аббревиатура «А» или символ, как на графическом изображении в прямоугольнике .

Чаще всего А-тип подключается к схеме, где воспроизводится регулирование нагрузки посредством обрезания верхушки синусоиды, например, корректировка показателей скорости оборотных движений двигателя тиристорным преобразователем.

Стоимость модели А в разы дороже в сравнении с АС, т.к. здесь дополнительно осуществляется контроль постоянного напряжения, возникающего в силовой преобразовательной технике

УЗО подвида В эффективны для воспроизведения реакции в подчиненной электросхеме постоянного, переменного или преобразованного (выпрямленного) тока утечки.

Это дорогостоящее оборудование, предназначенное для объектов промышленной деятельности. В бытовых условиях они не применяются.

Представленные устройства защиты отключения типа А, В и АС рассчитаны на время активизации 0,02-0,03 с.

Классификация #3 — по типу задержки по времени

Эта классификация предполагает различие по двум типам: S и G. Автоматическую защиту типа S можно охарактеризовать реакцией селективного формата. Выдержка по времени срабатывания соответствует диапазону 0,15-0,5 с. Его целесообразно выбирать в случае группового подключения УЗО.

Схема квартирного щитка с двумя группами нагрузки, где подключены два разных типа защитных устройств: АС или А, и S

Согласно схеме, в щитке размещено две нагрузочные группы в виде розетки №1 и №2, на которые подключено УЗО типа А, а на вход помещения второй автомат – S.

Если произойдет пробой в одном пучке, вводной прибор активизируется только тогда, когда коллективное устройство не выполнит свою функцию и не отключит дефектный участок.

Селективность активизирования разрыва цепи можно выполнить, используя другой метод – посредством уставок тока утечки. Этот способ получил наибольшее распространение.

Схема квартирного щитка с двумя группами нагрузки, где подключены два разных типа защитных устройств: АС с уставкой пробоя, и второе А, но с большим значением

Возьмем аналогичную предыдущей схему и видоизменим ее таким образом: групповой автомат выбираем типа АС только уже с уставкой дифтока 0,03 А, а на вводе будет аналогичное устройство только на 0,1 А.

Есть ситуации, когда дифференциальный ток в цепи повреждения превышает номинальные уставки двух приборов защиты. Для первой схемы выборочность не будет нарушена, а во второй – ток отсечки может подать любое из подключенных устройств.

Аппарат форм-фактора G также представлен селективным принципом сработки и обладает выдержкой 0,06-0,08 с. Все описанные выборочные виды рассчитаны на воздействие экстремальных токов – до 15 кА.

Некоторые модели УЗО обладают системой регулирования уставки дифоргана, другие не имеют такой возможности. Однако для бытовых целей подходит второй вариант исполнения

Ток ограничения является важным параметром выбора, т.к. именно за счет этого и обеспечивается безопасность.

Например, в помещениях с повышенной влажностью, питание электроприборов осуществляется с подключением в схему устройств отключения с уставкой 0,01 А. Для стандартных бытовых условий – 0,03 А.

Для организации противопожарной безопасности зданий – 0,1-0,3 А. Рекомендуем ознакомиться с советами по выбору противопожарного УЗО и тонкостями его монтажа.

Классификация #4 — по числу полюсов

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

Двухполюсное УЗО обозначается как 2Р. Его включают в однофазную схему для обеспечения защиты человека и предотвращения возможных причин пожара.

Маркировка четырехполюсных УЗО – 4Р. Они рассчитаны на работу в сети с тремя фазами. Также возможен вариант комбинации установки, например, прибор с четырьмя полюсами вводится в двухпроводную сеть.

Однако при этом будет реализован не весь потенциал устройства, что является экономически невыгодным.

При установке защитного автомата стоит учитывать вероятность того, что ток нагрузки может превысить максимальные рабочие значения устройства. Поэтому дополнительно устанавливается автоматический выключатель с номинальным напряжением не больше, чем рабочий ток системы безопасности

Классификация #5 — по способу установки прибора

Поскольку дифференциальные защитные устройства выполняются в различных корпусах, их можно использовать в качестве стационарных или переносных.

Во втором случае аппарат снабжается удлиняющим проводом. Приборы, фиксирующиеся на din-рейке, монтируются в электрощит , что размещается либо в коридоре, либо в квартире.

Также есть варианты исполнения вида УЗО-розетка и УЗО-вилка. И в первом, и во втором случае любой электроприбор, подключенный посредством такого механизма, при поломке не представляет опасности для человека.

Полная расшифровка маркировочных значений

В обязательном порядке на корпусе устройства присутствует название фирмы-разработчика. Далее следует стандартизированная маркировка с обозначением серийного номера.

Для расшифровки аббревиатуры будем использовать такой пример [F][X]00[X]-[XX] :

  • [F] – устройство защитного отключения;
  • [X] – формат исполнения;
  • 00 – цифровые или буквенно-цифровые обозначения серии;
  • [X] – количество полюсов: 2 или 4;
  • [XX] – характеристики по виду тока утечки: АС, А и В.

Также здесь будут обозначены и номинальные параметры прибора, на которые при выборе необходимо обратить особое внимание.

Расшифровка аббревиатуры: 1 – бренд; 2 – тип устройства; 3 – селективный вид; 4 – соответствие европейским стандартам; 5 – номинальный рабочий ток и уставка; 6 – максимальное переменное рабочее напряжение; 7 – номинальный ток, который прибор может выдержать; 8 – дифференциальная включающая и отключающая способность; 9 – электросхема; 10 – ручная проверка работоспособности; 11 – маркировка положения переключателя

К максимальным параметрам, на которые рассчитаны устройства, относятся: напряжение Un , ток In , дифференциальное значение тока размыкания цепи IΔn , способность включения и отключения Im, коммутационная способность при замыканиях Icn .

Основные маркировочные значения должны быть расположены таким образом, чтобы оставаться видимыми после установки прибора.  Некоторые параметры могут наноситься сбоку или на задней панели, видимые только до монтажа изделия.

Выходы, предназначенные только для подсоединения нулевого провода, обозначаются латинским символом « N ». На отключенный режим УЗО указывает символ « О » (окружность), включенный — короткая вертикальная черта « I ».

Не на каждое изделие нанесены оптимальные температурные показатели окружающей среды. В тех моделях, где есть символ — это значит, что диапазон рабочего режима от -25 до + 40 °C, если нет никаких обозначений — имеются в виду стандартные показатели от -5 до +40 °С.

Описание всех типов защитных автоматов, а также советы, как правильно делать свой выбор:

Ответ на извечный вопрос, на чем остановить свой выбор – на дифференциальном автомате, или на УЗО + секреты монтажа:

Применение УЗО — выгодное и правильно решение не только со стороны экономии, но, с точки зрения пожарной безопасности, и защиты человека.

Рекомендуется максимально задействовать его потенциал в бытовых условиях, устанавливая на все группы электротехники для обеспечения полной изоляции от воздействия электричества .

автор

Николаева Ярослава

Разница между ВДТ (УЗО) и АВДТ (Дифференциальным автоматом)


Как же все-таки отличить УЗО от дифавтомата? В чем разница?  На самом деле эти приборы предназначены для решения разных задач, и поэтому знать, чем они отличаются и какую функцию выполняют, нужно знать даже обычному жильцу – хотя бы в общих чертах. Часто путают УЗО с дифференциальным автоматическим выключателем. 


Если положить рядом УЗО и дифавтомат, их схожесть будет сразу заметна. Но они выполняют совершенно разные задачи. Вспомним, какие функции выполняет УЗО и дифференциальный автомат.


Устройство защитного отключения срабатывает (УЗО), если в сети, к которой оно подключено, появляется дифференциальный ток — ток  утечки. При возникновении тока утечки пострадать в первую очередь может человек, если прикоснется к поврежденному оборудованию. Кроме того, при появлении тока утечки в электропроводке, изоляция будет греться, что может привести к возгоранию и пожару.


Поэтому УЗО устанавливают для защиты от поражения электрическим током, а также от повреждений электропроводки в виде утечек которые сопровождаются с пожаром.


Дифференциальный автомат — это уникальное устройство, совмещающее в себе и автоматический выключатель (более понятный для населения как «автомат»), и ранее рассмотренное УЗО. Т.е. дифференциальный автомат способен защитить вашу проводку и от коротких замыканий, и от перегрузок, а также от возникновения утечек, связанных с ранее описанными ситуациями.


Визуальное отличие


Определить, какое устройство перед вами – УЗО или же диф. автомат – довольно легко даже визуально. Несмотря на внешнее сходство (рычажок переключателя, наличие кнопки «Тест», одинаковая корпусная часть с нанесенной на ней схемой, а также цифрами и буквами), достаточно внимательно приглядеться, чтобы увидеть, что обозначения на этих приборах разные. А ещё проще определить, УЗО или дифавтомат перед вами, по расположению кнопки «Тест» и переключателя. У АВДТ рычажок расположен слева, кнопка – справа, а вот у УЗО – наоборот.


Различие по маркировке


На поверхности УЗО номинальный ток обозначается исключительно цифрами. Латинский литер (B, C, D) перед ними – это неотъемлемый признак АВДТ. На корпусной части УЗО стоит маркировка «25А». Она означает, что номинальный ток в цепи, в которую включен этот аппарат, не должен превышать 25А. На АВДТ проставлена маркировка «С16». Буквой обозначается характеристика встроенных расцепителей.


 


Различие в электрической схеме


Схема наносится на многие устройства. При взгляде на УЗО или на диф. автомат можно заметить, что нанесенные на них схемы похожи, но не идентичны. На схеме ВД имеется овал – этим символом обозначен дифференциальный трансформатор, являющийся основной частью прибора. Он отвечает за обнаружение тока утечки. К отличительным символам на схеме АВДТ относятся обозначения расцепителей – электромагнитного соленоида и биметаллической пластины, которые обеспечивают срабатывание автомата при появлении в цепи токов КЗ или перегрузок.


Различие в аббревиатуре


На таких устройствах как правило по русски написано что это УЗО (ВД) или дифавтомат АВДТ. Устройство защитного отключения (УЗО) сейчас правильно называются выключатели дифференциальные (ВД). Дифференциальный автомат — он же автоматический выключатель дифференциального тока (АВДТ).


По ценовым параметрам УЗО и дифавтоматы отличаются. Особенно это касается импортной продукции. Нормальный дифавтомат стоит чуть дешевле, чем УЗО в комплекте с обычным автоматом.


Положительным аспектом АВДТ является удобство монтажа: для электрика важно закрутить в тесном монтажном боксе на пару винтов меньше. С другой стороны это повышает надежность цепи: чем меньше соединений тем лучше. Но если устройство сломается, то подлежит полной замене.


В случае применения УЗО в паре с автоматом, процесс ремонта выглядит дешевле: меняется либо один элемент, либо другой. Это необходимо учитывать при проектировании ваших сетей, учитывая риск тех или иных негативных событий и их возможную частоту.


Качество импортных устройств выше. Отечественные тоже достаточно неплохи, но проигрывают в таких важных характеристиках как время срабатывания, уступают в надежности механических частей, элементарно уступают в качестве корпусов.


Что касается надежности срабатывания эти два устройства ничем не уступают друг другу.


 

URL Расшифровка «узо» — Онлайн

Познакомьтесь с декодированием и кодированием URL, простым онлайн-инструментом, который делает именно то, о чем говорит: декодирует URL-кодирование, а также быстро и легко кодирует его. URL-кодируйте свои данные без проблем или декодируйте их в удобочитаемый формат.

URL-кодирование, также известное как «процентное кодирование», представляет собой механизм кодирования информации в универсальном идентификаторе ресурса (URI). Хотя это известно как URL-кодирование, на самом деле оно более широко используется в основном наборе унифицированных идентификаторов ресурсов (URI), который включает в себя как унифицированный указатель ресурса (URL), так и унифицированное имя ресурса (URN). Как таковой он также используется при подготовке данных медиа-типа «application/x-www-form-urlencoded», который часто используется при отправке данных формы HTML в HTTP-запросах.

Дополнительные параметры

  • Набор символов: В случае текстовых данных схема кодирования не содержит набор символов, поэтому необходимо указать, какой набор символов использовался в процессе кодирования. Обычно это UTF-8, но могут быть и многие другие; если вы не уверены, поэкспериментируйте с доступными вариантами или попробуйте вариант автоматического обнаружения. Эта информация используется для преобразования декодированных данных в набор символов нашего веб-сайта, чтобы все буквы и символы отображались правильно. Обратите внимание, что это не относится к файлам, поскольку к ним не нужно применять веб-безопасные преобразования.
  • Декодировать каждую строку отдельно: Закодированные данные обычно состоят из непрерывного текста, поэтому даже символы новой строки преобразуются в их процентно-кодированные формы. Перед декодированием из входных данных удаляются все незакодированные пробелы, чтобы защитить целостность входных данных. Эта опция полезна, если вы собираетесь декодировать несколько независимых записей данных, разделенных разрывами строк.
  • Режим реального времени: Когда вы включаете эту опцию, введенные данные немедленно декодируются с помощью встроенных функций JavaScript вашего браузера, без отправки какой-либо информации на наши серверы. В настоящее время этот режим поддерживает только набор символов UTF-8.

Безопасно и надежно

Все коммуникации с нашими серверами осуществляются через безопасные зашифрованные соединения SSL (https). Мы удаляем загруженные файлы с наших серверов сразу после обработки, а полученный загружаемый файл удаляется сразу после первой попытки загрузки или 15 минут бездействия (в зависимости от того, что короче). Мы никоим образом не храним и не проверяем содержимое отправленных данных или загруженных файлов. Ознакомьтесь с нашей политикой конфиденциальности ниже для получения более подробной информации.

Совершенно бесплатно

Наш инструмент можно использовать бесплатно. Отныне вам не нужно скачивать какое-либо программное обеспечение для таких простых задач.

Подробная информация о кодировке URL

Типы символов URI

Символы, разрешенные в URI, являются зарезервированными или незарезервированными (или символ процента как часть процентного кодирования). Зарезервированные символы — это символы, которые иногда имеют особое значение. Например, символы косой черты используются для разделения разных частей URL-адреса (или, в более общем смысле, URI). Незарезервированные символы не имеют такого специального значения. Используя процентное кодирование, зарезервированные символы представляются с помощью специальных последовательностей символов. Наборы зарезервированных и незарезервированных символов, а также обстоятельства, при которых определенные зарезервированные символы имеют специальное значение, немного меняются с каждой новой редакцией спецификаций, регулирующих URI и схемы URI.

Другие символы в URI должны быть закодированы в процентах.

Зарезервированные символы с процентным кодированием

Когда символ из зарезервированного набора («зарезервированный символ») имеет особое значение («зарезервированное назначение») в определенном контексте, и схема URI говорит, что необходимо использовать этот символ для какой-либо другой цели, то символ должен быть закодирован в процентах. Процентное кодирование зарезервированного символа означает преобразование символа в соответствующее ему байтовое значение в ASCII, а затем представление этого значения в виде пары шестнадцатеричных цифр. Цифры, которым предшествует знак процента («%»), затем используются в URI вместо зарезервированного символа. (Для символа, отличного от ASCII, он обычно преобразуется в последовательность байтов в UTF-8, а затем каждое значение байта представляется, как указано выше.)

Зарезервированный символ «/», например, если он используется в компоненте «путь» URI, имеет особое значение, поскольку он является разделителем между сегментами пути. Если в соответствии с заданной схемой URI в сегменте пути должен быть символ «/», то в сегменте должны использоваться три символа «%2F» (или «%2f») вместо «/».

Зарезервированные символы, которые не имеют зарезервированного назначения в конкретном контексте, также могут быть закодированы в процентах, но семантически не отличаются от других символов.

В компоненте «запрос» URI (часть после символа «?»), например, «/» по-прежнему считается зарезервированным символом, но обычно не имеет зарезервированного назначения (если не указано иное в конкретной схеме URI). Символ не нужно кодировать в процентах, если он не имеет зарезервированного назначения.

URI, отличающиеся только тем, является ли зарезервированный символ процентным кодированием или нет, обычно считаются неэквивалентными (обозначающими один и тот же ресурс), за исключением случаев, когда рассматриваемые зарезервированные символы не имеют зарезервированного назначения. Это определение зависит от правил, установленных для зарезервированных символов отдельными схемами URI.

Незарезервированные символы с процентным кодированием

Символы из незарезервированного набора никогда не нуждаются в процентном кодировании.

URI, отличающиеся только тем, является ли незарезервированный символ процентным кодированием или нет, эквивалентны по определению, но на практике процессоры URI не всегда могут обрабатывать их одинаково. Например, потребители URI не должны рассматривать «%41» иначе, чем «A» («%41» — это процентное кодирование «A») или «%7E» иначе, чем «~», но некоторые это делают. Поэтому для обеспечения максимальной совместимости производителям URI не рекомендуется использовать процентное кодирование незарезервированных символов.

Процентное кодирование символа процента

Поскольку символ процента («%») служит индикатором октетов, закодированных в процентах, он должен быть закодирован в процентах как «%25», чтобы этот октет можно было использовать в качестве данных в URI.

Произвольные данные с процентным кодированием

Большинство схем URI включают представление произвольных данных, таких как IP-адрес или путь к файловой системе, в виде компонентов URI. Спецификации схемы URI должны, но часто не обеспечивают явное сопоставление между символами URI и всеми возможными значениями данных, представленными этими символами.

Двоичные данные

После публикации RFC 1738 в 1994 г. было указано, что схемы, обеспечивающие представление двоичных данных в URI, должны делить данные на 8-битные байты и кодировать каждый байт в процентах в так же, как указано выше. Значение байта 0F (шестнадцатеричное), например, должно быть представлено как «%0F», но значение байта 41 (шестнадцатеричное) может быть представлено как «A» или «%41». Использование незакодированных символов для буквенно-цифровых и других незарезервированных символов обычно предпочтительнее, поскольку это приводит к более коротким URL-адресам.

Символьные данные

Процедура процентного кодирования двоичных данных часто экстраполируется, иногда неуместно или без полного уточнения, для применения к символьным данным. В годы становления World Wide Web при работе с символами данных в репертуаре ASCII и использовании соответствующих им байтов в ASCII в качестве основы для определения последовательностей с процентным кодированием эта практика была относительно безвредной; многие люди предполагали, что символы и байты сопоставляются один к одному и взаимозаменяемы. Однако потребность в представлении символов за пределами диапазона ASCII быстро росла, и схемы и протоколы URI часто не могли обеспечить стандартные правила подготовки символьных данных для включения в URI. Следовательно, веб-приложения начали использовать различные многобайтовые кодировки, кодировки с отслеживанием состояния и другие кодировки, несовместимые с ASCII, в качестве основы для процентного кодирования, что привело к неоднозначности, а также к трудностям с надежной интерпретацией URI.

Например, многие схемы и протоколы URI, основанные на RFC 1738 и 2396, предполагают, что символы данных будут преобразованы в байты в соответствии с некоторой неуказанной кодировкой символов, прежде чем они будут представлены в URI незарезервированными символами или процентно закодированными байтами. Если схема не позволяет URI предоставить подсказку о том, какая кодировка использовалась, или если кодировка конфликтует с использованием ASCII для процентного кодирования зарезервированных и незарезервированных символов, то URI нельзя надежно интерпретировать. Некоторые схемы вообще не учитывают кодировку и вместо этого просто предполагают, что символы данных сопоставляются непосредственно с символами URI, что оставляет на усмотрение отдельных пользователей решать, следует ли кодировать в процентах символы данных, которые не входят ни в зарезервированные, ни в незарезервированные наборы.

Произвольные символьные данные иногда кодируются в процентах и ​​используются в ситуациях, отличных от URI, например, в программах запутывания паролей или других системных протоколах перевода.

релизов · letsdrink/ouzo · GitHub

Выпуск 1.8.0

26 мар 13:23

ббанковски

a19891b Сравнить

Версия 1.8.0Последняя

Последняя версия

Поддержка PHP 5.6 прекращена. Минимальная требуемая версия PHP — 7.4.

Улучшения:

  • [Утилиты] Добавлены Arrays.getDuplicates(), Arrays.getDuplicatesAssoc().
  • [Утилиты] Добавлены FluentArray.getDuplicates(), FluentArray.getDuplicatesAssoc().
  • [Core] Добавлены инструменты миграции базы данных (migrate:run и migrate:generate).

Версия 1.7.0

13 окт 13:49

ббанковски

08c6848 Сравнить

Версия 1.7.0

Расширения:

  • [ORM] Модель реализует интерфейсы Serializable и JsonSerializable (issue #203).
  • [ORM] Изменен Model::deleteEach для использования итератора вместо выборки всех элементов сразу (issue #254).
  • [ORM] Исправлен fetchIterator для правильного использования курсора под ним.
  • [ORM] Реализована функция upsert (Model::createOrUpdate).
  • [ORM] Исправлено использование значения первичного ключа, когда оно задано как атрибут, вместо использования последовательности.
  • [DI] Добавлено внедрение конструктора для аргументов с определенными типами (issue #265).
  • [DI] Реализовано внедрение приватных полей для родительского класса.
  • [DI] Реализовано внедрение через фабричный класс.
  • [DI] Реализованы именованные параметры для внедрения конструктора.
  • [DI] Реализована ленивая загрузка для одноэлементных классов.
  • [DI] Добавлен загрузчик модулей.
  • [Утилиты] Добавлено equalsIgnoreCase к функциям и FluentFunctions (issue #263).
  • [Утилиты] Добавлен ToStringBuilder в стиле apache-commons.

Исправление ошибок:

  • [Утилиты] Исправлены часы для поддержки перехода на летнее время при добавлении часов, минут или секунд.
  • [Утилиты] Исправлена ​​ошибка Arrays::getNestedValue, когда ключи приводили к несуществующему элементу со скалярным родителем.
  • [MVC] Добавлена ​​возможность очистки кэша перед загрузкой файлов.
  • [Тесты] Исправлена ​​обработка возвращаемого значения null для фиктивных объектов.

Версия 1.

6.1

29 мар 14:39

ббанковски

958f710 Сравнить

Release 1.6.1

Улучшения:

  • [Core] Добавлено Validatable::errors() , так что можно добавить сразу несколько ошибок.
  • [Core] Добавлена ​​библиотека Whoops (issue #243).
  • [Core] Удалено отдельное представление 404 (вы должны проверить http-код в exception.phtml)
  • [ORM] Добавлен метод Db::query()->fetchIterator() (issue #241).
  • [ORM] Добавлена ​​поддержка подзапросов EXISTS .
  • [ORM] Добавлен ModelQueryBuilder::fetchIterator() (ошибка № 242).
  • [ORM] Добавлено Restrictions::isIn() .
  • [Тесты] Добавлен Assert::that() (issue #245).
  • [Тесты] Добавлено Assert::thatBool() .
  • [Тесты] Добавлено Assert::thatArray()->keys() .
  • [Утилиты] Добавлено Functions::notNull() .
  • [Утилиты] Добавлено Arrays::isAssociative() и Массивы::concat() .
  • [Утилиты] Добавлен UnbatchingIterator .
  • [Утилиты] Добавлено FluentArray::flip() .
  • [Утилиты] Json::decode() и Json::encode() отныне будут генерировать исключения при неверном вводе.
  • [Утилиты] Добавлено Json::safeDecode() и Json::safeEncode() .
  • [Утилиты] Добавлена ​​возможность чтения параметров URL в качестве аргументов методов контроллеров (issue #244).
  • [Утилиты] Clock.useTimezone() принимает обе строки или DateTimeZone .
  • [Утилиты] Добавлено Strings::containsIgnoreCase .
  • [Отладка] После renderPartial() теперь вы можете найти PARTIAL и END PARTIAL комментарии HTML вместе с частичным именем.

Исправление ошибок:

  • [Core] Исправлен поиск маршрутов с символом @ .
  • [ORM] Исправлена ​​скобка запроса (issue #239).
  • [ORM] Insert возвращает id последнего вставленного элемента как int .
  • [ORM] Исправлен метод EmptyQueryExecutor::fetchIterator() .
  • [Тесты] Более подробное сообщение, когда null передается в Mock::verify() (issue #236).
  • [Утилиты] Исправлено извлечение ArraysAssert.
  • [Утилиты] Исправлено Arrays::toArray() для пустой строки, false и нуля.
  • [Утилиты] Исправлено Strings::remove() при задании ложного аргумента (например, '0' ).
  • [Утилиты] Удален параметр $encoding из Strings::uppercaseFirst() .
  • [Утилиты] Часы не изменяют параметр DateTime .

Версия 1.

6.0

15 июн 09:47

пиотрооо

fa6d9f9 Сравнить

Версия 1.6.0

Улучшения:

 [Утилиты] Реализован метод Arrays::contains (issue #103).
[Утилиты] Добавлены Clock::isAfterOrEqualTo и Clock::isBeforeOrEqualTo.
[Утилиты] Добавлен многобайтовый безопасный Strings::uppercaseFirst.
[Утилиты] Добавлена ​​поддержка псевдолокализации.
[MVC] Макет теперь имеет доступ к просмотру переменных.
[ORM] Добавлена ​​обработка исключений для недопустимого запроса.
[Утилиты] Добавлен метод Functions::endsWith.
[Тесты] Добавлен верификатор - Mock::receivedTimes (issue #153).
[Утилиты] Добавлен метод Strings::removeAccent.
[Тесты] Параметры обработки в ControllerTestCase::get.
[ORM] Добавлен BatchInserter.
[Утилиты] Добавлен метод Strings::substringAfter.
[Утилиты] Добавлен метод FluentArray::sort.
[Утилиты] Добавлен метод FluentArray::filterByAllowedKeys.
[DI] Добавлена ​​поддержка внедрения зависимостей (контейнер IoC). 
[Тесты] Добавлена ​​цепочка в Mock::when (issue #209).
[ORM] Добавлен метод Restrictions:regex (issue #213).
[Основное] ControllerFactory использует Injector (issue #223).
[Утилиты] Добавлен метод FluentArray::groupBy.
[DI] Инжектор может вводить сам себя.
[DI] Конфигурацию инжектора можно изменить после инициализации инжектора.
[Утилиты] Добавлена ​​поддержка метода ArrayAssert::extract (issue #231).
[Утилиты] Добавлены методы Functions::inArray и Functions::notInArray.
[Утилиты] Переработаны логические значения.
[Утилиты] Добавлены Arrays::shuffle.
[Основное] Добавлен Controller::getRequestHeaders.
[Ядро] Добавлены параметры для PDO.
 

Исправлены ошибки:

 [Утилиты] Исправлен ArrayAssert, чтобы он выполнял некоторую проверку типов на основе поведения Arrays::contains (ошибка № 192).
[MVC] Исправлена ​​серьезная проблема с производительностью при проверке маршрутов.
[ORM] Исправлена ​​вставка записей без значений (issue #216).
[Тесты] Поддержка тестов контроллера без настроенной базы данных. 
[Ядро] Исправлено декодирование json, чтобы сделать его совместимым с PHP7 (issue #191).
[ORM] Исправлен метод Model::nullifyIfEmpty.
[Ядро] Исправлено ForbiddenException - выдает ошибки.
[Инструменты] Исправлена ​​генерация моделей (issue #214).
[Основное] Bootstrap::addConfig загружает все несколько раз при последовательном выполнении (issue #218).
[Инструменты] Исправлена ​​генерация @property (issue #168).
[ORM] Обработка таблиц пакетной вставки без первичного ключа.
[Core] Исправлено исключение, когда конфиг не добавлялся в Bootstrap.
[Утилиты] Исправлен SkippingIterator, поэтому функция карты не применялась к пропущенным элементам.
[ORM] Исправлен BatchInsert с извлеченными связями (issue #230).
[Утилиты] Исправлен кеш для нулей.
[Ядро] Исправлен рендеринг 404 в RouterException.
[Утилиты] Исправлена ​​нулевая обработка для опционального.
[Утилиты] Исправлено String::contains для многобайтовых.
[Утилиты] Добавлено ограничение (10) на количество запросов, сохраняемых в статистике (issue #217). 
[Утилиты] Исправлено сравнение в Functions::notEqual и Functions::equal с проверкой типа.
[Утилиты] Исправлен сброс JSON при ошибке.
 

Версия 1.5.1

28 июл 15:03

ббанковски

eed031a Сравнить

Версия 1.5.1

Улучшения:

 [ORM] Добавлена ​​поддержка подзапросов в Query.
[Утилиты] Добавлены функции::random.
[Утилиты] Добавлены итераторы (issue #189).
 

Исправление ошибок:

 [MVC] Статистика запросов теперь регистрируется только при включенной отладке.
[MVC] Добавлено более подробное ведение журнала, когда контроллер не найден (issue #187).
[Утилиты] Фиксированные массивы::removeNestedKeys.
 

Версия 1.5.0

15 июн 08:18

ббанковски

fc3985e Compare

Release 1.5.0

Усовершенствования:

 [Утилиты] Расширен Comparator::compareBy для поддержки нескольких выражений (ошибка №169). 
[ORM] Добавлена ​​возможность использования нескольких ограничений в Any::of для одного и того же ключа.
[Утилиты] Добавлены Suppliers::memoizeWithExpiration, которые возвращают поставщика, который кэширует результат функции.
[Основное] Минимальный уровень журнала может быть назначен определенному классу/имени в конфигурации регистратора.
[Основное] Добавлен метод Validatable::validateEmpty.
[ORM] Расширенные ограничения::между режимами: инклюзивный, эксклюзивный и т.д. (issue #176).
[ORM] При использовании DbTransactionTestCase отключаются транзакции (issue #178).
[Основное] Добавлена ​​поддержка токена CSRF в формах.
[Инструменты] Добавлен метод, который выводит список всех сгенерированных вспомогательных методов URI (GeneratedUriHelper::allGeneratedUriNames).
[Утилиты] Реализован дополнительный класс (issue #72).
[ORM] Добавлена ​​поддержка SELECT ... FOR UPDATE — с методом lockForUpdate ModelQueryBuilder.
[ORM] Добавлена ​​поддержка УДАЛЕНИЯ ИСПОЛЬЗОВАНИЕМ.
[MVC] Сеанс закрывается при загрузке или потоковой передаче файла. 
[MVC] Добавлена ​​поддержка символов UTF-8 в маршрутах.
 

Исправление ошибок:

 [Локализация] Исправлен I18n::loadLabels, чтобы не загружать файл перевода, если он уже был загружен (issue #173).
 

Версия 1.4.1

11 фев 09:52

пиотрооо

c523d64 Сравнить

Версия 1.4.1

Улучшения:

 [ORM] Новые ограничения: isNull и isNotNull.
[ORM] Добавлен класс EmptyWhereClause.
[Утилиты] Objects::getValue теперь поддерживает массивы. Это означает, что все функции, зависящие от него (например, Functions::extract), также поддерживают массивы.
[ORM] Добавлен переключатель для генератора моделей для использования сокращенного синтаксиса массива (issue #160).
[ORM] Для генератора моделей добавлен переключатель для отображения вывода вместо сохранения файла (issue #158).
[ORM] Добавлена ​​поддержка отсортированных отношений hasMany (issue #171). 
[Тесты] Добавлен метод ArrayAssert::isEqualTo.
 

Исправление ошибок:

 [Утилиты] Добавлены Arrays::mapEntries (issue #156).
[ORM] Исправлены нулевые параметры в предложении where (issue #161).
[ORM] Исправлено пространство имен генератора моделей и имя папки (issue #149).
[Утилиты] Добавлен Arrays::uniqueBy (issue #159).
[Тесты] Изменен ArrayAssert::hasSize, чтобы он отображал исходный массив при сбое утверждения (issue #163).
[ORM] Исправлена ​​вставка при пустой последовательности (issue #174).
 

Версия 1.4.0

30 дек 12:01

ббанковски

9ab5ada Сравнить

Выпуск 1.4.0

Улучшения:

  • Извлеченные вкусности узо, которые теперь можно использовать как отдельный проект.
  • Версия документации доступна на сайте ouzo.readthedocs.org.
  • [ORM] Добавлен Any::of для создания оператора ИЛИ (issue #141).
  • [Утилиты] Добавлены Strings::substringBefore.
  • [Тесты] Добавлен CatchException::get.

Исправление ошибок:

  • [ORM] Исправлен откат транзакции при исключении (issue #115).
  • [Тестирование] Улучшенные сообщения при сбое assertThat::onMethod (issue #128).

Узо-1.3

16 дек 16:46

пиотрооо

bcc5ddd Сравнить

Ouzo-1.3

Улучшения:

  • [Core] Добавлен переключатель в конструктор форм.
  • [Тесты] Добавлен метод ArrayAssert::hasEqualKeysRecursively.
  • [Утилиты] Добавлен метод Arrays::flattenKeysRecursively.
  • [Утилиты] Добавлен метод Files::getFilesRecursivelyWithSpecifiedExtension.
  • [Core] Добавлено после обратного вызова инициализации.
  • [Локализация] Добавлен метод I18n::labels для получения всех меток или указанной метки.
  • [Тесты] Утверждения CatchException изменены на плавные методы.
  • [Утилиты] Objects::getValue может обращаться к закрытым полям.
  • [Тесты] ArrayAssert::onProperty может обращаться к приватным полям (issue #113).
  • [Core] Добавлена ​​поддержка множественного числа в переводах (issue #111).
  • [ORM] Добавлен метод Model::selectDistinct (issue #91).
  • [ORM] Добавлена ​​поддержка значений модели по умолчанию (issue #66).
  • [Core] Отображены маршруты в таблице (issue #93).
  • [ORM] Добавлен TransactionalProxy.
  • [Core] Переход на PHPUnit 4.3.3 и добавление адаптера утверждений (ошибка № 119).
  • [Утилиты] Добавлен метод Strings::sprintAssoc.
  • [Расширения] Добавлено базовое расширение HTTP Auth.
  • [Утилиты] Добавлен метод Strings::contains.
  • [Утилиты] Добавлены методы Functions::constant, Functions::notEquals, Functions::equals и Functions::throwException.
  • [Mock] Добавлен метод thenAnswer.
  • [Утилиты] Добавлен класс FluentFunctions.
  • [Core] Добавлен метод RequestHeaders::all.
  • [Core] Добавлена ​​возможность настройки нескольких конфигураций логгеров.
  • [ORM] Оптимизация — не выбирать столбцы моделей, которые не будут храниться в полях.
  • [Утилиты] Добавлен класс Validate (issue #117).
  • [Тесты] Реализуйте streamMediaFile в MockDownloadHandler.
  • [Утилиты] Добавлен метод Files::copyContent.
  • [Core] Добавлена ​​возможность группировать маршруты (#80).
  • [ORM] API расширенных критериев в построителе запросов — ограничение (issue #68).
  • [Утилиты] Добавлен метод Arrays::count.
  • [Mock] Добавлено сопоставление аргументов.
  • [Утилиты] Добавлено значение по умолчанию для StrSubstitutor.
  • [Утилиты] Добавлены функции::isInstanceOf.
  • [Утилиты] Добавлен Date::formatTimestamp.
  • [Утилиты] Добавлены компараторы.
  • [Утилиты] Улучшен класс Clock.
  • [Core] Пути к модели, контроллеру и виджету настраиваются из конфига (issue #147).
  • [Утилиты] Добавлены RequestHeaders::ip.
  • [Core] Controller::renderAjaxView использует текущее действие по умолчанию (issue #104).

Исправление ошибок:

  • [ORM] Добавлено осмысленное исключение, когда вызывается Model::findById, но первичный ключ не определен (ошибка №121).
  • [Утилиты] Исправлена ​​генерация полей модели в правильном порядке (issue #102).
  • [Утилиты] Исправлена ​​генерация пустого первичного ключа, когда его нет в таблице (issue #98).
  • [Утилиты] Исправлены Functions::notBlank (issue #106).
  • [Core] Исправлено генерирование оригинального сообщения при генерации UserException (issue #109).
  • [Утилиты] Fixed Arrays::flattenKeysRecursively (issue #110).
  • [Core] Исправлен синтаксический анализ входных данных Json (#114).
  • [ORM] Фиксированный ноль в качестве первичного ключа.
  • [Утилиты] Исправлен экстрактор для «пустых» значений, таких как 0 или пустой массив.
  • [Core] Исправлен приоритет параметров HTTP-запроса.
  • [Core] Исправлен синтаксический анализ HTTP-запроса PUT.
  • [Core] Исправлена ​​нечувствительность к регистру букв uri ContentType.
  • [ORM] Исправлена ​​ошибка, из-за которой не получалось отношение, объединенное через hasMany (что приводило к ошибке).
  • [Core] Исправлено создание имени формы в ModelFormBuilder.
  • [Mock] Исправлена ​​ошибка, из-за которой DynamicProxy использовал uniqid (ошибка №127).
  • [Core] Исправлено некорректное форматирование GeneratedUriHelper (issue #131).
  • [Утилиты] Исправлен Борис (issue #136).
  • [Core] Обновлен сопоставитель пути для возврата правильного представления в зависимости от заголовков запроса.
  • [ORM] Принять один параметр в Model::findBySql (issue #145).
  • [ORM] Псевдоним в запросах на обновление (issue #142).

Узо-1.2

28 авг 13:15

пиотрооо

ebee452 Сравнить

Узо-1. 2

Улучшения:

  • [ORM] Добавлены условия для отношений.
  • [Core] Добавлен регистратор StdOutput.
  • [Основное] Добавлена ​​ошибка::getByCode.
  • [Утилиты] Добавлены функции::extractExpression.
  • [Утилиты] Добавлен FluentArray::uniqueBy.
  • [ORM] Игнорировать порядок, лимит и смещение для запросов подсчета.
  • [ORM] Группировка по поддержке в модели.
  • [Core] Улучшена обработка предупреждений.
  • [Тесты] Добавлены методы StringAssert::isEmpty и StringAssert::isNotEmpty.
  • [Тесты] Добавлен метод CatchException::hasMessage.
  • [Утилиты] Добавлен метод Files::size.
  • [Утилиты] Добавлены функции::surroundWith.
  • [Утилиты] Добавлен Joiner::mapValues.
  • [Утилиты] Добавлен метод Files::exists.
  • [Инструменты] Улучшен API генератора моделей.
  • [Утилиты] Добавлен новый экстрактор в ArrayAssert.
  • [Core] Добавлены методы, извлекающие протокол и хост в классе Uri (Uri::getProtocol и Uri::getHost).
  • [Core] Пользовательский загрузчик Ouzo заменен на загрузчик composer.

Исправление ошибок:

  • [Тесты] Исправлен метод записи StreamStub.
  • [Core] Исправлен URL уведомлений в контроллере.
  • [Mock] Исправлена ​​обработка параметров по ссылке (issue #89).
  • [ORM] Устанавливайте объединенные модели в результаты только один раз для дублированных объединений с разными псевдонимами.
  • [Core] Обрезать URL-адрес в методе Controller::redirect.
  • [ORM] Исправлена ​​выборка отношений. Отношения извлекаются только один раз.
  • [Core] Исправлен интерфейс в ConsoleCommand.
  • [Core] Исправлено ведение журнала исходных сообщений об ошибках в обработчике ошибок.
  • [Утилиты] Выдавать исключение, если вызывается пустой экстрактор (issue #97).
  • [ORM] Исправлено Model::__isset, чтобы оно работало для ленивых отношений.
  • [Утилиты] Arrays::hasNestedKey: добавлен флаг для обработки null как значения (добавлено const TREAT_NULL_AS_VALUE ).