☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Хочется ему так
Это не рефакторится
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Roman
Шторм
Эээ. А может лучше Настя? ©
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Всех этих ошибок можно было избежать, просто какой-то наверное есть профит использовать строковые константы и функции вместо нативного создания массива
Roman
Т. Е. Phpdoc
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Т. Е. Phpdoc
Он то без условно должен быть)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А если его нету? 🤔
Вопрос все равно останется в силе, зачем?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Усложнять жизнь себе и другим
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ты ответил 😄
Anonymous
Спросил
Он игнорирует тебя 🤔
Anonymous
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Anonymous
Ещё не прочел
Нет, просто ты ему не понравился 🤔
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Просто может там хайлоад а компакт работает быстрее лучше, не выделяет память при вызове или какие-нибудь такие спички. И поэтому все чаще я вижу компакты
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Люди намеренно усложняют себе и проекту жизнь, ловя примитивные баги, и все ради оптимизации или чего-то такого. А потом получают где-то профит и я просто джун который этого не понимает
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Кто ещё использует компакты?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
В подобных кейсах конечно 😂
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Хотя во всех остальных тоже))) вообще целесообразность у него есть?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
@samdark на uwdc будет доклад или пока не утвердили программу?
Alexander
будет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Отлично)
Виктор
Просто может там хайлоад а компакт работает быстрее лучше, не выделяет память при вызове или какие-нибудь такие спички. И поэтому все чаще я вижу компакты
Открою секрет, в PHP работает write-only принцип. Так что обычные присвоения добавляют лишь указатель на ячуйку памяти - то есть выделения под данные не будет.
Виктор
В PHP имеется множество альтернатив различных не очень удачных функций. К счастью их понемногу выпиливают.
Vladislav
Парни, подскажите, есть простой способ не кешировать, если результат запроса null? Например, есть запрос у юзера public static function findOneByLogin(string $login): ?self { return static::find() ->where(['login' => $login]) ->cache(50) ->one(); } Думал можно через dependency в cache, но или нет или не нашёл, что туда приходит результат. А то сейчас кешируется null, а после создания не берёт данные
Виктор
Добавить dependency yii\caching\TagDependency и указать тег. А после создания сделать yii\caching\TagDependency::invalidate по тегу.
Vladislav
Вриант в лоб: отнаследоваться и добавить проверку в метод cache
На счет этого думал, вроде нормальный вариант
Roman
И как это поможет?
Кэш инвалидируется
Vladislav
Кэш инвалидируется
сделать что-то вроде этого? $key = 'query_' . uniqid(); $result = static::find() ->where(['login' => $login]) ->cache(50, new TagDependency($key)) ->one(); if ($result === null) { TagDependency::invalidate(Yii::$app->cache,$key); } return $result; Можно, но кода много и лишняя работа по сохранению/удалению кэша
Roman
Зачем в ключ юник? Логин туда засунь
Ruslan
Что то такое в yii можно как то сотворить? Чтоб все адреса /shop/* переадресовались на другой домен
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
как?
а тебе прям yii2 решение надо? может nginx локейшн напилить? быстрее будет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
или там все в динамике?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
хотя и nginx в динамике можно 😄
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
да, тоже так подумал, и делаю на nginx
да, ну или как вариант такое https://github.com/yiisoft/yii2/issues/7670#issuecomment-119593255
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если ты не знаешь в какой среде разворачивать будут
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
или если у тебя динамическая карта редиректов на домены и другие адреса
Ruslan
все уже спать пара, ночные релизы это утомительно. nginx не варинат, тестовые сервева тоже придется тогда настраивать. Спасибо
Витебск 01
Господа, можно ли оптимизровать добавление в бд?
Витебск 01
Сейчас 6 строк в бд добавляет ±0.02
Алексей
batchInsert
Витебск 01
Добавляю через ActiveRecord
Витебск 01
batchInsert
Я правильно понял, что это тип сразу инсерт массива делает?
Алексей
да
Витебск 01
да
фенкс, щас гляну скорость
Витебск 01
да
Вот еще один вопрос, Алексей, у меня массив один из 6 значений, просто я в статье сейчас вижу, что там добавляют 3 массива по 6 значений, ну 3 строки сразу получается
Витебск 01
Может я что то не понял? Или все норм и для обычного массива подойдет?
Максим
Может я что то не понял? Или все норм и для обычного массива подойдет?
Через конструктор запросов быстрее будет, чем через AR
Алексей
Yii::$app->db->createCommand()->batchInsert('имя таблицы', ['поле 1', 'поле 2'], [ ['значение поля 1', 'значение поля 2'], ['значение поля 1', 'значение поля 2'], ['значение поля 1', 'значение поля 2'], ])->execute()
Алексей
в базу вставятся 3 строки
Максим
обычных sql тип?
Ну вот что выше, createCommand
Витебск 01
сейчас через батч проверю
Витебск 01
yii\db\Command?
Алексей
не нужно. работает, как я написал
Витебск 01
ух тыж
Витебск 01
а если createComand()->insert? будет быстрее?
Витебск 01
Yii::$app->db->createCommand() ->insert('messages',
Витебск 01
самое быстрое для простых запросов
Витебск 01
мне нужно тип 1 массив только добавить
Витебск 01
получается 1 строка в бд
Алексей
Если так, то используй insert. Если нужно несколько строк вставить, то batchInsert
Good
Может кто сталкивался: на хостинге символьные ссылки на папки ассетов создаются, но в них даже по ФТП не перейти, и с веба тоже не видит файлы в них. Хостинг шаред, польский, нихрена не понятно
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Витебск 01
))