
☕ CunningFox
11.05.2018
16:57:45
Кто ещё использует компакты?
В подобных кейсах конечно ?
Хотя во всех остальных тоже))) вообще целесообразность у него есть?
@samdark на uwdc будет доклад или пока не утвердили программу?

Google

Alexander
11.05.2018
17:04:43
будет

☕ CunningFox
11.05.2018
17:06:51
Отлично)

Виктор
11.05.2018
17:54:37
В PHP имеется множество альтернатив различных не очень удачных функций. К счастью их понемногу выпиливают.

Vladislav
11.05.2018
18:32:07
Парни, подскажите, есть простой способ не кешировать, если результат запроса null?
Например, есть запрос у юзера
public static function findOneByLogin(string $login): ?self
{
return static::find()
->where(['login' => $login])
->cache(50)
->one();
}
Думал можно через dependency в cache, но или нет или не нашёл, что туда приходит результат. А то сейчас кешируется null, а после создания не берёт данные

Сергей
11.05.2018
18:56:15

Виктор
11.05.2018
18:59:15
Добавить dependency yii\caching\TagDependency и указать тег.
А после создания сделать yii\caching\TagDependency::invalidate по тегу.

Vladislav
11.05.2018
19:15:36

Roman
11.05.2018
19:17:55

Vladislav
11.05.2018
19:27:23
Кэш инвалидируется
сделать что-то вроде этого?
$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
11.05.2018
19:30:18
Зачем в ключ юник? Логин туда засунь

Ruslan
11.05.2018
19:48:59

Google

☕ CunningFox
11.05.2018
19:51:51
Как /en/* на //en.* редиректить?

Ruslan
11.05.2018
19:55:53

☕ CunningFox
11.05.2018
19:59:33
как?
а тебе прям yii2 решение надо? может nginx локейшн напилить? быстрее будет
или там все в динамике?
хотя и nginx в динамике можно ?

Ruslan
11.05.2018
20:01:38

☕ CunningFox
11.05.2018
20:02:16
если ты не знаешь в какой среде разворачивать будут
или если у тебя динамическая карта редиректов на домены и другие адреса

Ruslan
11.05.2018
20:06:11
все уже спать пара, ночные релизы это утомительно. nginx не варинат, тестовые сервева тоже придется тогда настраивать.
Спасибо

Aziz
11.05.2018
20:16:45
Господа, можно ли оптимизровать добавление в бд?
Сейчас 6 строк в бд добавляет ±0.02

Алексей
11.05.2018
20:18:00
batchInsert

Aziz
11.05.2018
20:18:05
Добавляю через ActiveRecord
batchInsert
Я правильно понял, что это тип сразу инсерт массива делает?

Алексей
11.05.2018
20:19:47
да

Aziz
11.05.2018
20:20:09
да
фенкс, щас гляну скорость
да
Вот еще один вопрос, Алексей, у меня массив один из 6 значений, просто я в статье сейчас вижу, что там добавляют 3 массива по 6 значений, ну 3 строки сразу получается
Может я что то не понял? Или все норм и для обычного массива подойдет?

Максим
11.05.2018
20:25:24

Google

Алексей
11.05.2018
20:25:30
Yii::$app->db->createCommand()->batchInsert('имя таблицы',
['поле 1', 'поле 2'],
[
['значение поля 1', 'значение поля 2'],
['значение поля 1', 'значение поля 2'],
['значение поля 1', 'значение поля 2'],
])->execute()
в базу вставятся 3 строки

Aziz
11.05.2018
20:26:29

Максим
11.05.2018
20:26:52

Aziz
11.05.2018
20:30:49
сейчас через батч проверю
yii\db\Command?

Алексей
11.05.2018
20:32:21
не нужно. работает, как я написал

Aziz
11.05.2018
20:34:44
ух тыж
а если createComand()->insert?
будет быстрее?
Yii::$app->db->createCommand()
->insert('messages',
самое быстрое для простых запросов

Алексей
11.05.2018
20:46:30

Aziz
11.05.2018
20:46:51
мне нужно тип 1 массив только добавить
получается 1 строка в бд

Алексей
11.05.2018
20:48:08
Если так, то используй insert. Если нужно несколько строк вставить, то batchInsert

Matviy
11.05.2018
21:33:33
Может кто сталкивался: на хостинге символьные ссылки на папки ассетов создаются, но в них даже по ФТП не перейти, и с веба тоже не видит файлы в них. Хостинг шаред, польский, нихрена не понятно

☕ CunningFox
11.05.2018
21:37:23

Google

Aziz
11.05.2018
21:37:50
))
Я уже тут сплю)

☕ CunningFox
11.05.2018
21:39:54
Одну строку надо добавить или 6? Или 6 это "нагрузочное" и тебе время 0.02 не нравится? Если не нравится это на своей машине или на сервере, если на севере то чем измеряешь? И база локальная или на другом сервере?
И чем 0.02 тебе не нравится? ?

Aziz
11.05.2018
21:41:24
я 1 строку добавляю
да тип дрочу на время)

☕ CunningFox
11.05.2018
21:42:34

Aziz
11.05.2018
21:43:18
я таких подробностей не знаю
на сервере

☕ CunningFox
11.05.2018
21:43:22
Может СУБД затюнить?

Aziz
11.05.2018
21:43:33
Каким образом?

☕ CunningFox
11.05.2018
21:43:45
Если она так отрабатывает? Или может 0.02 это не много?))
субд_нейм тюринг ос_нейм в гугл )
То что по дефолту в конфиге есть для продакшн не подойдёт, но и для большинства прода инсерт в 0.02 это лакшери. Так что не понятно что именно тебе не нравится) если хайлоад отдай девопсам разбираться
Раз сам не знаешь)

Aziz
11.05.2018
21:47:46
кто такие девопсы?

☕ CunningFox
11.05.2018
21:48:12
Значит не хайлоад

Aziz
11.05.2018
21:48:57

Google

☕ CunningFox
11.05.2018
21:48:57
Хочешь за 0.00?))

Aziz
11.05.2018
21:48:59
Пустая

☕ CunningFox
11.05.2018
21:49:21
Значит есть что-то, как минимум запросы для схем/ничего нет и юзера
А у тебя ещё и инсерт
Наверное запомнил))
Проблемы все равно не написал, проблема была в инсерте а сейчас на пустой странице. Тут надо гифку ничерта непонятно

Aziz
11.05.2018
22:28:29
Вот вопрос такой, мы делаем ->find()->where() блаблаблаб, а как посмотреть этот запрос в формате SQL?
Есть ли такая возможность?

Like
11.05.2018
22:29:04

Aziz
11.05.2018
22:29:19
фенкс

Ортем
12.05.2018
03:02:25
Эта хуйня длинная во все группы добавилась айтишные.

Виктор
12.05.2018
04:07:21

Maxim
12.05.2018
07:24:03
Кто ещё использует компакты?
Я использую когда в методе много переменных собралось и я передаю их без изменений в непосредственном выходе
Т.е. где нет [тест => вызов метода или тернарный оператор]

Evgeny
12.05.2018
08:38:38
народ привет
а как можно сделать 2 джоина к одной таблице
к примеру у меня есть объявление.
к объявлению привязана организация и к автору отклика на объявление привязана организация. И это разные организации
$model = $model->leftJoin('organisations', 'organisations.id = tenders.org_id');