@laravel_pro

Страница 1416 из 2014
Edgar
29.05.2018
06:20:36
@perin

Subb98
29.05.2018
06:22:36
"Выжми из бизнеса всё", это про нашу бюрократию и налоги. А все эти книжки, так, ерунда маркетинговая )

Антон
29.05.2018
06:25:35
я этим практикам следовал еще с версии 5.0

Google
Антон
29.05.2018
06:27:03
другая сторона медали: делать запросы к елке в контроллерах. Эта привычка побудит делать контроллеры по 2500к если проект будет расти. Технический долг начнет расти быстро

это как теория разбитых окон если кто слышал

я уже такое видел много раз. видел один контроллер в 4 тыс строк, где 6 case по 500 строк и еще куча всего ))))

я сам стараюсь представить модель как доменную модель. Это не только класс модели, но и все вспомогательные классы. богатая домменая модель как одно целое

Maksim
29.05.2018
06:30:34
не понял твоей фразы
Да я просто рад видеть тебя, тут в чате, судя по уровню вопросов, в основном, люди и пихают логику в контроллер и ёлку.

Антон
29.05.2018
06:31:30
Антон
29.05.2018
06:31:51
Aggregate root типа?
ну нет. DDD тяжело применить. Просто лайтовая версия

как то логически с точки зрения бизнеса сгруппировать. Например Order, OrderService, OrderRepository, etc. Может не совсем по всем практикам, но это гораздо легче поддерживать чем все яйца в кучу

Maksim
29.05.2018
06:33:20
Меня забрызгало чьим то чсв.
Таки показалось вам, сударь. Чем больше работаю и вникаю в суть программирования, тем больше понимаю, что я ещё только в начале пути.

Владимир
29.05.2018
07:06:22


Google
Владимир
29.05.2018
07:06:44
Народ, в таблице со статусами есть статусы с company_id = 1

Я из компании пытаюсь таким образом получить статусы для компании 2

Владислав
29.05.2018
07:07:13
wgereHas погугли

Владимир
29.05.2018
07:07:25
Ага, сейчас, спасибо

Maksim (Ellrion)
29.05.2018
07:23:09
странная связь какая то

Владимир
29.05.2018
07:23:18
Все таки похоже что это немного не то) Мне нужно из компании с ид 2, получить статусы компании с ид 1

Maksim (Ellrion)
29.05.2018
07:23:38
при жадной загрузке например у тебя не будет $this->id вообще. будет null

Владимир
29.05.2018
07:23:53
Тобиш релейшен примерно такой "получаем статусы текушей компании и компании с ид 1"

Хмм, а как можно по нормальному реализовать получение каких-то дефолтных данных?

Например статусов в моем случае

Maksim (Ellrion)
29.05.2018
07:25:24
Тобиш релейшен примерно такой "получаем статусы текушей компании и компании с ид 1"
опять же это не будет работать при жадной загрузке. мб не стоит делать это релейшеном?

Владимир
29.05.2018
07:25:53
Да, наверное

Maksim (Ellrion)
29.05.2018
07:26:27
определи нормальный релейшен статусов. дополнительно определи метод который будет возвращать данные релейшена (коллекцию) и мержить ее с дефолтными

Владимир
29.05.2018
07:27:06
Да, я понял идею. Пожалуй так и сделаю сейчас

Спасибо большое

Maksim (Ellrion)
29.05.2018
07:27:24
если метод получения статусов дефолтных так же будет самокешируем в модели статусов то получишь и нормально работающие жадные загрузки и не будет проблемы множества запросов

кстати минутка образования: кто знает термин мемоизация? а кто не знает загуглите и будете знать)

Vladimir
29.05.2018
07:45:41
Кто подскажет почему в методе коллекции - трансформ , не применяются никакие операции хеширования.

Vladimir
29.05.2018
07:51:05


Google
Maksim (Ellrion)
29.05.2018
07:58:44
Скрин выше
всё дело в том что у тебя модели. и у моделей по дефолту id это праймари кей и по дефолту он автоинкрементен и соответс твенно он по дефолту имеет кастинг в int

Maksim (Ellrion)
29.05.2018
08:00:02
Vladimir
29.05.2018
08:00:26
что поменять на интеджер?
Колонку в таблице не автоинкремент сделать а просто инт

Maksim (Ellrion)
29.05.2018
08:01:36
Колонку в таблице не автоинкремент сделать а просто инт
ну как бы ты делаешь не инт это стринг. ну и тип поля в бд не важен. важны настройки модели

https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php#L856-L863 https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Model.php#L1259-L1267 https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Model.php#L62

Vladimir
29.05.2018
08:05:29
ну как бы ты делаешь не инт это стринг. ну и тип поля в бд не важен. важны настройки модели
Что именно прописать в модели что бы отменить это поведение

Maksim (Ellrion)
29.05.2018
08:06:12
пройдись по ссылкам и станет понятнее. у тебя реально в бд модель с автоинкрементом или нет? что дает тебе хеширование? это только для вывода или ты будешь так сохранять модель?

Maksim (Ellrion)
29.05.2018
08:08:08
ну можешь на лету сделать у моделей ->setIncrementing(false)

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

Vladimir
29.05.2018
08:09:04
ну можешь на лету сделать у моделей ->setIncrementing(false)
Не у компа еще, попробую отпишусь! Спасибо!

f4rt~
29.05.2018
08:11:27
а зачем вы юзаете AI ?

Vladimir
29.05.2018
08:13:14
а зачем вы юзаете AI ?
Какой-то явной причины нет, а это плохая практика?

Maksim (Ellrion)
29.05.2018
08:13:16
я думаю это стандартная штука типо id для внутреннего пользования а хеш для сокрытия id для внешнего

