These are chat archives for LaravelRUS/chat

12th
Jul 2015
Роман Сохарев
@greabock
Jul 12 2015 02:13
@st-vojak ты особенный =)
Alexander Popov
@ruelephant
Jul 12 2015 07:35
он избранный!
вытащите его из матрицы
Husband
@Husband
Jul 12 2015 07:57
Хочу взять на вооружение гексагональную архитектуру. Какой open source проект посоветуете для изучения в качестве примера?
Alexander Popov
@ruelephant
Jul 12 2015 08:03
чаво? мы значицо люди простые
что значит "гексагональная архитектура»?
сразу представил
iGloom
@iGloom
Jul 12 2015 08:10
даже в гугле народ просто ржет над словом
без объяснений ))
Alexander Popov
@ruelephant
Jul 12 2015 08:10
потому что много пафоса
надо не забывать что канал для «своих», а не для манагеров
iGloom
@iGloom
Jul 12 2015 08:11
но лучшее - это статья на хабре, вываливающаяся первой
"гексагональная архитектура похожа на луковую. луковая архитектура - блаблабла"
Alexander Popov
@ruelephant
Jul 12 2015 08:12
ага ага
луковая похоже на чесночную
@iGloom самое смешное, что даже по поводу ООП нельзя ничего сформулировать
«сущность в виде гномика»
krashcool0537
@krashcool0537
Jul 12 2015 08:15
Привет, подскажите, а можно ли как-то во вьюхе указать meta-данные, которые будут подставляться в шаблон? не хочется сувать в бд их
ruelephant @ruelephant боится смотреть в сторону физики и математики, возможно углубленное изучение разобьет структуру мира
Alexander Popov
@ruelephant
Jul 12 2015 08:21
@krashcool0537 переспроси еще раз
подробнее
В пятой ларе даже обвязка для всего этого есть http://laravel.com/docs/5.0/bus
krashcool0537
@krashcool0537
Jul 12 2015 08:26
Может кто с битриксом знаком , там во вьюху передаешь параметр типа setTitle('заголовок'), и он подставляется в основной шаблон, что-то типо объявления глобальной переменной
Alexander Popov
@ruelephant
Jul 12 2015 08:27
БОЖЕ!
ruelephant @ruelephant окропил все святой водой и нарисовал мелом круг
krashcool0537
@krashcool0537
Jul 12 2015 08:28
вот мне что-то подобное нужно реализовать в lare 4 , вариант заранее передавать во вьюху эти параметры не совсем подходит
Alexander Popov
@ruelephant
Jul 12 2015 08:28
ты переходишь на темную сторону
можешь объяснишь какие хреном тебе это надо?
бизнес задачу
krashcool0537
@krashcool0537
Jul 12 2015 08:29
хочу реализовать добавление кастомных страниц
Alexander Popov
@ruelephant
Jul 12 2015 08:30
waaat? :)
krashcool0537
@krashcool0537
Jul 12 2015 08:30
но админку под это писать влом
Alexander Popov
@ruelephant
Jul 12 2015 08:30
как понять кастомный страниц?
описывай максимально полно
Alexander Popov
@ruelephant
Jul 12 2015 08:31
@Husband да господи, не в этом дело
опять кривая архитектура
нельзя кидать ссылку на ман, пока не убедился что оно ровно хочет вставить
этим ты плодишь говнокод и портишь себе карму
испортишь карму, воплотишься в разработчка core ядра 1c битрикс
… в индии
будешь писать креатиФФ за еду
Husband
@Husband
Jul 12 2015 08:33
@ruelephant Какую ссылку имееш ввиду?
Alexander Popov
@ruelephant
Jul 12 2015 08:34
ты кинул выше
Alexander Popov
@ruelephant
Jul 12 2015 08:34
эту
krashcool0537
@krashcool0537
Jul 12 2015 08:35
Есть набор страниц, есть набор поддоменов (языковых). Роуты у страниц одинаковые, некоторые вьюхи отличаются, некоторые одинаковые. Так вот сейчас думаю как подстроиться под сеошников
Alexander Popov
@ruelephant
Jul 12 2015 08:35
лучший способ, убить сеошников :)
krashcool0537
@krashcool0537
Jul 12 2015 08:36
я пробовал, но они как змей-горыныч, одного убиваешь, два появляются)
Alexander Popov
@ruelephant
Jul 12 2015 08:36
яд в кофе, c4 с тригером на нажатия клавиатуру - без разницы
главное что под них не подтроишься
но выход есть!
iGloom
@iGloom
Jul 12 2015 08:37
ага, вирус с реакцией на "бесплатно без регистрации" в набираемом тексте
на самом деле если хочется хедер менять в зависимости от чего-то
я делал @yield
во вьюхе
Alexander Popov
@ruelephant
Jul 12 2015 08:37
@krashcool0537 не делай завязку ключевых слов во вью
сделал отдельный класс который берет слова из бд
и от языка
krashcool0537
@krashcool0537
Jul 12 2015 08:37
Но все-таки, как мне лучше все это реализовать, думал создать базу со страницами
Alexander Popov
@ruelephant
Jul 12 2015 08:38
потом делаешь обычный CRUD
krashcool0537
@krashcool0537
Jul 12 2015 08:41
Наверное лучше создам базу со страницами и языками, и буду по языку выводить нужную
Alexander Popov
@ruelephant
Jul 12 2015 08:41
ну это еще один модуль
но тебе понадобятся и ключевые слова для динамических каталогов всяких
krashcool0537
@krashcool0537
Jul 12 2015 08:42
сайт имеет 20 статических и лишь один новостной раздел, поэтому я думаю это не критично
Alexander Popov
@ruelephant
Jul 12 2015 08:42
послушай старого слона а?
krashcool0537
@krashcool0537
Jul 12 2015 08:43
для них я сделаю отдельный модуль
Alexander Popov
@ruelephant
Jul 12 2015 08:43
тебе нужно ДВА модуля
krashcool0537
@krashcool0537
Jul 12 2015 08:43
а чем это плохо?
Alexander Popov
@ruelephant
Jul 12 2015 08:43
один модуль для ВСЕХ (включая динамические) страницы (тайтлы и ключевые слова)
другой модуль для составление страниц
ты можешь в интерфейсе при создании страницы еще попросить и тайтл, но хранить надо его на «общих основаниях"
krashcool0537
@krashcool0537
Jul 12 2015 08:44
такой вариант тоже неплох, только я застреваю на стадии реализации, не совсем понимаю как это будет работать
Alexander Popov
@ruelephant
Jul 12 2015 08:45
я не силен в 4-рке
но пологаю тебе надо поставить каллбека на роутер
и проверить в бд соотвествие
если найдено, то ставим переменные для шаблона (помоему шаринг называется)
если нет, то ставим значения по умолчанию
+ язык
krashcool0537
@krashcool0537
Jul 12 2015 08:46
понял, спасибо, буду копать в эту сторону
Alexander Popov
@ruelephant
Jul 12 2015 08:47
и налейте слону пива кто нить
Yury
@DrYurets
Jul 12 2015 09:03
очень любит рыбий жир
Alexander Popov
@ruelephant
Jul 12 2015 09:36
палево!
emissar
@emissar
Jul 12 2015 10:37
добрый день. А можно сделать, чтобы csrf токен жил дольше? Например, открыта вкладка у меня сутки, я к ней возвращаюсь, отправляю форму, а она не отправляется.
JhaoDa
@jhaoda
Jul 12 2015 10:44
@emissar токен живет столько, сколько живет сессия
Ivan
@ivaaaan
Jul 12 2015 10:57
Ребята, а как можно сделать, чтоб после каждого изменения/добавления поля в бд не приходилось удалять все таблицы и ставить миграции заново. В той же доктрине в сущностях очень удобно, все накатывается без удалений. В ларавель так можно?
Avin Grape
@avin
Jul 12 2015 10:58
@ivaaaan создаешь новый файл миграции в котором указываешь только добавление нужного поля в таблицу (вместо создание всей таблицы) и делаешь php artisan migrate - он увидит новую миграцию и добавит поле без пересоздания таблицы
Ivan
@ivaaaan
Jul 12 2015 11:00
@avin да, про новую миграцию знаю. но плодить их кучами на начальной стадии проекта тоже не хочется. думал есть другой выход
Roman
@TeroBlaZe
Jul 12 2015 11:03
чем я сейчас занимаюсь xD
@ivaaaan подход продумывания всей структуры изначально.
JhaoDa
@jhaoda
Jul 12 2015 11:03
@ivaaaan открываешь любой менеджер и делаешь всё, что надо
Avin Grape
@avin
Jul 12 2015 11:05
на то миграцонные файлы и нужно чтоб отследить историю изменений таблиц, на крайняк всегда можно просто добавить поля вручную как указал @jhaoda
Илья
@iliyaZelenko
Jul 12 2015 11:17
Привет. Что за ерунда, я установил ларавел, хочу проверить как работает авторизация которая стоит по умолчанию, но у меня ее нет, ни видов, ни логики. Раньше по умолчанию все было, можно было посмотреть как работает.
Avin Grape
@avin
Jul 12 2015 11:27
@iliyaZelenko логику ищи в app\Http\Controllers\Auth\ . Роуты и вьюшки бери из примеров в документации http://laravel.com/docs/5.1/authentication
по умолчанию они сами не создаются в новом проекте
Roman
@TeroBlaZe
Jul 12 2015 11:54
нужно ли вешать общий индекс на два поля в сводной (pivot) таблице? Или того, что на них на каждом весит индекс от внешнего ключа этого достаточно?
Роман Сохарев
@greabock
Jul 12 2015 12:00
@ruelephant про шестиугольники была такая старенькая статья. Но даже я, упоротый по абстракциям и разделению кода, не совсем понимаю как это использовать на практике https://laravel.ru/posts/13
Avin Grape
@avin
Jul 12 2015 12:17
@TeroBlaZe "на них на каждом весит индекс от внешнего ключа этого достаточно?" Да, этого достаточно
Roman
@TeroBlaZe
Jul 12 2015 12:18
@avin а мне вспомнилось, что если в Where присутствуют оба поля, нужно создавать индекс по этим двум полям
JhaoDa
@jhaoda
Jul 12 2015 12:19
А я вот охладел к внешним ключам, не вижу я в них большой пользы
emissar
@emissar
Jul 12 2015 12:21
@sleeping-owl привет, ты тут?
Avin Grape
@avin
Jul 12 2015 12:21
@jhaoda согласен, по этому вопросы мб почитать развенутое обсуждение - здесь http://stackoverflow.com/questions/928425/why-do-rails-migrations-define-foreign-keys-in-the-application-but-not-in-the-da/928697#928697
Sleeping Owl
@sleeping-owl
Jul 12 2015 12:24
@emissar да
emissar
@emissar
Jul 12 2015 12:25
@sleeping-owl подскажи, почему через какое-то время простоя может слетать авторизация в админке?
Roman
@TeroBlaZe
Jul 12 2015 12:25
:rofl:
JhaoDa
@jhaoda
Jul 12 2015 12:27
@emissar ты не сделал никаких выводов из фразы «токен живет столько, сколько живет сессия»?
Логическая цепочка: токен зависит от сессии, сессия зависит от куки... таких ассоциаций не возникает?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:28
Ребят, как объявить в routes.php переменную $app ?
Тупой вопрос, знаю
JhaoDa
@jhaoda
Jul 12 2015 12:29
@emissar а у сессии (и у куки, значит) срок жизни 120 минут по дефолту
@olezko46 $app = 1
emissar
@emissar
Jul 12 2015 12:29
@jhaoda попроще будь)
JhaoDa
@jhaoda
Jul 12 2015 12:30
@emissar это всё, что ты смог придумать? Надо развиваться, чувак. Читать доки, смотреть конфиги, изучать сорцы...
emissar
@emissar
Jul 12 2015 12:30
@jhaoda да, каюсь, чего-то я конфиг session.php из виду упустил
спасибо
Oleg Melnik
@olegmelnik
Jul 12 2015 12:32
@jhaoda Я объявляю $api = $app['Dingo\Api\Routing\Router']; по инструкции https://github.com/dingo/api/wiki/Creating-API-Endpoints
@jhaoda Что делать мне? Как правильно объявить ее? Я новичок в laravel. Понять не могу что к чему
emissar
@emissar
Jul 12 2015 12:32
а кто-нить юзал dklab realsync?
JhaoDa
@jhaoda
Jul 12 2015 12:34
@olezko46 тебе надо не объявить переменную $app, а получить доступ к инстансу приложения и контейнеру. $api = app('Dingo\Api\Routing\Router');
Oleg Melnik
@olegmelnik
Jul 12 2015 12:35
@jhaoda Теперь вот так: Use of undefined constant app - assumed 'app'
JhaoDa
@jhaoda
Jul 12 2015 12:36
@olezko46 версия ларавель?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:36
@jhaoda Последняя 5.1
JhaoDa
@jhaoda
Jul 12 2015 12:37
@olezko46 и вообще, при чем тут константа? Что ты написал, покажи.
Oleg Melnik
@olegmelnik
Jul 12 2015 12:38
Снимок экрана 2015-07-12 в 15.37.46.png
JhaoDa
@jhaoda
Jul 12 2015 12:38
@olezko46 ты не видел, какой пример я тебе написал?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:39
@jhaoda Я попробовал и получил: Use of undefined constant app - assumed 'app'
JhaoDa
@jhaoda
Jul 12 2015 12:39
@olezko46 я вижу твой скрин, ты написал совсем не то
slider23
@slider23
Jul 12 2015 12:39
хелпер app()
JhaoDa
@jhaoda
Jul 12 2015 12:39
@olezko46 может ты все же начнешь внимательно читать и смотреть?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:40
Снимок экрана 2015-07-12 в 15.39.37.png
JhaoDa
@jhaoda
Jul 12 2015 12:41
@olezko46 и дальше что?
slider23
@slider23
Jul 12 2015 12:41
Ну вот, проблема решена.
JhaoDa
@jhaoda
Jul 12 2015 12:41
Так у него теперь новая проблема, но он считает,что это все еще старая... иначе зачем второй скрин?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:42
@jhaoda По идеи у меня сейчас должен появиться список роутов без создания нового контроллера, разве нет?
JhaoDa
@jhaoda
Jul 12 2015 12:42
@olezko46 ты прочитал, что в консоли написано?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:44
@jhaoda Да, нет класса, но я серьезно: разве уже сейчас не должен появиться список ростов?
JhaoDa
@jhaoda
Jul 12 2015 12:44
@olezko46 нет, не должен. Потому что нет класса контроллера
slider23
@slider23
Jul 12 2015 12:44
Должен или не должен - это к Dingo\Api\Routing\Router вопрос. Что он делает ?
А зачем такой странный роутинг, кстати ?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:45
@jhaoda Не пойми не правильно, я сам работаю программистом, но пишу под ios. Знакомлюсь с laravel для своих личных целей. Отсюда и такие тупые вопросы
@slider23 А я сам хз. Так по вики на гитхабе https://github.com/dingo/api/wiki/Creating-API-Endpoints
JhaoDa
@jhaoda
Jul 12 2015 12:46
@olezko46 ну я не понимаю, откуда взялся такой вопрос. Есть ошибка в консоли, её надо устранить. Она же не по прихоти ларавель появилась?
Oleg Melnik
@olegmelnik
Jul 12 2015 12:46
@jhaoda Ты прав, я не спорю :)
slider23
@slider23
Jul 12 2015 12:46
Скорее всего он грузит классы, так что создавай контроллер.
JhaoDa
@jhaoda
Jul 12 2015 12:46
@olezko46 Или ты надеешься, что если раз десять вызвать php artisan route:list, то он устанет ругаться и покажет список?
Avin Grape
@avin
Jul 12 2015 12:47
@jhaoda )))))
JhaoDa
@jhaoda
Jul 12 2015 12:47
На 568 256 234-ой попытке сервер Пентагона согласился, что у него пароль «Мао Цзе Дун» и пустил китайских хакеров...
slider23
@slider23
Jul 12 2015 12:47
интересно, у пакета 1500 звезд, а я о нем впервые слышу..
Oleg Melnik
@olegmelnik
Jul 12 2015 12:48
@jhaoda Я так верх поднял, чтоб не палить лог с vps :)
Кстати, есть какие-нибудь другие пакеты для нормального написания Api?
slider23
@slider23
Jul 12 2015 12:50
jasonlewis пилит, оказывается.
JhaoDa
@jhaoda
Jul 12 2015 12:51
@olezko46 все зависит от того, что ты понимаешь под API
slider23
@slider23
Jul 12 2015 12:51
Да для api никаких пакетов не нужно, в общем-то. Все во фреймворке есть уже.
Просто делаешь роуты и возвращаешь в контроллерах массивы, модели или коллекции. Фреймворк их сам в json переведёт.
Avin Grape
@avin
Jul 12 2015 12:53
@olezko46 Для упрощения задачи можно воспользоваться удобным генератором https://github.com/mitulgolakiya/laravel-api-generator
slider23
@slider23
Jul 12 2015 12:54
Вот тут можно посмотреть, как изменить штатный обработчик http-кодов ошибок, чтобы он тоже json в нужном формате отдавал: http://stackoverflow.com/questions/28944097/laravel-5-handle-exceptions-when-request-wants-json
Alexander Popov
@ruelephant
Jul 12 2015 12:55
шо тут?
JhaoDa
@jhaoda
Jul 12 2015 12:56
Ща нам главный пикабушник расскажет, как API пейсать
Alexander Popov
@ruelephant
Jul 12 2015 12:57
а вы мне пиво налили?
я не вижу пополнения моего швейцарского счета
ruelephant @ruelephant проверил еще раз
Roman
@TeroBlaZe
Jul 12 2015 12:58
@ruelephant у меня всё, что можно выпить это чай, вода и молоко XD
JhaoDa
@jhaoda
Jul 12 2015 12:58
@ruelephant Да ты все равно расскажешь, что мы тут все нубы и API пейсать не умеем
Const
@umren
Jul 12 2015 12:58
Неплохо, ларавелька в два раза разгонится на php 7
халявный буст
Alexander Popov
@ruelephant
Jul 12 2015 12:58
я переезжаю с лары
Roman
@TeroBlaZe
Jul 12 2015 12:59
потому что в php7 включем opcache из коробки? :D
JhaoDa
@jhaoda
Jul 12 2015 12:59
@umren версия какая ларавель-то в бенче?
Const
@umren
Jul 12 2015 12:59
@jhaoda неизвестно, линк с хабра, предположительно 5.1
JhaoDa
@jhaoda
Jul 12 2015 13:00
@ruelephant слава Ктулху!
Alexander Popov
@ruelephant
Jul 12 2015 13:01
но если вы думаете что вы просто от меня так отделаетесь
вы ГЛУБОКО ошибаетесь :)
JhaoDa
@jhaoda
Jul 12 2015 13:01
@umren и в каких единицах там очки?
Alexander Popov
@ruelephant
Jul 12 2015 13:01
@jhaoda в удавах
Const
@umren
Jul 12 2015 13:03
@jhaoda думаю это rps
Alexander Popov
@ruelephant
Jul 12 2015 13:03
мое приложение выжимает 1 удава и 46 попугаев
Roman
@TeroBlaZe
Jul 12 2015 13:09
блин, вот как вы думаете, у меня таблице есть поле type:string, туда будет записываться тип события, типов таких не должно быть много, но и будущее количество их не известно. Это нормальное решение? Мне почему-то кажется не очень, т.к будет много повторов. Делать поле типа Enum, но потом иметь проблемы с расширением - не хочется. Создать смежную таблицу - наилучшее что могло прийти на ум, но тогда появляется проблема, что "базовые значения" этих типов, придется забивать в базу каждый раз при миграции и терять те, что уже были добавлены потом - тоже как-то не очень. Что еще можно придумать в таком случае?
Alexander Popov
@ruelephant
Jul 12 2015 13:10
я могу подумать за вас, не дорого но не бесплатно :)
1000 рублей в час, это почти даром
Roman
@TeroBlaZe
Jul 12 2015 13:11
я не прошу думать, я и сам могу думать, мне нужен лишь совет
Alexander Popov
@ruelephant
Jul 12 2015 13:11
советы по 300
Roman
@TeroBlaZe
Jul 12 2015 13:12
@ruelephant мы от ваших советов в таком случае отказываемся
Alexander Popov
@ruelephant
Jul 12 2015 13:12
вас таки много?
Roman
@TeroBlaZe
Jul 12 2015 13:12
можете не напрягаться
Alexander Popov
@ruelephant
Jul 12 2015 13:12
тогда 550 за всех, но не более трех
@TeroBlaZe вы жалкие, может вас еще и покормить? :)
JhaoDa
@jhaoda
Jul 12 2015 13:14
Слонопотамус забродивших ягод переел, штоле...
Roman
@TeroBlaZe
Jul 12 2015 13:15
@ruelephant троллить будешь в другом месте,
если нечего сказать, так лучше промолчи
Alexander Popov
@ruelephant
Jul 12 2015 13:16
а я вас могу :)
на другую чашу надо положить что-то весомое
@jhaoda дело в том что нарушилось так сказать равновесие, вас меня нечему научить
в принципе я согласен на золото по моему весу (80 кг)
но поскольку золота у вас нет, беру рубли, гривны, доллары сша, евро
Oleg Melnik
@olegmelnik
Jul 12 2015 13:26
@avin Спасибо :)
Kirill
@kirill001
Jul 12 2015 13:27
Здравствуйте, подскажите пожалуйста, как в laravel 4.2 вызывать метод контроллера из крон планировщика?
JhaoDa
@jhaoda
Jul 12 2015 13:38
@kirill001 начнем с того, что это плохо, когда ты из консоли вызываешь метод http-контроллера — CLI не брат CGI
Kirill
@kirill001
Jul 12 2015 13:50
@jhaoda А как правильно?
JhaoDa
@jhaoda
Jul 12 2015 13:51
@kirill001 если тебе один и тот же функционал нужен и там, и сям, то логичней же его вынести в отдельный класс?
Kirill
@kirill001
Jul 12 2015 13:52
@jhaoda Мне нужно раз в сутки запускать обновление базы данных, по разным условиям. Я написал метод в классе, который это делает, но не могу же я в кроне вызывать этот класс?
я просто не знаю как это правильно сделать в ларавел
@jhaoda Вынести логичнее, но как к нему обращаться? И чтобы внутри него был доступ к остальному функционалу приложения
JhaoDa
@jhaoda
Jul 12 2015 13:54
@kirill001 создаёшь артизан-команду, которая будет запускаться по крону и вызывать нужный класс
Kirill
@kirill001
Jul 12 2015 13:59
@jhaoda спасибо, попробую
Alexander Popov
@ruelephant
Jul 12 2015 14:03
кстати есть кто в республики белорусс? :)
минск интересует
zigmasio
@zigmasio
Jul 12 2015 14:28
в нашем люимом фреймворке. ошибочка там на сайте
Понимание IoC
01 июня greabock
люИмом
Роман Сохарев
@greabock
Jul 12 2015 14:29
ай ай ай
ужас
Alexander Popov
@ruelephant
Jul 12 2015 14:29
ужас!
Роман Сохарев
@greabock
Jul 12 2015 14:30
бездарь какой-то писал
русский бы выучил сначала, прежде чем статьи писать
ruelephant @ruelephant бегает кругами по каналу с криком
Роман Сохарев
@greabock
Jul 12 2015 14:32
@TeroBlaZe что мешает тебе посеять данные в миграции?
JhaoDa
@jhaoda
Jul 12 2015 14:36
@greabock видимо то, что это делается сидами, а не миграциями :)
slider23
@slider23
Jul 12 2015 14:40
это вредное заблуждение :)
есть данные которые данные, а есть данные, которые на самом деле схема.
поэтому такие данные нужно сеять в миграции
JhaoDa
@jhaoda
Jul 12 2015 14:41
@slider23 хм, примерчик можно?
Roman
@TeroBlaZe
Jul 12 2015 14:42
@jhaoda Laravel includes a simple method of seeding your database with test data using seed classes
Роман Сохарев
@greabock
Jul 12 2015 14:43
^this
slider23
@slider23
Jul 12 2015 14:43
Пример - версии фреймворка в laravel.su :)
Roman
@TeroBlaZe
Jul 12 2015 14:44
@greabock я уже отказался от смежной таблицы, буду хранить только тип уведомления, а все связанные с ним данные получать в приложении из моделей и вьюх
JhaoDa
@jhaoda
Jul 12 2015 14:45
@slider23 когда появится новая версия, то что? Создавать новую миграцию, которая добавит значение?
slider23
@slider23
Jul 12 2015 14:47
Да.
Roman
@TeroBlaZe
Jul 12 2015 14:48
@jhaoda вот поэтому меня это и не устраивает, что если я захочу изменить шаблон сообщения, еще делать миграцию?
slider23
@slider23
Jul 12 2015 14:49
То же самое с устоявшимися категориями, тэгами и прочим. Можно было бы делать это сидами, но сиды для другого - для занесения данных пользователей, для тестирования и т.п. Они выполняются один раз, что символизирует ---.
Roman
@TeroBlaZe
Jul 12 2015 14:50
@slider23 это вещи которые добавляются в процессе наполнения контентом же
slider23
@slider23
Jul 12 2015 14:50
@TeroBlaZe ты можешь сделать редактор шаблонов сообщений. Но если тебе надо, чтобы при развертывании был уже нужный шаблон - то да, миграциями.
Ну есть дефолтный контент, а есть наносной. Мы сейчас про дефолтный.
JhaoDa
@jhaoda
Jul 12 2015 14:51
@slider23 спорная тема, короче
slider23
@slider23
Jul 12 2015 14:51
Сидами его делать неудобно, потому что впоследствии нельзя поменять.
Roman
@TeroBlaZe
Jul 12 2015 14:51
да, между ними очень тонкая грань)
с этим пхп вовсе соскучился по ооп((
JhaoDa
@jhaoda
Jul 12 2015 14:53
Вот в пиццерии есть 4 филиала. Вроде бы дефолтные данные. Через год откроют пятый или закроют четвертый, и что, тоже миграцию клепать?
slider23
@slider23
Jul 12 2015 14:53
ит депендс
JhaoDa
@jhaoda
Jul 12 2015 14:54
А еще один филиал взял и переехал через 4 года после открытия. Создавать новый, удалять старый или просто поменять адрес через админку?
slider23
@slider23
Jul 12 2015 14:54
я в основном про то, что если надо засидировать какие-то данные, то не надо стесняться делать это в миграции.
В миграциях сидировать данные можно и нужно.
Не надо для этого юзать сиды, сиды не для этого.
JhaoDa
@jhaoda
Jul 12 2015 14:56
Я просто не могу себе представить данных, которые строго неизменны и являются частью схемы
Roman
@TeroBlaZe
Jul 12 2015 14:57
такие данные и не нужны в базе, я считаю
slider23
@slider23
Jul 12 2015 14:57
они не обязательно неизменны, они изменяемы, но это изменение должно быть контролируемо.
конфиги, например
чтобы человек мог pull и накатить миграцию, и они бы у него изменились в базе
в сидах такое держать нельзя.
JhaoDa
@jhaoda
Jul 12 2015 15:00
Не, я не говорю, что сидами надо к продакшену готовить приложение
Roman
@TeroBlaZe
Jul 12 2015 15:02
ну нужно же разделять данные, которые являются структурой приложения от данных, от которых приложение не зависит, которые могут возникать в процессе жизни и которые так же могут быть изменены, независимо процессе изменения структуры или же сразу просле деплоя
Oleg Melnik
@olegmelnik
Jul 12 2015 16:53
Мужики, я тут понять не могу: мне обязательно для post запроса создавать вьюху или нет?
Maxim
@Big-Shark
Jul 12 2015 16:55
@olezko46 нет
Oleg Melnik
@olegmelnik
Jul 12 2015 17:04
@Big-Shark А как тогда по другому? У меня токен требует
JhaoDa
@jhaoda
Jul 12 2015 17:06
@olezko46 как токен связан с вьюхой вообще?
Oleg Melnik
@olegmelnik
Jul 12 2015 17:08
@jhaoda я посмотрел документацию, по ней CSRF токен вставляется в во вьюху с формой ввиде <?php echo csrf_token(); ?>
@jhaoda Как тогда по другому? Тупо в метод прописывать?
JhaoDa
@jhaoda
Jul 12 2015 17:09
@olezko46 и что? Он вставляется в форму, что бы с запросом уходил
Кто мешает передавать в запросе токен руками?
Oleg Melnik
@olegmelnik
Jul 12 2015 17:10
@jhaoda Понятно, спасибо. Буду сейчас дальше копать
JhaoDa
@jhaoda
Jul 12 2015 17:10
@olezko46 подозреваю, что тебе ничего не понятно :)
Oleg Melnik
@olegmelnik
Jul 12 2015 17:11
В ток сейчас увидел мелким шрифом You do not need to manually verify the CSRF token on POST, PUT, or DELETE requests. The VerifyCsrfToken HTTP middleware will verify token in the request input matches the token stored in the session.
@jhaoda так и есть) У меня уже голова кипит)
Илья
@iliyaZelenko
Jul 12 2015 17:13
Здравствуйте. Подскажите. AuthController привязан к видам которые в views/auth, как поменять расположение этих видов?
JhaoDa
@jhaoda
Jul 12 2015 17:14
@iliyaZelenko он не привязан. Берешь и меняешь.
Илья
@iliyaZelenko
Jul 12 2015 17:17
Почему тогда пишет, что вид не найден(View [auth.login] not found)
JhaoDa
@jhaoda
Jul 12 2015 17:17
@iliyaZelenko потому что их больше нет «из коробки». Их надо взять и туда положить.
Илья
@iliyaZelenko
Jul 12 2015 17:18
Извините, не сильно вас понимаю. Можно как-то наглядней.
JhaoDa
@jhaoda
Jul 12 2015 17:19
@iliyaZelenko что именно ты не понял? В 5.1 файлов вьюх больше нет, физически.
Контроллер есть, а вьюх нету.
@iliyaZelenko поэтому копируй из 5.0 или пиши руками
Илья
@iliyaZelenko
Jul 12 2015 17:21
Вы наверно подумали что у меня нет auth.login и auth.register?
JhaoDa
@jhaoda
Jul 12 2015 17:21
@iliyaZelenko а они у тебя есть?
@iliyaZelenko это не я подумал, а ларавель
Илья
@iliyaZelenko
Jul 12 2015 17:22
Мне нужно поменять их расположение. Вы наверное, не поняли вопроса.
JhaoDa
@jhaoda
Jul 12 2015 17:23
@iliyaZelenko нет, не понял. Что тебе мешает поменять их расположение?
Взял, скопировал из старого каталога в новый. Где здесь проблема?
Илья
@iliyaZelenko
Jul 12 2015 17:23
Появляется ошибка которую я писал.
JhaoDa
@jhaoda
Jul 12 2015 17:24
Ну так если ты поменял местоположение вьюх, то и в контроллере надо поменять пути, а?
Илья
@iliyaZelenko
Jul 12 2015 17:24
Старый путь -- auth.login Новый путь - auth.folder.folder.login
Ну вот я и пришел спросить что нужно прописать в контроллере
JhaoDa
@jhaoda
Jul 12 2015 17:25
@iliyaZelenko вот это и нужно писать.
@iliyaZelenko вот это и нужно писать, новый путь.
Илья
@iliyaZelenko
Jul 12 2015 17:25
Я догадываюсь, но в каком свойстве?
JhaoDa
@jhaoda
Jul 12 2015 17:26
@iliyaZelenko ни в каком. В методе контроллера меняй
Илья
@iliyaZelenko
Jul 12 2015 17:28
В AuthController никаких видов не указано. Он берет методы из других классов, если я не ошибаюсь.
JhaoDa
@jhaoda
Jul 12 2015 17:28
@iliyaZelenko ну так ты переопредели методы-то, которые он «берет» из трейта
Илья
@iliyaZelenko
Jul 12 2015 17:31
Я напишу свойства по которым будут браться виды в трейтах, но в AuthController перезапишу их. Правильно?
JhaoDa
@jhaoda
Jul 12 2015 17:32
@iliyaZelenko методы. Ме-то-ды.
Илья
@iliyaZelenko
Jul 12 2015 17:32
А почему так нельзя?
JhaoDa
@jhaoda
Jul 12 2015 17:33
Потому что нет никаких методов, откуда бы трейт брал вьюхи
@iliyaZelenko ты не пробовал для начала посмотреть, что там и как? Заглянуть в код трейта, например?
slider23
@slider23
Jul 12 2015 17:34
Просто скопируй код трейта в контроллер и меняй его как хочешь.
JhaoDa
@jhaoda
Jul 12 2015 17:35
Полагаю, что товарищ не знает, как посмотреть код трейта
primalpro
@primalpro
Jul 12 2015 17:36
метод
Увага ! не могу вызвать метоз из контроллера... но из роута все работает
Илья
@iliyaZelenko
Jul 12 2015 17:36
@jhaoda наверное опять не поняли меня. Я хочу просто свойство вместо метода написать.
JhaoDa
@jhaoda
Jul 12 2015 17:36
И возможно, что он пользуется каким-нить sublime text...
slider23
@slider23
Jul 12 2015 17:36
Это лучше всего.
JhaoDa
@jhaoda
Jul 12 2015 17:37
@iliyaZelenko это ты не понял. Я повторяю, трейт не знает никаких «свойств с именами вьюх»
@iliyaZelenko скажи уже, ты в код трейта смотрел?
primalpro
@primalpro
Jul 12 2015 17:37
Class 'App\Spatie\Browsershot\Browsershot' not found
но если в роутах вызыв делаю то все ок
JhaoDa
@jhaoda
Jul 12 2015 17:38
@primalpro потому что про неймспейсы почитать надо
Илья
@iliyaZelenko
Jul 12 2015 17:38
Я хочу чтобы в AuthController было просто свойство $loginView которое бы переопределяло свойство которое в трейте. В трейте это свойство указывает на вид. То есть я просто поменяю вид.
JhaoDa
@jhaoda
Jul 12 2015 17:38
Ну хотеть не вредно, чо...
primalpro
@primalpro
Jul 12 2015 17:39
@jhaoda я юзаю их уже но в данном случае не понимаю что надо прописать в use
JhaoDa
@jhaoda
Jul 12 2015 17:39
Напиши свой трей, который будет брать имя вьюхи из этого свойства
@primalpro а что ты там написал сейчас?
primalpro
@primalpro
Jul 12 2015 17:40
@jhaoda use Spatie\Browsershot\Browsershot;
JhaoDa
@jhaoda
Jul 12 2015 17:40
@primalpro ну и всё, нормально.
primalpro
@primalpro
Jul 12 2015 17:42
@jhaoda знаешь если в роуте вызываю . то и без этого отрабатывает ... а из контроллера ругается что не видит такого класса

