Н.Гр.

composer install composer update Какая разница. Отличия и назначение команд

ПРИМЕЧАНИЕ: подразумевается, что вы держите composer.lock в репозитории.

Разница относительно использования файлов composer.json и composer.lock:

deployer Не переключается ветка, код при обновлении -- остаётся старое (php-fpm, нет изменений)

php-fpm Не поддерживает механизм символических ссылок (который активно использует деплоер), и как бы "кеширует" файлы, видя что путь (например var/www/mysite/current/web/index.php) не изменился (ведь именно в таком виде он попадает от сервера fpm-у),
также не изменился и ранее прочитанный и перенесенный в кеш байткода файл (в случае выгрузки новой ветки), а потому здесь потребует перезагрузка php-fpm в конце каждого процесса загрузки (например так).

heidiSQL Поиск столбцов (колонок) по имени -- способы

Forums:

Проблема

Проверить есть ли определённые столбы в таблице. Актуально для таблиц с очень большем числом столбцов.

Решение

Есть, как минимум, два способа:

yii2 Несколько моделей в одной таблице/коллекции -- шаблон проектирования

Можно использовать подход от Александра Макарова: https://github.com/samdark/yii2-cookbook...

Спасибо за ссылку Н.Гр.

UpdateAll() DeleteAll() для mongodb

Эти методы можно определить в базовом классе так:

Ускорение работы приложения, которое выгружает данные на диск, если нет возможности указать использовать другой объём RAM

Предположим что у вас есть приложение/ситуация, в которой (три момента):

  1. По умолчанию работает с оперативной памятью (RAM)
  2. Если оперативной памяти не хватает, то это приложение свопит данные на диск, и потом забирает их с диска, отдавая наружу
  3. Вы не можете почему либо увеличить объём оперативы, используемой этим приложением (например, используемый объём "зашит" внутрь кода программы)

Решение:

yii2 mongodb $cursor->toArray Работает слишком медленно -- как ускорить выборку больших объёмов данных из mongo в проложение

Вызов типа:

$cursor = \Yii::$app->mongodb->createCommand(\Yii::$app->mongodb->getQueryBuilder()->aggregate(
		$collection->name, $pipeline, 
		['allowDiskUse' => true, 'cursor' => ['batchSize' => $this->batchSize]]))->execute();

$resultArray = $cursor->toArray();

-- практически все время при большой выборке потратит на вызов toArray(), и это будет проходить медленно.

Итерируемся сами

Можно итерироваться по курсору, без вызова toArray(), но даже пустая итерация типа:

yii2 mongodb hasmany Как организовать связь

делай поле, котрое будет внешним ключом, массивом

Просто указываем поле, в котором лежит список вложенных id как поле связи.

yii2 Преобразование полей при сохранении и выводе данных на форму из модели

  • Можно использовать filter (фильтры)- в одну сторону.
  • Алтернатива - beforeSave/afterFind и сеттер/геттер на виртуальное поле.

deployer Определить какие ветки развернуты, кто сделал последний коммит и его хэш dep br, cur

Чтобы научить деплоер определять имя развернутой на сервере (каждом настроенном в деплоере) Git ветки и того, кто в неё последний раз коммитил, добавьте в ваш deploy.php (вашего проекта) два таких задания для деплоера:

yii2 filter в rules Отрабатывает даже для пустых значений -- почему-то Как исправить skipOnEmpty. Валидация модели

Инструкция как тут запускается, даже если значение lab_id вообще не приходит от формы. -- то есть в mongodb придётся таки поля иметь выставленными в null. -- для реляционных же баз это логично. Поле всегда есть в кортеже, раз оно объявлено в таблице.

Решение

Используйте

'skipOnEmpty' => true

например:

Pages

Subscribe to RSS - Н.Гр.