Задать вопрос
https://github.com/silverslice

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (27)

Лучшие ответы пользователя

Все ответы (39)
  • Умеет ли phpstorm делать поиск/замену при массовом поиске в файлах?

    @SilverSlice
    Edit - Find - Repalce in path
    Ответ написан
    Комментировать
  • Каким образом и где определяется свойство isNewRecord класса BaseActiveRecord в Yii2?

    @SilverSlice
    Сергей Протько всё верно описал. Свойство _oldAttributes используется для реализации dirty attributes.

    • При выборке данных, например методом findOne(), строка из БД преобразуется в объект AR методом BaseActiveRecord::populateRecord(). В значение свойств _attributes и _oldAttributes записываются данные, полученные из БД, в виде ['columnName' => 'value'].

    • При установке атрибутов ($customer->name = 'James') магический метод BaseActiveRecord::__set() модифицирует свойство _attributes.

    • При сохранении записи метод BaseActiveRecord::updateInternal() получает только измененные атрибуты (сравнивая свойства _attributes и _oldAttributes), чтобы обновить в БД лишь нужные поля.

    • По умолчанию свойство _oldAttributes равно null. При создании нового объекта ($customer = new Customer()) оно не изменяется, поэтому на основе его и определяют, является ли запись новой или нет.

    Ответ написан
    1 комментарий
  • Как освоить Composer?

    @SilverSlice
    Обзор на русском можно посмотреть здесь . Дальше читайте и переводите документацию на официальном сайте, там всего несколько основных команд.
    А важность этого инструмента определяется вашими задачами: если вы пишите плагины под wordpress или настраиваете bitrix, знать его необязательно, а если используете современные фреймворки и open source библиотеки, то без него никуда.
    Ответ написан
    Комментировать
  • Почему composer не может решить зависимости?

    @SilverSlice
    Коротко: используйте только стабильные релизы при указании версий в зависимостях в своих пакетах.

    Подробно.
    В composer есть флаг minimum-stability, который используется для отбора пакетов на основе стабильности при установке. По умолчанию он равен stable, т.е. устанавливаются только стабильные пакеты. Вы можете изменить это поведение, добавив параметр "minimum-stability" в composer.json. Обратите внимание, что этот параметр применяется только к корневому пакету - вашему основному composer.json файлу.

    Что происходит, когда вы вводите команду composer require nullref/yii2-cms:
    • Создается composer.json файл, в котором не определен minimum-stability, поэтому он рассматривается как stable.
    • В корневом пакете у вас определен в зависимостях только один пакет - nullref/yii2-cms, который имеет стабильный релиз - он и начинает устанавливаться.
    • Пакет nullref/yii2-cms имеет в зависимостях пакет nullref/yii2-admin с версией dev-master. Это нестабильный релиз и он не может быть установлен, т.к. в корневом пакете minimum-stability считается равным stable.

    Что можно сделать:
    • Установить minimum-stability в dev в корневом composer.json файле. В этом случае также следует добавить "prefer-stable": true, чтобы по возможности ставились стабильные пакеты.
    • Использовать stability flags, явно указав флаг в корневом пакете: "nullref/yii2-admin": "@dev".
    • Убрать dev-master отовсюду из зависимостей, выпускать релизы и указывать версии любым из доступных способов.

    И в заключение привожу ссылку на статью с подробным объяснением minimum-stability.
    Ответ написан
    1 комментарий
  • SQL: Какая разница между varchar(200) и varchar(20000) в плане потребления ресурсов?

    @SilverSlice
    "Сохранение значения ‘hello’ требует одинакового пространства и в столбце типа VARCHAR(5), и в столбце типа VARCHAR(200). Есть ли преимущество в использовании более короткого столбца?
    Оказывается, преимущество есть, и большое. Для столбца большей размерности может потребоваться намного больше памяти, поскольку MySQL часто выделяет для внутреннего хранения значений участки памяти фиксированного размера. Это особенно плохо для сортировки или операций, использующих временные таб­лицы в памяти. То же самое происходит при файловых сортировках, использующих временные таб­лицы на диске.
    Наилучшей стратегией является выделение такого объема памяти, который действительно нужен." Источник
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (1)