@jhaoda Route::get('/test', function () {

$browsershot = new \Spatie\Browsershot\Browsershot();

$browsershot
->setURL('http://www.ya.ru')
->setWidth('1024')
->setHeight('768')
->save('test2.jpg');
});
----- это работает

JhaoDa
@jhaoda
Jul 12 2015 17:43
@primalpro в роуте и должно без этого работать, потому что файл роутов в глобальном пространстве
primalpro
@primalpro
Jul 12 2015 17:43
@jhaoda слушай а может я не то прописываю
@jhaoda я тебе щас покажу что в сервис провайдере
@jhaoda 'Spatie\Browsershot\BrowsershotServiceProvider',
Ari Kaiy
@arikaiy
Jul 12 2015 17:45
как с помощью Middleware ограничить доступ к странице например только админу, я тут пытался но не выходит https://github.com/odoveiz/nkpt/blob/master/app/Http/Middleware/AdminIfAuthenticated.php#L37 , в бд за права отвечает ячейка rights и припустим значение 9 это админ
Илья
@iliyaZelenko
Jul 12 2015 17:47
@jhaoda сделал вот так: $view = property_exists($this, 'viewRegister') ? $this->viewRegister : 'auth.register';
return view($view); Теперь в AuthController достаточно определить только одно свойство, которое будет указывать на вид.
primalpro
@primalpro
Jul 12 2015 17:47
да вроде заработало с \ накосячик
slider23
@slider23
Jul 12 2015 17:49
@iliyaZelenko а куда ты вставил этот код ?
Ты сделал свой трейт, надеюсь, не менял существующий Illuminate\Foundation\Auth\RegistersUsers.php ?
JhaoDa
@jhaoda
Jul 12 2015 17:52
:) Подозреваю, что он таки поменял существующий. Иначе нахрена бы делать трейт, который перекрывает трейт?
Alexander Popov
@ruelephant
Jul 12 2015 17:53
:(
я так хочу помогать, отвечать на вопросы
но мне не заплатили
ruelephant @ruelephant взял попкорн
Alexander Popov
@ruelephant
Jul 12 2015 17:55
а это стоит огого
Ari Kaiy
@arikaiy
Jul 12 2015 17:55
как с помощью Middleware ограничить доступ к странице например только админу, я тут пытался но не выходит https://github.com/odoveiz/nkpt/blob/master/app/Http/Middleware/AdminIfAuthenticated.php#L37 , в бд за права отвечает ячейка rights и припустим значение 9 это админ
JhaoDa
@jhaoda
Jul 12 2015 17:55
@slider23 намекни Слонопотамусу, что «шутка» про не заплатили была смешной всего первые три раза
@odoveiz повтори еще раза четыре свой вопрос, не стесняйся...
Alexander Popov
@ruelephant
Jul 12 2015 17:55
@jhaoda а у тебя что, буквы кончились? :)
проблема то в том, что @slider23 тоже не заплатили!
Ari Kaiy
@arikaiy
Jul 12 2015 17:56
@jhaoda вдруг пропустили и никто не заметил))
Alexander Popov
@ruelephant
Jul 12 2015 17:57
вы меня доведете до платного психолога! :)
Илья
@iliyaZelenko
Jul 12 2015 17:57
@slider23 проект не будет обновляться, так что все в порядке.
slider23
@slider23
Jul 12 2015 17:57
ээээ
Alexander Popov
@ruelephant
Jul 12 2015 17:57
за то что он сказал бы слону что ему не заплатили
slider23
@slider23
Jul 12 2015 17:58
@iliyaZelenko вот то, что ты сделал - это худшее, что вообще можно было сделать.
Alexander Popov
@ruelephant
Jul 12 2015 17:58
покажите мне
но там слишком много конкурентов :(
где? :)
я номинирую на говнокод года
slider23
@slider23
Jul 12 2015 18:01
менять код в vendor, чтобы в аппликейшне было типа чисто и настраиваемо. И аргументировать, что "все норм, проект не будет обновляться".
Alexander Popov
@ruelephant
Jul 12 2015 18:01
он тронул ядро? :)
slider23
@slider23
Jul 12 2015 18:03
@iliyaZelenko копипасть методы из трейтов себе в AuthController и меняй там все как хочешь. Не изобретай ненужного.
Const
@umren
Jul 12 2015 18:04
"не будет обновляться" до тех пор пока ты помнишь что не надо обновлять или некому этот проект в руки не попадет.. а там хоп обновят и будет миллион WTF что же сломалось)
JhaoDa
@jhaoda
Jul 12 2015 18:09
Полагаю, что наши старания донести свет истины пропали втуне...
Alexander Popov
@ruelephant
Jul 12 2015 18:10
печально
Илья
@iliyaZelenko
Jul 12 2015 18:12
Да я вас понял.
JhaoDa
@jhaoda
Jul 12 2015 18:13
@iliyaZelenko и? Сделал, как советуют?
Или понял, но оставил как есть?
Илья
@iliyaZelenko
Jul 12 2015 18:15
Сделал и нуждаюсь в еще одном маленьком совете таких мастеров как вы.
Илья
@iliyaZelenko
Jul 12 2015 18:27
Вот я хочу сделать систему графических тем для пользователей. Что бы каждый на свой вкус выбирал оформление сайта. Планирую разложить виды на такие группы: [имя темы]/[виды этой темы] . Навожу пример файлов двух тем: blacktTeme/auth/login.blade.php, whiteTeme/auth/login.blade.php На сайте будет глобальная переменная отвечающая за id темы. Указывать виды буду следующим образом $GLOBALS['teme'].'.viewFolder.view' Вот правильно я сделаю, если буду по такому принципу создавать?
JhaoDa
@jhaoda
Jul 12 2015 18:33
@iliyaZelenko забудь про глобальные переменные
Илья
@iliyaZelenko
Jul 12 2015 18:45
Хорошо сделаю через отдельный контроллер, в котором будет логика всей системы.
Const
@umren
Jul 12 2015 18:48
А что темы сильно отличаются так?
зачем шаблоны дублировать
подключай просто ксс файл с темой
меньше шаблонов меньше гемороя потом
Илья
@iliyaZelenko
Jul 12 2015 18:50
Да, сильно отличаются, совсем другая разметка.
Const
@umren
Jul 12 2015 18:51
Странно конечно)
Илья
@iliyaZelenko
Jul 12 2015 18:51
Если платят то гемороя не будет.
Const
@umren
Jul 12 2015 18:51
Ну если не платят то и не надо работать)
Илья
@iliyaZelenko
Jul 12 2015 18:52
Но мне то платят.
JhaoDa
@jhaoda
Jul 12 2015 19:01
Вот можете кинуть в меня вольфрамовых тапков, но я не понимаю, как человек в 2015-м году меняет файлы в вендорах и хочет юзать глобальные переменные, но при этом не стыдится брать деньги за такое?
Ari Kaiy
@arikaiy
Jul 12 2015 19:08
3 раз прошу))
как с помощью Middleware ограничить доступ к странице например только админу, я тут пытался но не выходит https://github.com/odoveiz/nkpt/blob/master/app/Http/Middleware/AdminIfAuthenticated.php#L37 , в бд за права отвечает ячейка rights и припустим значение 9 это админ
iGloom
@iGloom
Jul 12 2015 19:16
а что покажет dd(\Auth::user());?
и кстати никогда не видел такой синтаксис !$this->auth->user()->rights == 9
почему не $this->auth->user()->rights != 9
Ari Kaiy
@arikaiy
Jul 12 2015 19:19
@iGloom ну я просто не знаю как сделать
если сделать как я то для авторизованных проверка идет и не пускает а гостей пускает
JhaoDa
@jhaoda
Jul 12 2015 19:19
@iGloom нормальный синтаксис
@iGloom а, ты вон про что
Блё, что с гиттером творится последнее время, а?
Что за дикие тормоза, матьиво...
iGloom
@iGloom
Jul 12 2015 19:20
@odoveiz условие у тебя AND там. получается что "если юзер залогинен и у него права НЕ равны 9 - редиректим"
поставь OR
Alexander Popov
@ruelephant
Jul 12 2015 19:24
еху!
Ari Kaiy
@arikaiy
Jul 12 2015 19:24
@iGloom а как вообще правильно делаются такие вещи?
iGloom
@iGloom
Jul 12 2015 19:26
@odoveiz ну чисто в теории правильно ставится админка от Sleeping Owl. но вообще на практике сделай просто условие следующего вида в Middleware
if (!$this->auth->check() || $this->auth->user()->rights != 9)
если пользователь НЕ залогинен ИЛИ НЕ является админом - делаем редирект.
"админка от SleepingOwl" - в плане - зачем еще нужны страницы вне защищенного пространства админки? :) так-то за тебя она вопросы с правами не решит, конечно
Ari Kaiy
@arikaiy
Jul 12 2015 19:28
если уже использовать ИЛИ то не обязательно проверять авторизован или не авторизован ибо если не авторизован $this->auth->user() будет возвращать null вроде
iGloom
@iGloom
Jul 12 2015 19:28
ага, либо "trying to get property of non object" - на твой вкус
собственно проект-то твой, проверить пару секунд займет
ну и повесил бы Mutator на модель User, чтобы забирать это как $this->auth->user()->admin
вопрос к теоретикам баз данных ^_^
у меня есть лента, собирающая в себя новости из десятков разных источников. соответственно в каждом источнике свои данные нужно хранить. общих полей почти нет.
как это лучше сделать? пока пришел к выводу, что надо сделать одну таблицу, где хранить дату добавления новости и ее название/краткое описание/картинку, соответственно наделать кучу таблиц, каждую со своими полями, где уже хранить доп. данные, привязывая их к основной базе.
Есть ли более человеческие варианты? А то в перспективе на сотне источников в этом легко утонуть
JhaoDa
@jhaoda
Jul 12 2015 19:34
@iGloom Entity — Value — Attribute, но это тоже скользкий путь...
Можно юзать PostgreSQL, он умеет хранить, индексировать и искать по json'у. Либо уходить на nosql к документо-оринентированным хранилищам
Alexander Popov
@ruelephant
Jul 12 2015 19:36
@jhaoda слыш чо?
JhaoDa
@jhaoda
Jul 12 2015 19:36
Можно юзать PostgreSQL, он умеет хранить, индексировать и искать по json'у. Либо уходить на nosql к документо-оринентированных хранилищам
Alexander Popov
@ruelephant
Jul 12 2015 19:36
я завел свой краудфандинг проджект. Всем джампить
:)
iGloom
@iGloom
Jul 12 2015 19:37
@jhaoda к сожалению стек технологий менять уже нельзя, я застрял на Mysql.
что известно о хранении json в Mysql, помимо того, что поиск с этого момента отменяется?
JhaoDa
@jhaoda
Jul 12 2015 19:42
@iGloom с хранением проблем никаких, это же текст
NickPanda
@NickPanda
Jul 12 2015 20:37
Всем привет!
Я пра, что Auth::check() проверяет авторизацию методом, если присутвует массив с данными о пользователя и сверяет по id верно?
Хотел узнать, как можно чтобы он проверял также наличие активный/не активный пользователь
Как это делать в момент авторизации я понял