These are chat archives for LaravelRUS/chat

2nd
Nov 2016
Anton Kartsev
@bigperson
Nov 02 2016 07:46
Всем привет. Посоветуйте что лучше использовать для отправки post запросов к api стороннего сервера? Всегда использовал Curl, но в ларке может есть более удобные инструменты?
KarmaBot
@KarmaBot
Nov 02 2016 07:46
@bigperson, привет, как настроение?
Andrey Degtyaruk
@hlogeon
Nov 02 2016 08:12

@bigperson
Guzzle\Http

https://github.com/guzzle/guzzle

Soprun Vladislav
@vlsoprun
Nov 02 2016 08:23
Здорова мужики!
Anton Vorontsov
@symbios-zi
Nov 02 2016 08:24
@vlsoprun Хола
Anton Kartsev
@bigperson
Nov 02 2016 08:36
@hlogeon спасибо
KarmaBot
@KarmaBot
Nov 02 2016 08:36
Спасибо (+1) для @hlogeon принято! Текущая карма +8.
NelinD
@NelinD
Nov 02 2016 11:50
Кто-нибудь использовал https://github.com/Vinelab/minion ?
Anton Kartsev
@bigperson
Nov 02 2016 12:39
Подскажите есть какой-нибудь метод типа createMany($array), чтоб из массива разом множество моделей сохранить?
Роман Сохарев
@greabock
Nov 02 2016 13:13
@bigperson
MyModel::insert($array);
однако следует понимать, что это не тоже самое, что create
не отработают события created/creating и так далее
вообще, таких кейсов следует избегать, по-возможности. Так как они ломают бизнес-логику
Anton Kartsev
@bigperson
Nov 02 2016 13:16
@greabock спасибо. тогда проще циклом.
KarmaBot
@KarmaBot
Nov 02 2016 13:16
Спасибо (+1) для @greabock принято! Текущая карма +449.
Роман Сохарев
@greabock
Nov 02 2016 13:18
@bigperson :+1:
temaa
@temaa
Nov 02 2016 13:51
Всем привет, можно ли установить редирект для группы роутов?
KarmaBot
@KarmaBot
Nov 02 2016 13:51
@temaa, ну рассказывай. Как жизнь? :)
Ваня Devium
@webdevium
Nov 02 2016 13:52
естественно
temaa
@temaa
Nov 02 2016 13:52
без htaccess, мам, пап и кредитов, а средствами стандартного роута?
Ваня Devium
@webdevium
Nov 02 2016 13:54
небойсь post хочешь редиректить?
Andrey Degtyaruk
@hlogeon
Nov 02 2016 13:58
@temaa
Middleware можно заюзать, например
temaa
@temaa
Nov 02 2016 14:01
@webdevium нет, просто группа гет роутов с префиксом
Andrey Degtyaruk
@hlogeon
Nov 02 2016 14:03
@temaa
На группу роутов можно навешивать Middleware
В дефолтной поставке Laravel есть пример использования Middleware для редиректа - RedirectIfAuthenticated
temaa
@temaa
Nov 02 2016 14:04
У меня такая реалиация, как-то бы это решить внутри условия т.к. группа задается динамически
Route::group(array('prefix' => \App\Helpers\Helper::getLanguage()->title), function () {
    if (\App\Helpers\Helper::getLanguage()->title == 'ru') {
        Route::get('/', function() {
            return Redirect::to('/', 301);
        });
    }
    Route::get('/', 'IndexController@getIndex');
temaa
@temaa
Nov 02 2016 14:07
@hlogeon спасибо
KarmaBot
@KarmaBot
Nov 02 2016 14:07
Спасибо (+1) для @hlogeon принято! Текущая карма +9.
alexspi
@alexspi
Nov 02 2016 14:45
народ как-то в примерах встречал что токен можно(нужно) в хедере прописать <meta name="_token" content="{!! csrf_token() !!}"/> здаётся мне нифига не айс решение, кто как думает?
Ваня Devium
@webdevium
Nov 02 2016 14:45
@alexspi а какая разница где этот токен прописан то?))))
alexspi
@alexspi
Nov 02 2016 14:47
@webdevium просто он сразу в коде виден, хотя я ещё глубоко безопасность не копал
Ваня Devium
@webdevium
Nov 02 2016 14:47
@alexspi дык, он постоянно будет виден. Будь то форма, или head документа...
Andrey Degtyaruk
@hlogeon
Nov 02 2016 14:53
@alexspi
Вообще вопрос, скорее предпочтений. ИМХО, в HEADER это куда более подходящий по семантике вариант, потому что к телу запроса csrf токен отношения смыслового никакого не имеет
alexspi
@alexspi
Nov 02 2016 14:57
@hlogeon вот это меня и интересовало
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:10
Люди добрые, а кто что использует для непрерывной интеграции? Сижу второй день в раздумьях по поводу выбора инструмента. Jenkins что-то конфигурировать надоело.
Laravel и ReactJS в проекте, Service Oriented Architecture с сервисами внутри докер-контейнеров
Dave
@aios
Nov 02 2016 15:11
@hlogeon CircleCI пробовал?
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:12
@aios
Не пробовал, как раз доки читаю
Dave
@aios
Nov 02 2016 15:13
@hlogeon ничешная такая)
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:20
@aios
Ну цены у них тоже ничего такие
Nuzsk
@Nuzsk
Nov 02 2016 15:21
@hlogeon https://travis-ci.org/ вот еще вариант
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:25
@Nuzsk
Я насколько понял с их сайта, у них только с GitHub интеграция есть
Nuzsk
@Nuzsk
Nov 02 2016 15:25
@hlogeon в смысле?
Dave
@aios
Nov 02 2016 15:28
@Nuzsk ему докер нужен
@hlogeon ты ведь с консулом подружился?
или что то другое для менеджинга контейнеров юзаешь?
Nuzsk
@Nuzsk
Nov 02 2016 15:29
@aios а при чем тут докер?
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:29
@Nuzsk
В смысле мне нужно автоматически запускать процесс сборки и деплоя при создании пулл-реквестов.
Travis CI currently does not support repositories hosted on Bitbucket, Gitlab or Atlassian Stash.
@aios
Нет, пока ничего еще не пользую, проект новый совсем, только продумываем инфраструктуру. Но у нас Amazon WS, а там у EC2 вроде бы все есть для менеджмента контейнеров из коробки
Потому, собственно и решил в этот раз не Jenkins для CI юзать, что возможность есть наконец-то это сделать, ничего не поломав
Nuzsk
@Nuzsk
Nov 02 2016 15:34
@hlogeon я сейчас погуглил, реально отказываются все кроме гитхаба поддерживать
в чем причина - загадка
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:35
@Nuzsk
Мне тоже не очень понятно, вроде бы веб-хуки везде одинаково работают...
Nuzsk
@Nuzsk
Nov 02 2016 15:36
@hlogeon с проверкой по расписанию - даже хуки не нужны
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:37
@Nuzsk
Ну мне по расписанию не очень нравится, когда есть всего 2 кейса, в которых нужно отрабатывать: создание пулл-реквеста и merge pull request
А никто не пробовал вот это добро?
https://codeship.com/
Vadym Petryshyn
@h1rurg
Nov 02 2016 15:51
здравствуйте, есть некий сервис typeform там типо создаешь формы в админке, дальше фреймом можно вставлять себе на сайт, после того как заполнил форму, в настройках можно указать на какой адрес улетит пост запрос с данными с формы. Я по этому запросу ловлю данные и ложу их в базу. Вопрос, как мне сделать редирект на другую страницу, после того как я обработал этот аякс пост запрос. Ни у кого нету идей?
KarmaBot
@KarmaBot
Nov 02 2016 15:51
@h1rurg, ну рассказывай. Как жизнь? :)
Ваня Devium
@webdevium
Nov 02 2016 15:52
@h1rurg верни с сервака куда тебе уйти, и сделай window.location = 'blablabla';
Vadym Petryshyn
@h1rurg
Nov 02 2016 15:56
@webdevium типа вот так?
'Route::post('/', function() {
echo "<script>console.log(1)</script>";
});'
Ваня Devium
@webdevium
Nov 02 2016 15:56
@h1rurg фу. Нет конечно.
Vadym Petryshyn
@h1rurg
Nov 02 2016 15:56
@webdevium а как помоги)
Ваня Devium
@webdevium
Nov 02 2016 15:56
@h1rurg ты с клиента как на сервер обращаешься?
@h1rurg jquery всякие, ангуляры, не?
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:57
@webdevium
Я боюсь, что это делает вовсе не он)
Vadym Petryshyn
@h1rurg
Nov 02 2016 15:57
так это не я обращаюсь
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:57
@webdevium
Там сервис за него все сгенерил
Vadym Petryshyn
@h1rurg
Nov 02 2016 15:57
если бы...
@hlogeon да
Ваня Devium
@webdevium
Nov 02 2016 15:58
ухтыж, опять напридумали. Ну тогда давай заново, человекоподобным языком кто куда обращается
Andrey Degtyaruk
@hlogeon
Nov 02 2016 15:58
@webdevium
Человек хочет отредиректить POST-запрос, отсылаемый по AJAX, да так, что бы не писать клиентский код
Ваня Devium
@webdevium
Nov 02 2016 16:00
@h1rurg короче, если я правильно понял, ты в контроллере можешь хоть тысячу редиректов сделать. Если об этом не знает ajax - ему будет пофиг на это все :)
Vadym Petryshyn
@h1rurg
Nov 02 2016 16:00
@webdevium https://www.typeform.com/ вот сервис, для примера ты прям у них в админке можешь сделать форму, указать в настройках на какую ссылку после заполнения и отправки, они тебе отправят ajax post query с данными формы которую ты заполнил в json формате
Ваня Devium
@webdevium
Nov 02 2016 16:00
вот такая красота
Vadym Petryshyn
@h1rurg
Nov 02 2016 16:00
возьми открой страницу в ларе любую, сделать обработку какого то пост запроса
кинь на него с Postmana запрос
Vadym Petryshyn
@h1rurg
Nov 02 2016 16:01
и сделай так что бы страница перезагрузилась
@hlogeon во блин, спасибо тебе человек, как я этого не увидел
я что то прохлопал эту страницу
в доках
Andrey Degtyaruk
@hlogeon
Nov 02 2016 16:02
@h1rurg
Бывает
Anton Kartsev
@bigperson
Nov 02 2016 16:28
Никто не подскажет где можно почитать про оптимизацию запросов. А то страница получилась на 1400 запросов. Грузит 4 секунды на локалке
Kirill Nesmeyanov
@SerafimArts
Nov 02 2016 16:29
:fire: 1400 :fire:
Ваня Devium
@webdevium
Nov 02 2016 16:29
это ужас какой-то
Kirill Nesmeyanov
@SerafimArts
Nov 02 2016 16:29
ну кажется 4 секунды для 1400 запросов - очень быстро
Ваня Devium
@webdevium
Nov 02 2016 16:30
стопудово можно ускорить\упростить\уптимизировать
JhaoDa
@jhaoda
Nov 02 2016 16:30
@bigperson ты про жадную загрузку не забыл?
Anton Kartsev
@bigperson
Nov 02 2016 16:30
1388 statements were executed, 31 of which were duplicated
@jhaoda сейчас попробую спасибо
KarmaBot
@KarmaBot
Nov 02 2016 16:32
Спасибо (+1) для @jhaoda принято! Текущая карма +1280.
Anton Kartsev
@bigperson
Nov 02 2016 16:36
на время загрузки особо не повлияло, но число запросов уменьшилось до 380
183 templates were rendered может как-то влиять на скорость?
Kirill Nesmeyanov
@SerafimArts
Nov 02 2016 16:43
@bigperson считай нормой 10 запросов на страницу
Ваня Devium
@webdevium
Nov 02 2016 16:43
@bigperson 5 лучше
Kirill Nesmeyanov
@SerafimArts
Nov 02 2016 16:43
всё что больше\меньше на 5-10, в пределах погрешностей
@webdevium ну или так, да
если выходит за пределы этой нормы - значит всё очень плохо
Anton Kartsev
@bigperson
Nov 02 2016 16:48
@SerafimArts @webdevium Страница со списком заказов за 1-2 недели. У модели заказа около 10 связанных моделей, почти всю информацию из связанных моделей нужно выводить на странице со списком.
Ваня Devium
@webdevium
Nov 02 2016 16:49
@bigperson А ты как вытягиваешь? Foreach для каждого заказа?
@bigperson типа foreach($orders as $order) { $products = $order->products; } так?
Anton Kartsev
@bigperson
Nov 02 2016 16:51
@webdevium да, если связь один ко многим и подобные
Ваня Devium
@webdevium
Nov 02 2016 16:51
@bigperson дык, переделывай)))
JhaoDa
@jhaoda
Nov 02 2016 16:51
@webdevium почему?
Ваня Devium
@webdevium
Nov 02 2016 16:51
@bigperson $orders = Order::with(Product::class)->get()
@jhaoda чтоб сразу махом максимум вытянуть с базы, не?
Ваня Devium
@webdevium
Nov 02 2016 16:54
@jhaoda сорры, профукал этот момент
Kirill Nesmeyanov
@SerafimArts
Nov 02 2016 16:57
@bigperson для этого и придумали аякс =)
Роман Сохарев
@greabock
Nov 02 2016 17:03

