@laravel_pro

Страница 254 из 2014
Владимир
20.12.2016
06:34:22
Именно так

Alexander
20.12.2016
06:35:25
- какая у вас почта? - вася, пес смедящий, мэил ру

норм )

Google
VSKut
20.12.2016
07:12:56
А нормальных источников нет?

http://main-rutor.org/torrent/537606/frejmvork-laravel-s-nulja-do-profi-videokurs-2016-pcrec/

Beeyev
20.12.2016
07:48:27
чуваки

ай нид хелп

есть таблицы в SQL с настроенными справочниками по внешним ключам

все как надо

тут например в двух столбцах один справочник станций, а для двух других справочник организаций

как правильно в ларавеле дергать инфу из этой таблицы, чтобы сразу подтянулись все данные из справочников

?*

Alexey
20.12.2016
07:50:48
Видимо мени ту мени

Golib
20.12.2016
07:51:47
one to many?

Beeyev
20.12.2016
07:51:50
нет,у меня получается два и больше столбцов ссылаются на один справочник

в обычном варианте это просто селект из двух - трех таблиц

Google
Beeyev
20.12.2016
07:52:23
где типа ид + ид из др таблицы

Alexey
20.12.2016
07:59:54
Было бы супер конечно увидеть всю схему что куда и зачем)

Beeyev
20.12.2016
08:02:22
в простом виде

это две таблицы

одна содержит справочник станций

вторая основные данные, где есть еще два поля. ИД станции отправления и ИД станции получателя

нужно дергать основные данные пачкой из 50 строк например, и чтобы в запросе вместо айдишников из этих двух столбцов, были имена станций из справочника

Vladimir
20.12.2016
08:50:07
А в чем собственно говоря проблема?

У вас стандартная связь

Пример -

public function engineEntity() { return $this->belongsTo(RefCarEngine::class, 'engine_id'); }

RefCarEngine - модель справочника, например станции. engine_id меняете на shipper_int_id

и так для 4 случаев пишите 4 связи. связи эти пишите в основную модель

потом в контроллере сделаете просто find или findOne по главной модели - дальше можно обращаться к связям как к атрибутам объекта

можете добавить в основной модели вот такие обвязки, чтобы проще было во view доставать, особенно если в нескольких местах нужно доставать

public function getEngineAttribute() { return ($this->engine_id and $this->engineEntity) ? $this->engineEntity->name : null; }

sofar
20.12.2016
09:03:54
Привет, чат

Хотел поинтересоваться: а кто-нибудь делает свои фасады в ларке?

Если да, то для чего?

Я просто пытаюсь понять практику их применения, по сути же получается хардкод

Google
sofar
20.12.2016
09:08:29
Да, если потребуется в сервис провайдере можно подменить то, что будет отдаваться, но это уже совсем костыль какой-то получается

Vladimir
20.12.2016
09:09:35
Фасады не пишем у себя, но по факту это просто замена DI. DI активно используем в phalcon и очень рады.

Фасады в ларе просто для сокращения синтаксиса, но даже в доке их не очень советуют использовать

Sergey
20.12.2016
09:11:07
Хотел поинтересоваться: а кто-нибудь делает свои фасады в ларке?
Насколько мне кажется их создали,чтобы упростить DI для новичков. То есть ты в любом месте пишешь фасад и используешь его статик методы. Без всяких "усложнений" по добавлению по получению объекта через DI. Правда нарушая при этом SOLID и делая проблемным тестирование

Фасады в ларе просто для сокращения синтаксиса, но даже в доке их не очень советуют использовать
Кстати, поражает, что в доке их не рекомендуют использовать но в примерах только они

sofar
20.12.2016
09:11:55
Вот, проблема в тестировании, да

Спасибо, убедился в своих подозрениях

Vladimir
20.12.2016
09:13:24
вообще в той же доке про это как раз информация

их можно тестировать и тд нормально

Sergey
20.12.2016
09:13:39
тем более фасады в несколько кликов (или клик + поиск) можно заменить на DI :)

Vladimir
20.12.2016
09:13:45
просто там предостережение - классы не должны быть большими

https://laravel.com/docs/5.3/facades

Sergey
20.12.2016
09:14:07
их можно тестировать и тд нормально
нельзя. из-за статиков идут очень большие утечки памяти и не всегда после теста Application чистится правильно