f4rt~
29.05.2018
08:13:42
Какой-то явной причины нет, а это плохая практика?
ну по крайней мере, есть такое мнение :)

Google
Maksim (Ellrion)
29.05.2018
08:14:16
ну по крайней мере, есть такое мнение :)
а что ты ему предлогаешь вместо? uuid?

f4rt~
29.05.2018
08:15:11
я не ориентируюсь сейчас на конкретный кейс и не советую, просто стало интересно первопричину ;)

Maksim (Ellrion)
29.05.2018
08:15:50
Vladimir
29.05.2018
08:18:07
Это проект на котором уже все это есть, я просто разбираюсь в логике что там и как. Просто по какой-то причине не юзаются методы моделей и коллекций лары, везде все через кастомные трансформеры

Vladimir
29.05.2018
08:18:18
Доктрина впилена и тд

Maksim (Ellrion)
29.05.2018
08:19:21
f4rt~
29.05.2018
08:20:27
user_id допустим

Maksim (Ellrion)
29.05.2018
08:20:43
обычно нужна не причина использовать автоинкрементный ключь а причина отказаться от стандартного автоинкрементного ключа в бд

Admin
ERROR: S client not available

f4rt~
29.05.2018
08:20:46
ты оперируешь на то, что AI дает твоим данным некую согласованность :)

Maksim (Ellrion)
29.05.2018
08:21:08
user_id допустим
что такое user_id?

f4rt~
29.05.2018
08:21:09
что такое user_id?
ты задал супер абстрактный вопрос без контекста, я тебе ответил на него)

Maksim (Ellrion)
29.05.2018
08:22:11
у меня есть подозрение что ты как то по своему понимаешь AI

f4rt~
29.05.2018
08:22:48
нет, погоди, я сказал что он мне не нужен и что вместо него я юзаю любой доступный мне уникальный ключь

ты спросил какой, я привел пример

просто я так и не услышал довода в пользу, AI юзаем потому что потому... )

Anton
29.05.2018
08:23:52
AI - auto increment или arificial intellect?

f4rt~
29.05.2018
08:24:02
первое

Google
Anton
29.05.2018
08:24:25
потому что это удобно и под это многое что заточено

Maksim (Ellrion)
29.05.2018
08:24:28
потому что нам нужен уникальный ключь. бд имеет стандартную возможность его генерить. без колизий и необходимости это контролировать нам

Anton
29.05.2018
08:25:01
но ведь у реальных данных нет ключа)
Тем и удобно что БД сама создает тебе этот ключ

без твоего участия

f4rt~
29.05.2018
08:25:24
так а юз кейсы будут?

Maksim (Ellrion)
29.05.2018
08:25:39
так а юз кейсы будут?
удаление, изменение модели

поиск

связи

Anton
29.05.2018
08:26:32
поиск тут врядли, по первичному ключу (а auto increment вроде как только первичным может быть, но могу ошибаться) это скорее не поиск, а взятие по первичному...

Maksim (Ellrion)
29.05.2018
08:27:35
ну это придирка к терминологии. да и метод называется обчно find)

Anton
29.05.2018
08:28:01
Это мы понимаем, а люди могут подумать что реально поиск по не первичному ключу ?

А то добавят auto increment к текстам и будут считать что у них поиск по тексту работать теперь будет ?

Dmitry
29.05.2018
08:29:01
коллеги. не флуда ради. подскажите почему ларка юзает activerecord в лице Eloquent, в то время как сам паттерн немножко нарушает принципы solid и симфони с версии 2 уже переползли на datamapper ?
Просто разные весовые категории: Yii - это массовый RAD фреймворк. Там важна простота и скорость. Ради этого можно забить на архитектуру. Он живёт почти вообще без SOLID и прочих штук. И там почти никто не знает про DIC, конструкторы, приватные поля, PSR и шаблонизаторы. Symfony и Zend - это, наоборот, самые навороченные энтерпрайз-решения для серьёзных проектов, где абсолютно всё сделано по SOLID и прочим принципам и лучшим архитектурным практикам. Laravel - промежуточный вариант, построенный на компонентах Symfony и своих с добавлением собственных упрощений. Там можно работать как в RAD-режиме с фасадами и CRUD-ами для простых проектов, так и как угодно заморачиваться для сложных. Поэтому в массовых Yii и Laravel в комплекте идёт простая ActiveRecord, а в специфичных уже какой-либо DataMapper. Но никто не мешает при желании подключить либо Doctrine в Laravel, либо Eloquent или Propel в Symfony.

Maksim (Ellrion)
29.05.2018
08:35:04
да да AР такой плохой и не интерпрайзный, но почему то он и в ларе и в рельсах и в джанго

видимо для неосиляторов священного грааля в виде датамепера

Dmitry
29.05.2018
08:42:05
да да AР такой плохой и не интерпрайзный, но почему то он и в ларе и в рельсах и в джанго
Ruby on Rails' emergence in the 2000s greatly influenced web app development, through innovative features such as seamless database table creations, migrations, and scaffolding of views to enable rapid application development. Ruby on Rails' influence on other web frameworks remains apparent today, with many frameworks in other languages borrowing its ideas, including Django in Python, Laravel in PHP, Phoenix in Elixir, and Sails.js in Node.js.

Maksim (Ellrion)
29.05.2018
08:54:37
ок

Dmitry
29.05.2018
09:04:44
да да AР такой плохой и не интерпрайзный, но почему то он и в ларе и в рельсах и в джанго
Так что в тысячах неэнтерпрайзных массовых простых проектов удобен простой неэнтерпрайзный AR. А в единицах энтерпрайзных специфических - энтерпрайзный сколь угодно кастомизируемый DM. Логично.

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