У модели заказа около 10 связанных моделей

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

Anton Kartsev
@bigperson
Nov 02 2016 17:13
@greabock еслиб так все просто было: заказ - товары (множество), клиент (контакты - множество), пункт самовывоза филиал (родительская компания, город), сатус. У каждой модели еще куча своих связей, перечислил лишь часть того, что требуется отображать
JhaoDa
@jhaoda
Nov 02 2016 17:16
@bigperson текущий статус можно и в заказ дублировать. Нужен только он — минус одна связь, нужен список с датами и операторами — тянем связь
Dave
@aios
Nov 02 2016 17:24
Ребят кто остался кто юзает сову и вкатил последнее обновление?
Кнопки редактирования пропали - поможет кто вернуть?
Anton Kartsev
@bigperson
Nov 02 2016 17:38
@jhaoda спасибо. по статусу уже думал об этом. Разом подтянуть все статусы и по id подставлять нужный. Связь one-to-many. Товары можно подтягивать ajax'ом, но придется хранить их количество в заказе и обновлять при изменении. С филиалами и с городами можно поступить также как со статусами, пока их не много.
KarmaBot
@KarmaBot
Nov 02 2016 17:38
Спасибо (+1) для @jhaoda принято! Текущая карма +1281.
Anton Vorontsov
@symbios-zi
Nov 02 2016 18:29
У меня тоже у заказа 11 связей, но запросов около 30 на странице.
@greabock не всегда все получается закинуть в заказа. Это порождает свои проблемы. Eloquent сам делает запросы без join когда используешь жадную загрузку и плодит запросы. Но у меня получилось и 30 запросами поддерживать производительность
Anton Kartsev
@bigperson
Nov 02 2016 19:18
@symbios-zi как получилось то?
Anton Vorontsov
@symbios-zi
Nov 02 2016 19:19
@bigperson дак нормализовалась бд. Я хз как можно получить 380 запросов.
Нормализована*
@bigperson у тебя точно все через жадную загрузку грузится?
JhaoDa
@jhaoda
Nov 02 2016 19:25
Видимо, не всё, по падение с 1400 до 380 это уже хорошо
Anton Kartsev
@bigperson
Nov 02 2016 19:27
Да. Сделал все через жадную. На 1000 запросов меньше стало. Но у меня есть конструкции вида $order->client->contacts() или допустим можно запросить $order->office->company->users() и подобные. Полагаю они создают основную массу запросов
Anton Vorontsov
@symbios-zi
Nov 02 2016 19:28
@bigperson можно через with подгружать через точку связанные модели
Anton Kartsev
@bigperson
Nov 02 2016 19:32
@symbios-zi спасибо завтра попробую
KarmaBot
@KarmaBot
Nov 02 2016 19:32
Спасибо (+1) для @symbios-zi принято! Текущая карма +188.
Anton Vorontsov
@symbios-zi
Nov 02 2016 19:33
@bigperson напиши мне завтра в личку, попробую помочь. Сам через все прошел это
Anton Vorontsov
@symbios-zi
Nov 02 2016 20:28
@Hunternnm искренне рад за тебя, что смог отбиться от битрикс! Поздравляю )))
jdmpnn
@jdmpnn
Nov 02 2016 22:11
@bigperson https://laravel.com/docs/5.2/eloquent-relationships#has-many-through можно попробовать - "жадная загрузка на 2 уровня" так сказать