И дело не в классах. дело именно в Application

Кстати, в тестах ларавель сам по себе течет (5.2 точно) по 7 метров на тест у нас было

голая ларавелька

Поэтому лучше обойтись без фасадов (тем более без IDE Helper подсказки в шторме не работают)

Vladimir
20.12.2016
09:16:56
Пока тут нормальные вопросы-ответы пошли... у меня такой вопрос. Как вы тестируете нагрузочно свои проекты? Больше даже интересует анализ. Например, вам нужно спрогнозировать какую нагрузку сможет выдержать ваш текущий проект. Какими методами/инструментами пользуетесь и что почитать?

Sergey
20.12.2016
09:17:33
Хороший вопрос, тоже интересно кто чем делал. я только ab гонял

с xhprof

Google
Sergey
20.12.2016
09:18:14
В целом, в нем можно довольно сложные схемы описывать а не просто один роут дергать.

Vladimir
20.12.2016
09:20:30
Пока все, что я придумал - это выделить самое узкое место (страница с максимальной нагрузкой на базу и тд) и пройтись по этому месту одним из сервисов, которые генерируют активных пользователей + посещаемость. Ну по хорошему перед этим еще желательно насидить данных достаточно. Но хотелось бы знать, как это "по-взрослому" делают люди

Sergey
20.12.2016
09:22:12
лучше разноплановые запросы генерировать, причем чем похожее будет профиль на реальную нагрузку, тем будет лучше

sofar
20.12.2016
09:22:16
Не знаю как по-взрослому, у нас когда было нагрузочное тестирование пользовались Apache JMeter

Sergey
20.12.2016
09:22:30
горлышки могут быть не только в бд. в файловой системе той же самое

sofar
20.12.2016
09:22:31
Это весь мой опыт нагрузочного тестирования

Sergey
20.12.2016
09:22:38
нагрузка по памяти (Какой-то неоптимальный кусок кода)

Admin
ERROR: S client not available

Sergey
20.12.2016
09:23:01
плюс еще кэши могут сбивать. Тоже считаю, что нагрузочное тестирвание с ними надо делать

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

ведь всегда лень уникальные данные придумывать :) а иногда это и вообще очень сложно сделать

sofar
20.12.2016
09:25:02
У нас на проекте для этого был добавлен параметр в запрос, для того, чтобы кеш не использовался

Вообще он был добавлен изначально для дургих целей, как раз для пользовательских, но тут пригодилось очень кстати

Vladimir
20.12.2016
09:26:35
хмм. ман бы какой-нибудь, статейку. если встретите что-нибудь такое - делитесь, пожалуйста)

Sergey
20.12.2016
09:28:42
А blackfire.io ты не пробовал?
неа, у меня задача проще была. мне нужно было сделать очень быстрый ресайз картинок

Google
Sergey
20.12.2016
09:28:50
и это было узкое место.

вот и гоняли под нагрузкой ресайз одной картинки (с кэшем) и параллельно многих

sofar
20.12.2016
09:29:06
Но он крайне необходим был в короткие сроки, поэтому приняли решение пока сделать так

Sergey
20.12.2016
09:29:27
sofar
20.12.2016
09:29:52
Это да

Vladimir
20.12.2016
09:32:06
А blackfire.io ты не пробовал?
а вы юзали? выглядит не плохо вроде

sofar
20.12.2016
09:33:34
Нет, но вот как раз слышал хорошее о нем

Но представления не имею, честно

Сотрудник из предыдущего места работы очень восторженно рассказывал, но я ничего не запомнил

Vladimir
20.12.2016
09:38:19
Запишу себе, спасибо)

VSKut
20.12.2016
11:54:15
Через что принимаете оплату в битках? В идеале нужно просто пополнять баланс аккаунта, который в $

Wild
20.12.2016
12:53:07
Предположим что я делаю выборку $data = Notify::where('group_id', '=', $id);

Могу ли я теперь из data какими то средствами получить информацию?

например сделать выборку через where из самой переменной?

Чтобы не делать лишних запросов к бд?

А то делать поочередно 5 запросов

чтобы получить 5 count значений

как то не особо

VSKut
20.12.2016
12:57:44
->where()->where

Страница 254 из 2014