
NVlad
19.03.2018
08:46:45
по частям разбирай

Артур
19.03.2018
08:46:49
прайс загружается на сервак

Максим
19.03.2018
08:46:51
оптимизировать скрипт или добавить памяти. я на 512 мегабайт озу 100мб файлы гонял

Артур
19.03.2018
08:46:56

Google

Ad.x ??
19.03.2018
08:47:14

Артур
19.03.2018
08:47:15

Ad.x ??
19.03.2018
08:47:28
твои тз неинформативны вообще

Артур
19.03.2018
08:48:04
https://pastebin.com/zLL5UJdS
вот контроллер

Максим
19.03.2018
08:49:16
и шо нам даст тот контроллер? мы не будем у себя поднимать его и файлы им парсить, чтобы найти узкое место)
где то память течет, надо это устранить

Ad.x ??
19.03.2018
08:50:18
ты все файлы грузишь в память. Можно сделать подругому
http://php.net/manual/ru/splfileobject.fgetcsv.php
массив файлов также делаешь через форычь, но открываешь через эту штуку
//со всех файлов получаем единный массив со всеми нужными нам данными
$dataMas = [];
foreach($params['files'] as $csv) {
if (!is_file($csv)) {
continue;
}
$file = new SplFileObject($csv);

Google

Ad.x ??
19.03.2018
08:54:14
как-то так

Артур
19.03.2018
08:55:30

Ad.x ??
19.03.2018
08:56:24
60-я строчка. не обязательно грузить модель, чтоб проверить есть ли она в базе. можно чота типа:
$inWarehouse = WarehouseProduct::find()->where(['product_id' => $product->id, 'warehouse_id' => 1])->exists();
но это мелочи. основной косяк с файлами в массиве

Артур
19.03.2018
08:57:28
Creating default object from empty value
на вот эту строку
$house_product->in_warehouse = (float)$dat['quantity'];
хотя количество есть
и столбик тоже в базе есть
пришлось поставить условие, что бы заработало(
с теме же параметрами ?

Ad.x ??
19.03.2018
09:00:01
понял. не доглядел значит

Максим
19.03.2018
09:00:44

Ad.x ??
19.03.2018
09:00:53
ни к чему грузить все сразу в память

Максим
19.03.2018
09:01:41
CSV файлы можно и построчно парсить. первую строку как заголовки таблицы спарсил, а потом по 50-100 строк фигачишь и подчищаешь хвосты, и памяти будет хватать даже на гигабайтные файлы

Ad.x ??
19.03.2018
09:02:20

Google

Maxim
19.03.2018
09:04:19

Артур
19.03.2018
09:05:00
ведь в браузере 30 сек
вроде только

Ad.x ??
19.03.2018
09:05:46
будет
если и вправду долго работает

Maxim
19.03.2018
09:06:18

Ad.x ??
19.03.2018
09:06:30
но это не зависит от того все файлы ты грузишь в файл или построчно читаешь
тока больше кода )

Maxim
19.03.2018
09:08:26

Ad.x ??
19.03.2018
09:08:37
я пробовал. одно и тоже
и по времени сопоставимо
не забудь тока локнуть файл на запись перед обработкой )

Oligarch
19.03.2018
09:32:33
если кто вакансии найдет на юии2 москва или удаленно - кидайте

Evgeny
19.03.2018
09:33:59
https://t.me/yiijobs

Maks
19.03.2018
10:12:31
Ребят привет, а по вопросу vps может кто подсказать, переодически ловлю: MySQL server has gone away;
Хотя предпосылок по идеи к этому быть не должно

Максим
19.03.2018
10:13:46
логи сервера надо читать однозначно

Google

SiZE
19.03.2018
10:14:26

first
19.03.2018
10:32:54
Ребзя, всем привет.
Может кто подсказать, как накатить миграции на изменение тип столбца.
$this->alterColumn('table','column',$this->string());
Сейчас в третьем аргументе стоит varchar тип, как изменить на longtext?
Заранее благодарю

SiZE
19.03.2018
10:44:49

Ruslan
19.03.2018
10:45:26

first
19.03.2018
10:57:01
затупил :D
благодарю

Konstantin
19.03.2018
11:09:17

Ruslan
19.03.2018
11:09:38
ну дык и json раньше не было)

Антон
19.03.2018
11:30:41
всем привет.
кто-нибудь делал wizard form? как их грамотно сделать?)
к примеру, форма "выберите, страну", жмакаем "далее", выводится другая форма "выберите город", причем список городов зависит от страны и т.д.

Admin
ERROR: S client not available

mrG1K
19.03.2018
11:34:10
dependency dropdown есть такие.. если хочешь на одной странице

Антон
19.03.2018
11:34:27
знаю, не подходит
про страну и город - это я на ходу придумал, чтобы суть понятна была)

Максим
19.03.2018
11:36:15

SiZE
19.03.2018
11:36:18
ну и желательно через сервисный слой это все залепить

Антон
19.03.2018
11:37:27

SiZE
19.03.2018
11:38:22

Антон
19.03.2018
11:38:51
не) это понятно)) я к тому, что тупо link на следующий action?)

Google

SiZE
19.03.2018
11:39:13
в котором на соновании полученных данных ты будешь выводить следующую форму или возвращать ошибку

Антон
19.03.2018
11:43:58
public fucntion actionIndex()
{
$model = new Model();
if ($model-load(Yii::$app->request->post()) {
switch ($model->step) {
case 1:
return $this->stepOne($model);
case 2:
return $this->stepTwo($model);
}
}
}
к примеру
правильно понял твою мысль?

Артур
19.03.2018
11:49:45
Class 'app\modules\data\controllers\SplFileObject' not found
на чистом пхп норм работает(
SplFileObject

Максим
19.03.2018
11:50:00
обратный слеш перед классом поставь

Артур
19.03.2018
11:50:05
понял)

Vladislav
19.03.2018
12:25:29
Всем привет. Не подскажите как в GridView ActionColumn добаить ещё один экшен?

Ad.x ??
19.03.2018
12:27:01
на стековерфлоу дохуя примеров
потрудись поискать плс

Максим
19.03.2018
12:28:06

Vladislav
19.03.2018
12:29:56
@kohone благодарю
@AlDexor не благодарю =D

Артур
19.03.2018
12:41:55
такс снова я с csv )
https://pastebin.com/dvhCQF2R
вот мой код)
у меня скрипт падает ( 504 ошибка вылетает
по тайму(