These are chat archives for LaravelRUS/chat

21st
Feb 2016
Анатолій
@tolyan---tolyan
Feb 21 2016 01:03
Привет, у меня возникла трудность с авторизацией в 5.2, делал как здесь https://laracasts.com/series/whats-new-in-laravel-5-2/episodes/3 напишите пожалуйста кто может помочь
Dave
@aios
Feb 21 2016 02:14
а что с авторизацией?
Viktor Havryshkevych
@carlyle-v
Feb 21 2016 04:44
Какая трудность? Пишешь в консоль из папки проекта 'php artisan make:auth' без скобок само собой, после этого артисан сгенерирует тебе роуты, контроллер и отображение.
KennelWell попробуй return view('admin.categories.categories', [ 'data' => $data]); вроде так)
Maxim
@Big-Shark
Feb 21 2016 04:55
@SerafimArts @jhaoda в чем плюсы VO, POPO?
JhaoDa
@jhaoda
Feb 21 2016 04:56
@Big-Shark для меня в том, что у модели-сущности в подсказке вываливаются только её методы и свойства без километра элоквентовских
Maxim
@Big-Shark
Feb 21 2016 04:57
@jhaoda ну у меня почти так, хоть обьет не во и не попо
@jhaoda в нем есть еще куча других штук
@jhaoda просто мне допустим часто нужно знать состояния объекта, что изменилось, так почему это не может знать сам объект, а должен знать какой-то другой объект?
JhaoDa
@jhaoda
Feb 21 2016 05:04
@Big-Shark я не против каких-то полезных вещей, но не как у элоквента
Меня это не парило, пока я не решил работать «от интерфейса», что бы не возникало соблазна сделать что-то типа $model->fill($attrs)->save()...
Maxim
@Big-Shark
Feb 21 2016 05:15
@jhaoda а чем это плохо? Ну у элоквоента помойка из за того что все в 1 классе
JhaoDa
@jhaoda
Feb 21 2016 05:15
@Big-Shark ну вот не нравится мне
Maxim
@Big-Shark
Feb 21 2016 05:15
@jhaoda и единственный вариант как сделать чтоб все было в разных местах и не парило, это использовать генераторы
@jhaoda ну в доктрине ты будешь просто в персист пихать модель, и все)
@jhaoda больше парит что можно в элоквоент сделать так $model->find()
JhaoDa
@jhaoda
Feb 21 2016 05:16
@Big-Shark я на аналог орм смотрю, среднее между доктриной и элоквентом
Maxim
@Big-Shark
Feb 21 2016 05:16
@jhaoda хотя у нас уже $model это класс с данными)
@jhaoda я смотрел на него, но когда смотрел, он был еще очень сырым
JhaoDa
@jhaoda
Feb 21 2016 05:17
@Big-Shark Серафим тут два дня кипятком писает от восторга по поводу аналога
Maxim
@Big-Shark
Feb 21 2016 05:19
@jhaoda посмотрим что будет через неделю, две
JhaoDa
@jhaoda
Feb 21 2016 05:19
Ну вот и я пока не тороплюсь :)
Maxim
@Big-Shark
Feb 21 2016 05:19
@jhaoda если кипяток продолжится, то можно брать, как правило проблеммы возникают через некоторое время использования)
@jhaoda у меня по поводу проела он до сих пор идет, хотя некоторые вещи меня подбешивают)
Роман Сохарев
@greabock
Feb 21 2016 05:24
@fesor @SerafimArts почитал доку по аналогу... это бомба )
@fesor @SerafimArts спасибо, посоны )
KarmaBot
@KarmaBot
Feb 21 2016 05:25
Спасибо (+1) для @fesor принято! Текущая карма +39.
Спасибо (+1) для @SerafimArts принято! Текущая карма +256.
Роман Сохарев
@greabock
Feb 21 2016 05:27
@jhaoda @Big-Shark о... дык вы тоже по аналогу хайп подняли? )))
JhaoDa
@jhaoda
Feb 21 2016 05:27
@greabock ты ток заметил?
Роман Сохарев
@greabock
Feb 21 2016 05:27
ага
Maxim
@Big-Shark
Feb 21 2016 05:27
@greabock как видишь)
Роман Сохарев
@greabock
Feb 21 2016 05:27
@jhaoda я ток проснулся )
JhaoDa
@jhaoda
Feb 21 2016 05:28
Да, модная хипстарская штука этой недели, прям как борода
Роман Сохарев
@greabock
Feb 21 2016 05:28
@jhaoda это точно )
Maxim
@Big-Shark
Feb 21 2016 05:28
@jhaoda @greabock странно что вы его только заметили, я его зафоловил как только он вышел, еще в альфе грубо говоря)
Роман Сохарев
@greabock
Feb 21 2016 05:28
@Big-Shark @jhaoda не ну прикольно... прикольно жЫ? ))
JhaoDa
@jhaoda
Feb 21 2016 05:28
На Серафиме испытаем, если плеваться не начнет, то «надо брать»
Роман Сохарев
@greabock
Feb 21 2016 05:29
@jhaoda :smile:
JhaoDa
@jhaoda
Feb 21 2016 05:29
Да я слышал про аналог, но давно, не впечатлился
Maxim
@Big-Shark
Feb 21 2016 05:32
https://twitter.com/laravelphp/status/701176154670039041 верным путем идем, товарищи!
Dave
@aios
Feb 21 2016 05:34
Кто на Vue сейчас программит?
Maxim
@Big-Shark
Feb 21 2016 05:37
@aios ну я очень немного.
http://phpforum.su/index.php?showtopic=85904 парни, расходимся, и переходим на юии)
JhaoDa
@jhaoda
Feb 21 2016 05:47
@Big-Shark древняя тема же
Maxim
@Big-Shark
Feb 21 2016 05:47
@jhaoda ну 2015 год
JhaoDa
@jhaoda
Feb 21 2016 05:48
@Big-Shark последнее сообщение в июле
Maxim
@Big-Shark
Feb 21 2016 05:52
есть у кого сравнения ларавель5 и симфони, на инглише желательно?
Роман Сохарев
@greabock
Feb 21 2016 07:23
Кстати да... тут вспомнилось... маршрутизация в yii - это вообще самая ужасная его часть... Не помню уже точно, какую-то фичу сделать нужно было. Доку почитал, возможности такой не обнаружил. Пошел в чатик, говорю "так и так, хочу чтобы работало вот-так, как мне быть?Может есть какой костылёк?" В чатике говорят: не делай так. Просто не делай. ![wtf](картинка_с_Джеки_Чаном.jpg)
Aidosgd
@Aidosgd
Feb 21 2016 07:32
Всем привет! return $this->belongsTo(Brand::class); здесь можно ее сортировать по названию?
KarmaBot
@KarmaBot
Feb 21 2016 07:32
@Aidosgd, здравствуй.
Aidosgd
@Aidosgd
Feb 21 2016 07:33
я просто не давно начал изучать
@KarmaBot Привет
JhaoDa
@jhaoda
Feb 21 2016 07:35
@Aidosgd можно, это же объект билдера
Aidosgd
@Aidosgd
Feb 21 2016 07:36
return $this->belongsTo(Brand::class->sortBy); вот так?
JhaoDa
@jhaoda
Feb 21 2016 07:36
@Aidosgd тебе надо основы РНР подучить :)
@Aidosgd Brand::class — это строка, если чо. А вот $this->belongsTo() — возвращает объект билдера
Aidosgd
@Aidosgd
Feb 21 2016 07:37
)))
да учу
получается пишу метод и ее в объекте билдера вызываю?
JhaoDa
@jhaoda
Feb 21 2016 07:40
@Aidosgd кого «её»? Ты доку по ларавель читал?
Aidosgd
@Aidosgd
Feb 21 2016 07:41
Нет
JhaoDa
@jhaoda
Feb 21 2016 07:42
@Aidosgd а ты почитай
Aidosgd
@Aidosgd
Feb 21 2016 07:42
Ок спасибо
KarmaBot
@KarmaBot
Feb 21 2016 07:42
@Aidosgd, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Aidosgd
@Aidosgd
Feb 21 2016 07:42
@KarmaBot @jhaoda спасибо
KarmaBot
@KarmaBot
Feb 21 2016 07:42
@Aidosgd, не за что, я всегда к твоим услугам =)
Спасибо (+1) для @KarmaBot принято! Текущая карма +181.
Спасибо (+1) для @jhaoda принято! Текущая карма +659.
Aidosgd
@Aidosgd
Feb 21 2016 07:43
@jhaoda можешь ткнуть где именно про сортировку прочитать ?
Aidosgd
@Aidosgd
Feb 21 2016 07:44
@jhaoda Огромное спасибо
KarmaBot
@KarmaBot
Feb 21 2016 07:44
Спасибо (+1) для @jhaoda принято! Текущая карма +660.
Aidosgd
@Aidosgd
Feb 21 2016 07:57
Я смог отсортировать ее так
$brand = \App\Brand::orderBy('name', 'asc')->get();
JhaoDa
@jhaoda
Feb 21 2016 07:59
@Aidosgd но это же не то, что ты хотел?
Aidosgd
@Aidosgd
Feb 21 2016 07:59
но мне надо $brand отсортировать в $tires
да вот именно
не понял как это сделать
JhaoDa
@jhaoda
Feb 21 2016 07:59
@Aidosgd слушай, ну думать надо маленько, а? Это какбэ программирование, тут надо думать
@Aidosgd давай по пунктам. $this->belongsTo() возвращает билдер, так?
Aidosgd
@Aidosgd
Feb 21 2016 08:00
$tires = \App\Tire::get(); прямо в ней
@jhaoda так
JhaoDa
@jhaoda
Feb 21 2016 08:00
@Aidosgd так. У билдера есть метод orderBy(), так?
Aidosgd
@Aidosgd
Feb 21 2016 08:00
я пишу пишет ошибку
JhaoDa
@jhaoda
Feb 21 2016 08:01
Теперь подумай немного: если это билдер, и у него есть метод, то может быть можно этот метод у билдера прям в описании связи и вызвать?
Aidosgd
@Aidosgd
Feb 21 2016 08:01
Call to undefined method Illuminate\Database\Query\Builder::belongsTo()
return $this->orderBy('name', 'asc')->belongsTo(Brand::class);
JhaoDa
@jhaoda
Feb 21 2016 08:02
@Aidosgd ололо... ты меня не слушаешь вообще
Mikail Aziev
@aziev
Feb 21 2016 08:02
@jhaoda ты как препод в универе)) в хорошем смысле
Alexander
@Dualse
Feb 21 2016 08:02
@Aidosgd ты сначала сортируешь, а потом подтягиваешь связь
JhaoDa
@jhaoda
Feb 21 2016 08:02
@Aidosgd но ты близко!
Aidosgd
@Aidosgd
Feb 21 2016 08:03
@jhaoda return $this->belongsTo(Brand::class)->orderBy('name', 'asc'); так ошибку не дает но не сортирует ))
JhaoDa
@jhaoda
Feb 21 2016 08:04
@Aidosgd belongsTo это связь с ОДНИМ элементом. Что ты собрался сортировать?
Aidosgd
@Aidosgd
Feb 21 2016 08:05
Название брендов сортировать
Alexander
@Dualse
Feb 21 2016 08:06
@Aidosgd То есть их должно быть много?
JhaoDa
@jhaoda
Feb 21 2016 08:06
@Aidosgd ок, удачи в сортировке связи с одним брендом :)
Aidosgd
@Aidosgd
Feb 21 2016 08:06
блин
JhaoDa
@jhaoda
Feb 21 2016 08:06
@Aidosgd у нас не матерятся, отредактируй/удали сообщение
Aidosgd
@Aidosgd
Feb 21 2016 08:07
ой сорри
мне значит надо сам класс отсортировать
JhaoDa
@jhaoda
Feb 21 2016 08:09
@Aidosgd ты не ответил, их в этой связи много может быть или один?
Aidosgd
@Aidosgd
Feb 21 2016 08:10
брендов много
связи много
Alexander
@Dualse
Feb 21 2016 08:11
@Aidosgd Уточню. Связь один ко многим?
JhaoDa
@jhaoda
Feb 21 2016 08:12
@Aidosgd ну так, значит, тебе связь нужна belongsToMany
@Aidosgd короче, бегом читать доку.
Aidosgd
@Aidosgd
Feb 21 2016 08:13
ок ладно не буду мучить
@jhaoda @Dualse Спасибо
KarmaBot
@KarmaBot
Feb 21 2016 08:13
Спасибо (+1) для @jhaoda принято! Текущая карма +661.
Спасибо (+1) для @Dualse принято! Текущая карма +24.
Alexander
@Dualse
Feb 21 2016 08:16
А где лучше хранить данные, типа: заголовок и описание сайта, ссылка на логотип, ссылки на соц. сети и т.п.? До этого хранил все json, но знакомый создает отдельную таблицу и хранит все это там, говорит, что так намного удобнее.
projct1
@projct1
Feb 21 2016 08:17
парни объясните плз для чего новый Stacks нужен в Blade Template
кто знает как настроить symfony request чтобы dot нотация работала $request->get('arr.key.subkey')
Artur Gafurov
@assurrussa
Feb 21 2016 08:18
@rorc коротко, что бы подключать дополнительные скрипты из разных вьюшек, и закидывать их в нужное место
Sergey Protko
@fesor
Feb 21 2016 08:18
@rorc начнем с того что blade template не нужен
@rorc в целом это кастыль, если очень упрощать - это надстройка над блоками, что бы пользователь не забыл @parent указать
пожалуй блэйд это единственный велосипед в ларавели который меня бесит
Alexander
@Dualse
Feb 21 2016 08:28
@fesor Считаешь шаблонизаторы злом либо конкретно блейд?
Sergey Protko
@fesor
Feb 21 2016 08:29
@Dualse считаю что лучше twig-а ничего нет (на данный момент), а blade - это ненужный велосипед, NIH синдром и все такое
@Dualse и да, категорически против использования PHP в качестве шаблонизатора
JhaoDa
@jhaoda
Feb 21 2016 08:29
Твиг да, твиг это хорошо
Maxim
@Big-Shark
Feb 21 2016 08:31
@fesor почему против пхп? И чем тебе нравится так твиг?
Sergey Protko
@fesor
Feb 21 2016 08:31
@Big-Shark это ты мне?
Maxim
@Big-Shark
Feb 21 2016 08:31
@fesor угу
Sergey Protko
@fesor
Feb 21 2016 08:32
@Big-Shark я не видел ни одного проекта с PHP в качестве шаблонизатора, где небыло бы проблем с XSS и дублированием кода, а еще частенько видел как прямо в шаблонах реализовывали какую-нибудь сатану вроде работы с ORM
@Big-Shark вопрос в уровне разработчиков.
Maxim
@Big-Shark
Feb 21 2016 08:34
@fesor ну это да, хотя я на смарте видел такое что лучше не видеть
@fesor да и на твиге с помощью расширения и дурости можно нафигачить кучу ада
Sergey Protko
@fesor
Feb 21 2016 08:35
@Big-Shark да, но это ж надо усилия приложить)
@Big-Shark чем больше усилий надо приложить для того что бы сделать плохо - тем лучше
Maxim
@Big-Shark
Feb 21 2016 08:35
@fesor пффф, некоторые мои коллеги делаю это не прикладывая усилий)
projct1
@projct1
Feb 21 2016 08:35
@fesor @jhaoda почему blade тогда не сделают как сторонний пакет и подключать его пожеланию?
Maxim
@Big-Shark
Feb 21 2016 08:36
@fesor но вообще да, я согласен что шаблонизатор не должен давать возможности делать хрень
Sergey Protko
@fesor
Feb 21 2016 08:36
@Big-Shark я плетку на работу принес для этих целей, бьет не больно но обидно
Maxim
@Big-Shark
Feb 21 2016 08:36
@fesor хорошая идея, жаль нет удаленной плетки
Sergey Protko
@fesor
Feb 21 2016 08:38
@Big-Shark вводи код ревью с рейтингом пользователей
Artur Gafurov
@assurrussa
Feb 21 2016 08:38
@fesor :smile:
Sergey Protko
@fesor
Feb 21 2016 08:38
и выводи где-нибудь статистику "самый крутой код"
@Big-Shark именно "самый крутой код", что бы люди стремились туда попасть, "говнокодер месяца" - это будет только демотивировать
Maxim
@Big-Shark
Feb 21 2016 08:39
@fesor ну вот сейчас в планах внедрить код ревью, после того как я поднял бучу о том что неплохоб следовать бестпрактис.
Sergey Protko
@fesor
Feb 21 2016 08:39
@Big-Shark мы код ревью у себя ввели что бы обмен опытом инициировать
Maxim
@Big-Shark
Feb 21 2016 08:39
@fesor ну и это тоже.
Юрий
@sawerus
Feb 21 2016 08:53
@jhaoda добряк прям сегодня )))
почитал, аж заулыбался ))
Maxim
@Big-Shark
Feb 21 2016 09:04
А кто как письма верстает, кто с дивами, а кто с таблицами?
Artur Gafurov
@assurrussa
Feb 21 2016 09:09
@Big-Shark таблицы чаще использую, они везде одинаково выходят, меньше париться нужно)
Artiom
@PhpArt
Feb 21 2016 09:37
@Big-Shark на этот счет у меня кривые руки, в итоге не во всех почтовых клиентах/веб-интерфейсах корректно отображается, так что без необходимаости использю text/plain
projct1
@projct1
Feb 21 2016 09:41
кто-нибудь пользуется susy?
JhaoDa
@jhaoda
Feb 21 2016 09:56
Как. Же. Я. Ненавижу. Вордпресс.
Как же я затрахался делать из него импорт...
Soprun Vladislav
@vlsoprun
Feb 21 2016 10:24
Здорова парни
Юрий
@sawerus
Feb 21 2016 10:25
ку
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 10:25
@Big-Shark я раньше этим пользовался. было легко и всё работало
Maxim
@Big-Shark
Feb 21 2016 10:25
@VladShcherbin спасиб, гляну
KarmaBot
@KarmaBot
Feb 21 2016 10:25
Спасибо (+1) для @VladShcherbin принято! Текущая карма +69.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 10:26
@jhaoda попробуй битрикс +
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 10:26
отличный совет))
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 10:26
Угу, я знаю толк
После него больше проблем с вордпрессом не будет
Сейчас ты почувствуешь легкую боль в своем мизинце (с) майор Пеин
Юрий
@sawerus
Feb 21 2016 10:40
@SerafimArts Рассказать тебе историю про паравозик - ТюТю ))))
Ivan
@Hunternnm
Feb 21 2016 10:56
Бобрый день
Vladislav
@Danan96
Feb 21 2016 11:03
@Hunternnm добрый
Ivan
@Hunternnm
Feb 21 2016 11:06
@Big-Shark а не видел в сети типа онлайн код-ревью? Охота посмотреть на этот процесс
projct1
@projct1
Feb 21 2016 11:47
неужели никто не использует Susy? Кто как упрощает себе вёрстку?
Mikail Aziev
@aziev
Feb 21 2016 11:53
@rorc готовые сетки, например от бутстрап
projct1
@projct1
Feb 21 2016 11:53
@aziev ну это понятно, а доп инструменты и сервисы мб какие?
Mikail Aziev
@aziev
Feb 21 2016 11:55
@rorc sass, gulp
projct1
@projct1
Feb 21 2016 11:56
@aziev ок)
кстати валидатор ларавельный можно использовать в сторонних проектах?
Mikail Aziev
@aziev
Feb 21 2016 11:57
@rorc думаю ты про это и так знал?)
projct1
@projct1
Feb 21 2016 11:57
@aziev ага)
Mikail Aziev
@aziev
Feb 21 2016 11:58
This message was deleted
projct1
@projct1
Feb 21 2016 11:58
@aziev ага, лайтовенькие
Mikail Aziev
@aziev
Feb 21 2016 11:59
This message was deleted
Ivan
@Hunternnm
Feb 21 2016 12:02
тут же личка есть
Mikail Aziev
@aziev
Feb 21 2016 12:03
@Hunternnm да, извиняюсь, не знал
projct1
@projct1
Feb 21 2016 12:06
чуваки, подскажите как использовать ларавельный валидатор в проектах не на ларавеле?
Maxim
@Big-Shark
Feb 21 2016 12:12
@Hunternnm не видел
JhaoDa
@jhaoda
Feb 21 2016 12:13
@rorc а сам не хочешь разобраться?
projct1
@projct1
Feb 21 2016 12:20
@jhaoda на пакагисте вроде как нету отдельного пакета
@jhaoda хотя нашёл, сорри https://github.com/illuminate/validation
Maxim
@Big-Shark
Feb 21 2016 12:26
https://github.com/jjriv/emogrifier https://github.com/tijsverkoyen/CssToInlineStyles использовал ктото чтото такое, или схожее?
projct1
@projct1
Feb 21 2016 12:27
@jhaoda тока не могу инстанс создать new Illuminate\Validation\Validator() какой то транслятор нужен первым параметром ((
D3-FC
@D3-FC
Feb 21 2016 12:27

Привет всем. Подскажите пожалуйста куда смотреть
Есть вот такой мутатор


    public function setChildrenAttribute($v)
    {
        if (array_has($this->attributes,'provider_blank_medicines')){
            $v = $this->attributes['provider_blank_medicines'];
        }
    }

В контроллере вовращаю данные

$providerBlanks->with('providerBlankMedicines')->get();

И мутатор не задействуется, естественно.
Вопрос как его задействовать? потому что вот такой подход кажется мягко гвооря странным, хотя и рабочим

    foreach ($providerBlanks as $providerBlank) {
            $providerBlank->children='';
        }
KarmaBot
@KarmaBot
Feb 21 2016 12:27
@D3-FC, и тебе привет ;)
Maxim
@Big-Shark
Feb 21 2016 12:29
@D3-FC че ты вообще хочешь?
JhaoDa
@jhaoda
Feb 21 2016 12:29
@D3-FC потому что мутатор работает при установке значения
А ты, вроде как, выборку делаешь
Maxim
@Big-Shark
Feb 21 2016 12:29
@jhaoda ты про про inline css ничего не скажешь?
JhaoDa
@jhaoda
Feb 21 2016 12:29
@Big-Shark нет, не увлекаюсь :)
D3-FC
@D3-FC
Feb 21 2016 12:30
@Big-Shark @jhaoda
да, вопрос есть ли вспомогательная функция чтобы задействовать мутатор, чтобы получить при выборке данный атрибут {children}?
не прибегая к переборке вручную этой выборки
Maxim
@Big-Shark
Feb 21 2016 12:31
@D3-FC а что это за атрибут, и зачем ты его хочешь получить?
JhaoDa
@jhaoda
Feb 21 2016 12:31
@D3-FC что мешает сделать геттер?
D3-FC
@D3-FC
Feb 21 2016 12:32
@Big-Shark потому что компонента во фронте именно children аттрибут
@jhaoda а что геттер разве отработает при такой выборке?
JhaoDa
@jhaoda
Feb 21 2016 12:33
@D3-FC почему геттер должен работать при выборке?
Maxim
@Big-Shark
Feb 21 2016 12:33
@D3-FC что такое компонента во фронте?
JhaoDa
@jhaoda
Feb 21 2016 12:33
@D3-FC Ты эту коллекцию потом куда-то передаешь? Вот в этом «куда-то» наверняка в цикле выводишь элементы?
projct1
@projct1
Feb 21 2016 12:34
@jhaoda @Big-Shark подскажите плз как пользоваться валидатором ларавеля вне ларавеля (
JhaoDa
@jhaoda
Feb 21 2016 12:34
@D3-FC я тонко намекаю, что надо бы тебе ещё раз прочитать, что такое мутаторы и акцессоры
@rorc посмотри код ларавель, как он там используется
Maxim
@Big-Shark
Feb 21 2016 12:34
@rorc я не пытался им пользоваться, поэтому понятия не имею
D3-FC
@D3-FC
Feb 21 2016 12:35

@jhaoda > @D3-FC что мешает сделать геттер?

тогда к чему этот коментарий

@Big-Shark

@D3-FC что такое компонента во фронте?

Это компонента searchPanel в vue. она на входе ждёт вот такой объект

```

            this.models = [
                {
                    name: 'Element 1', children: [
                    {name: 'Element 2'},
                    {name: 'Element 3'},
                    {
                        name: 'Element 4',
                        children: [
                            {name: 'Element 2'},
                            {name: 'Element 3'},
                            {name: 'Element 4'},
                        ]
                    },
                ]
                },
                {name: 'Element 2'},
                {name: 'Element 3'},
                {name: 'Element 4'},
            ]
        }
KarmaBot
@KarmaBot
Feb 21 2016 12:35
@D3-FC, у нас тут принято писать кратко и по делу. А если нужно показать длинный код, то можно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
JhaoDa
@jhaoda
Feb 21 2016 12:36
@D3-FC какой комментарий «к чему»?
D3-FC
@D3-FC
Feb 21 2016 12:36
@jhaoda прекрасно понимаю что геттер и сеттер не должны отрабатывать при выборке
Maxim
@Big-Shark
Feb 21 2016 12:36
@D3-FC прочитай про фрактал
JhaoDa
@jhaoda
Feb 21 2016 12:36
Даже если там не перебор в цикле, а сериализация в массив, то всё равно можно почитать доку про сериализацию и узнать про свойство $append
Да тут даже фрактал не нужен
D3-FC
@D3-FC
Feb 21 2016 12:37
@jhaoda вопрос есть ли функиця helper чтобы пройтись по коллекции и активировать все мутаторы
Maxim
@Big-Shark
Feb 21 2016 12:37
@D3-FC нету
@D3-FC так как это не так должно делаться.
JhaoDa
@jhaoda
Feb 21 2016 12:37
@D3-FC я тебе выше уже два варианта предложил, но ты мне так и не ответил
D3-FC
@D3-FC
Feb 21 2016 12:38
@Big-Shark подскажи пожалста тогда, как это должно делаться?
JhaoDa
@jhaoda
Feb 21 2016 12:39
Ппц...
D3-FC
@D3-FC
Feb 21 2016 12:39
@jhaoda извини не понял вопроса
JhaoDa
@jhaoda
Feb 21 2016 12:39
@D3-FC ты эту коллекцию потом в массив превращаешь и скармливаешь vue.js?
Maxim
@Big-Shark
Feb 21 2016 12:39
@D3-FC я тебе написал на что надо обратить внимание, может ты прочитаешь всеж
D3-FC
@D3-FC
Feb 21 2016 12:39
@jhaoda скармливаю
return $providerBlanks->with('providerBlankMedicines')->get();
JhaoDa
@jhaoda
Feb 21 2016 12:40
@D3-FC это массив, правда?
D3-FC
@D3-FC
Feb 21 2016 12:40
нет. это коллекция
JhaoDa
@jhaoda
Feb 21 2016 12:41
Ппц...
D3-FC
@D3-FC
Feb 21 2016 12:41

@Big-Shark

@D3-FC прочитай про фрактал
ок прочитаю

JhaoDa
@jhaoda
Feb 21 2016 12:41
Я не понимаю, почему ты сам этого не нашел?
И фрактал тут не нужен (скорее всего)
D3-FC
@D3-FC
Feb 21 2016 12:42
@jhaoda спасибо. точно. стыдно.... смотрю в книгу, вижу ....
KarmaBot
@KarmaBot
Feb 21 2016 12:42
Спасибо (+1) для @jhaoda принято! Текущая карма +662.
Maxim
@Big-Shark
Feb 21 2016 12:47
@jhaoda можно конечно и без фрактала, но я предпочитаю стрелять из пушки по воробьям, дабы потом не переделывать все)
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 12:55
@Big-Shark тыц
Maxim
@Big-Shark
Feb 21 2016 12:56
@VladShcherbin не не не , надо на бекенде на пхп)
@VladShcherbin у нас достаточно много писем, и там много всякой логики вывода, и хочется писать более менее прилично все, и править тоже)
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 12:56
@Big-Shark ааа, сорри, такого опыта нет
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 13:02
@Big-Shark ink использует тыц
вроде как обёртка для пыхи есть - 1, 2
Maxim
@Big-Shark
Feb 21 2016 13:04
@VladShcherbin ну как вариант, но думаю лучше на серваке у себя обрабатывать, ну и руби ставить тоже лень)
Vlad Shcherbin
@VladShcherbin
Feb 21 2016 13:05
@Big-Shark эх, не угодишь тебе)
Maxim
@Big-Shark
Feb 21 2016 13:07
@VladShcherbin ну я жду что сейчас кинут с ссылку с миллионом звездочек, 10 тысячами контрибьютеров, и все это на сервере и на пхп)
JhaoDa
@jhaoda
Feb 21 2016 13:07
@Big-Shark а потом ты проснешься :)
D3-FC
@D3-FC
Feb 21 2016 13:10
This message was deleted
@jhaoda
теперь когда создаю модель она всегда подтягивает отношение которое вызывается в атрибуте chuildren.
это конечно правильно. Но если понадобится эта модель без отношений, зачем лишнее обращение в базу делать.
Как сказать модели в таком случае не грузить этот children
    protected $appends = ['children'];
    public function getChildrenAttribute()
    {
        return $this->providerBlankMedicines;
    }
?
except('children') - ведь просто отрежет из коллекции уже вытянутой из базы
верно?
JhaoDa
@jhaoda
Feb 21 2016 13:13
@D3-FC никак, или сам городи костыль какой-нибудь (метод для добавления/удаления элементов из/в $appends) или фрактал юзай
D3-FC
@D3-FC
Feb 21 2016 13:13
@jhaoda понятно спасибо
KarmaBot
@KarmaBot
Feb 21 2016 13:13
Спасибо (+1) для @jhaoda принято! Текущая карма +663.
D3-FC
@D3-FC
Feb 21 2016 14:11
Что-то не пойму фрактал уже в dependences у лары из упакоки идёт?
JhaoDa
@jhaoda
Feb 21 2016 14:12
@D3-FC нет
D3-FC
@D3-FC
Feb 21 2016 14:13
@jhaoda помоги ссылкой если не сложно. Кучу форков нашёл. Но какой брать не пойму
D3-FC
@D3-FC
Feb 21 2016 14:14
@Big-Shark спасибо
KarmaBot
@KarmaBot
Feb 21 2016 14:14
Спасибо (+1) для @Big-Shark принято! Текущая карма +658.
Анатолій
@tolyan---tolyan
Feb 21 2016 14:52
Привет, кто может помочь с авторизацией в Laravel 5.2 ? я делал как на видео https://laracasts.com/series/whats-new-in-laravel-5-2/episodes/3
проблема в том, что после авторизации я перехожу на вкладку главная и справа уже загружается (Войти, регистрация) вместо Имени пользоватея и Выйти.
Кто знает как исправить или другой способ авторизации, напишите пожалуйст
Soprun Vladislav
@vlsoprun
Feb 21 2016 14:55
Опять?! Да вы издеваетесь ))
Главная страница находится в группе web?
Анатолій
@tolyan---tolyan
Feb 21 2016 14:55
@vlsoprun извините, я недавно начал изучать фреймворк, а как посмотреть это? в роуте?
Soprun Vladislav
@vlsoprun
Feb 21 2016 14:55
Да
Анатолій
@tolyan---tolyan
Feb 21 2016 14:56
нет,сейчас добавлю и проверю
Юрий
@sawerus
Feb 21 2016 14:56
а лучше пробежаться по доке... займет пару тройку часов... Хотя бы примерно в голове отложиться что где искать.
Анатолій
@tolyan---tolyan
Feb 21 2016 14:58
@vlsoprun спасибо, работает :+1:
KarmaBot
@KarmaBot
Feb 21 2016 14:58
Спасибо (+1) для @vlsoprun принято! Текущая карма +88.
Alexander
@Dualse
Feb 21 2016 14:59
Еще раз спрошу, где вы храните данные типа заголовок и описание сайта?
Maxim
@Big-Shark
Feb 21 2016 15:02
@Dualse какой заголовок и описание?
Юрий
@sawerus
Feb 21 2016 15:03
я вот тоже задумался... seo title и description или что-то другое
Alexander
@Dualse
Feb 21 2016 15:04
@Big-Shark Ну которые "в шапке", чтобы через админку можно было менять. Плюс там еще разные настройки для сайта, типа ссылки на соц. сети и т.п.
Maxim
@Big-Shark
Feb 21 2016 15:06
@Dualse не, у меня это не меняется, ибо нафиг не надо
Artiom
@PhpArt
Feb 21 2016 15:08
@Dualse у меня отдельная таблица для мета данных, редиректов, noindex, sitemap и т.п.... а ссылки на соц. сети разместил бы в справочнике, в виде html
Alexander
@Dualse
Feb 21 2016 15:15
@PhpArt И потом кешируешь результат?
JhaoDa
@jhaoda
Feb 21 2016 15:23
С этой мидлварей web каждый день, штоле, приходить будут...
Artiom
@PhpArt
Feb 21 2016 15:23
@Dualse ммм... какой результат? данные передаю в шаблон
JhaoDa
@jhaoda
Feb 21 2016 15:24
@tolyan---tolyan Толян, ты уже до аутентификации дошел, но до сих пор не знаешь, где смотреть навешанные на роуты мидлвари. Тебя это не смущает?
Alexander
@Dualse
Feb 21 2016 15:25
@PhpArt Ну то есть заголовок, описание и т.п. не кешируешь? Получается каждый раз при старте страницы дергаешь все с бд?
Alexey Sachkov
@AlexeySachkov
Feb 21 2016 15:25

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

Чтобы просто добавить новое поле, можно создать accessor и указать новое поле в $appends. Можно ли используя встроенный функционал реализовать замену существующего поля на другое при сериализации?

В частности, есть какое-нибудь поле типа timestamp: occured_at. Как можно сделать, чтобы при доступе к нему возвращался объект Carbon, а при сериализации в JSON оказывался просто unix timestamp?

KarmaBot
@KarmaBot
Feb 21 2016 15:25
@AlexeySachkov, привет =)
Alexey Sachkov
@AlexeySachkov
Feb 21 2016 15:26
Унаследоваться от Carbon и переопределить toString? Написать свой хелпер и сериализовать руками?
JhaoDa
@jhaoda
Feb 21 2016 15:27
@AlexeySachkov league/fractal тебе поможет
Artiom
@PhpArt
Feb 21 2016 15:28
@Dualse да, не вижу проблемы взять одну запись из бд
ukroficer
@ukroficer
Feb 21 2016 15:29
кто ставил sleeping-owl на 5.2
Maxim
@Big-Shark
Feb 21 2016 15:31
@ukroficer ну я допустим
Artiom
@PhpArt
Feb 21 2016 15:31
@Dualse рендер шаблона в этом плане происходит дольше, так что если кэшировать, то уж шаблон, а не данные для него... имхо
ukroficer
@ukroficer
Feb 21 2016 15:32
@Big-Shark Там ошибку выкидывает как с ней бороться?
Maxim
@Big-Shark
Feb 21 2016 15:32
@ukroficer поставить одну из адаптированых версий под 5.2
ukroficer
@ukroficer
Feb 21 2016 15:32
@Big-Shark а где ее взять?
Maxim
@Big-Shark
Feb 21 2016 15:32
@ukroficer одна находится у меня в репозиторях, а другоя в репозиториях laravelrus
Alexander
@Dualse
Feb 21 2016 15:33
@PhpArt Ну если, к примеру, мне надо 5 разных полей дернуть из БД, то получается, что уже 5 лишних запросов к БД каждый раз. Или я не правильно понял суть?)
Artiom
@PhpArt
Feb 21 2016 15:34
@Dualse пять полей или пять записей? одна запись = все поля, которые тебе нужны
ukroficer
@ukroficer
Feb 21 2016 15:35
@Big-Shark можно пруф не могу найти, кстати проект развиваеться или заглох?
Maxim
@Big-Shark
Feb 21 2016 15:36
@ukroficer 50/50, ну если ты не можешь найти репозиторий у указаных авторов то все очень плохо, глянь еще у scif есть версия под 5.2
Alexander
@Dualse
Feb 21 2016 15:36
@PhpArt То есть все в одну запись кладешь? И какая тогда структура таблицы?
ukroficer
@ukroficer
Feb 21 2016 15:37
@Big-Shark нашел вроде, а есть еще какой то билдер админок достойный.
Maxim
@Big-Shark
Feb 21 2016 15:37
@ukroficer нет
Artiom
@PhpArt
Feb 21 2016 15:37
@Dualse условно id, page_id, title, keywords и т.д.
ukroficer
@ukroficer
Feb 21 2016 15:40
@Big-Shark нет все равно не ставиться
Alexander
@Dualse
Feb 21 2016 15:41
@PhpArt Ну теперь понял логику
Maxim
@Big-Shark
Feb 21 2016 15:44
@ukroficer че пишет?
JhaoDa
@jhaoda
Feb 21 2016 15:46
@Big-Shark ждём чаторазрывающий скрин :)
Роман Сохарев
@greabock
Feb 21 2016 16:03
Как дела, котаны? =))
Maxim
@Big-Shark
Feb 21 2016 16:03
@greabock так себе)
Роман Сохарев
@greabock
Feb 21 2016 16:04
@Big-Shark тебе ли жаловаться? ))
Maxim
@Big-Shark
Feb 21 2016 16:04
@greabock Why not?
Роман Сохарев
@greabock
Feb 21 2016 16:05
Ну у тебя даже когда всё плохо, то хоть погода хорошая )))
Maxim
@Big-Shark
Feb 21 2016 16:06
@greabock ну в этом ты прав)
Alexey Sachkov
@AlexeySachkov
Feb 21 2016 16:06
@jhaoda спасибо, попробую
KarmaBot
@KarmaBot
Feb 21 2016 16:06
Спасибо (+1) для @jhaoda принято! Текущая карма +664.
Роман Сохарев
@greabock
Feb 21 2016 16:07
@Big-Shark Макс, а у тебя сколько попугае-сантиметров уже? )
карма
KarmaBot
@KarmaBot
Feb 21 2016 16:07
@greabock, Ваша карма +329. Вы благодарили 49 раз.
- Достижения: "Находчивый", "Любитель сладкого", "Благодетель", "Благодарный"
- Профиль greabock на laravel.su
Maxim
@Big-Shark
Feb 21 2016 16:07
карма
KarmaBot
@KarmaBot
Feb 21 2016 16:07
@Big-Shark, Ваша карма +658. Вы благодарили 129 раз.
- Достижения: "Находчивый", "Любитель сладкого", "Благодетель", "Благодарный", "Нахлебник", "Рэмбо", "Вопрошайка"
- Профиль Big-Shark на laravel.su
Роман Сохарев
@greabock
Feb 21 2016 16:08
@Big-Shark отстаешь )
Maxim
@Big-Shark
Feb 21 2016 16:09
@greabock ну я тут и реже бываю сейчас)
Murad
@Muradg
Feb 21 2016 16:46
Всем привет
KarmaBot
@KarmaBot
Feb 21 2016 16:46
@Muradg, привет =)
Soprun Vladislav
@vlsoprun
Feb 21 2016 16:49
привет
Murad
@Muradg
Feb 21 2016 16:51
Я только начинаю изучать laravel, до этого писал с нуля, проще говоря гавнокодил одно и тоже. Подскажите пожалуйста, что можно попробовать написать на laravel'e дабы попробовать все в деле ?
Alexander
@Dualse
Feb 21 2016 16:51
@Muradg А что ты писал с нуля?
Murad
@Muradg
Feb 21 2016 16:55
@Dualse сайты, фрилансил)) Сделал около 3-4 сайтов которые сейчас живы и активно работают. А самому до сих пор стыдно за код
начинал я с dcms, теперь от этого стиля отвыкнуть не могу...
Alexander
@Dualse
Feb 21 2016 16:56
@Muradg Я, всм, блоги, визитки, им?
Murad
@Muradg
Feb 21 2016 16:56
@Dualse биллинг панель, crm, интернет магазин
Alexander
@Dualse
Feb 21 2016 16:57
@Muradg Ну вот, попробуй решить ту же задачу, только с помощью Laravel. Как раз оценишь все преимущества и недостатки фреймворка
Ivan
@Hunternnm
Feb 21 2016 16:59
Коллеги, как вы с ленью справляетесь?
Sergey Protko
@fesor
Feb 21 2016 17:00
@Hunternnm я на этот случай на работу плеточку притащил)
Ivan
@Hunternnm
Feb 21 2016 17:01
@fesor садо-мазо не мое
Sergey Protko
@fesor
Feb 21 2016 17:01
@Hunternnm а оно не больно, просто обидно и мотивирующе
Artur Gafurov
@assurrussa
Feb 21 2016 17:01
@Hunternnm никак, с ней ненадо ничего делать) надо просто понимать зачем ты что-то делаешь и всё))
Sergey Protko
@fesor
Feb 21 2016 17:01
@Hunternnm короч если тебе лень - отдохни)
Ivan
@Hunternnm
Feb 21 2016 17:01
@fesor чувак, ты меня пугаешь...
Sergey Protko
@fesor
Feb 21 2016 17:01
@Hunternnm че, тимбилдинг через боль
боль и унижение
Ivan
@Hunternnm
Feb 21 2016 17:02
@assurrussa понимаю, знаю зачем... но вск...
Sergey Protko
@fesor
Feb 21 2016 17:02
@Hunternnm короч бери и делай дела. Рекомендую просто начать а там пойдет
Artur Gafurov
@assurrussa
Feb 21 2016 17:02
@Hunternnm приоритет расставь)
Sergey Protko
@fesor
Feb 21 2016 17:03
приоритизация это круто
а еще круто - штуки типа pomodoro
Artiom
@PhpArt
Feb 21 2016 17:04
вотже... почти полностью переписал свой админ билдер с blade на twig... шаблоны стали как-то чище, что ли ))
Sergey Protko
@fesor
Feb 21 2016 17:04
@PhpArt blade это грязь и пороки
@PhpArt twig - чистота и DRY
Artiom
@PhpArt
Feb 21 2016 17:05
@fesor но решил попробовать всё равно... убедился в этом ))
Sergey Protko
@fesor
Feb 21 2016 17:06
@PhpArt ну не зря же это самая популярная реализация шаблонизаторов
@PhpArt ее примерно в том же виде и питонщики и джависты юзают
Alexander
@Dualse
Feb 21 2016 17:11
@fesor У тебя серьезно плетка на работе?! Я думал ты шутишь...
Sergey Protko
@fesor
Feb 21 2016 17:11
@Dualse и не у меня одного! У нас веселая компания)
Murad
@Muradg
Feb 21 2016 17:11
Мне срочно нужен наставник..
Sergey Protko
@fesor
Feb 21 2016 17:12
@Muradg откуда такая срочность?)
Artiom
@PhpArt
Feb 21 2016 17:12
@fesor плётки хочет
Sergey Protko
@fesor
Feb 21 2016 17:13
@PhpArt плетку надо заслужить еще... Это надо заслужить уровень доверия что бы была возможность сломать что-то что важное
Murad
@Muradg
Feb 21 2016 17:14
Плетку себе оставьте)
Sergey Protko
@fesor
Feb 21 2016 17:15
@Muradg зачем тебе наставник?
Murad
@Muradg
Feb 21 2016 17:16
@fesor сейчас с идеями туго. Я недавно создавал тему на форуме, где меня обосрали по поводу кода. Я никак не могу отвыкнуть от процедурного стиля со времен dcms
Sergey Protko
@fesor
Feb 21 2016 17:16
@Muradg я могу тебе сказать, что большая часть людей которые тебя обсирали сами пишут в процедурном стиле, просто не знают об этом
@Muradg начни мыслить в категории "объектов" и "сообщений между ними".
и все будет хорошо
Murad
@Muradg
Feb 21 2016 17:18
То есть, до этого, вся моя сила в ооп была в классе со статическими методами)) На данный момент я на ларавеле смог сделать следующее: админку (ввод пароля), разобрал роутинг, middleware, немного поработал с моделями и т.д.. Но когда в голову приходит мысли как сделать на нем интернет магазин, я останавливаюсь...
Sergey Protko
@fesor
Feb 21 2016 17:18
@Muradg базовые идеи заложенные в концепцию ООП, и никакой чуши про "объекты реального мира", это уже бред наркоманов
@Muradg у тебя проблемы с декомпозицией задач
@Muradg попробуй так. Нарисуй на бумашке большой квадрат - это будет твой интернет магазин. Потом попробуй вписать туда еще пяток квадратов, то из чего он состоит. И так далее пока понимаешь что делаешь
Murad
@Muradg
Feb 21 2016 17:20
По поводу объектов кстати, я могу мыслить о них например в игре. Они как-то взаимодействуют друг с другом. Но что значит объекты на сайте ? Никак не могу вбить себе в голову, что например какой-то пост, или сообщение это объект и у него есть свои свойства
Sergey Protko
@fesor
Feb 21 2016 17:20
@Muradg все - объект.
Murad
@Muradg
Feb 21 2016 17:20
" и никакой чуши про "объекты реального мира"" я уже себе вбил это в голову от других, и не дает мне покоя. Всегда сравнивают с реальным миром.
Sergey Protko
@fesor
Feb 21 2016 17:20
@Muradg повторю - попробуй сделать то что я описал, раздели всю систему на отдельные большие компоненты, потом еще и еще и еще
Alexander
@Dualse
Feb 21 2016 17:21

@fesor Почему?

@Muradg ...... "объекты реального мира", это уже бред наркоманов

Sergey Protko
@fesor
Feb 21 2016 17:22
@Dualse пару недель назад я общался с одним чуваком на тему "мое ООП лучше твоего", и там мы рассуждали о том что должно быть в чем с точки зрения "объектов реального мира". Так вот, в подавляющем большинстве случаев следуя логике авторов у нас поведение по работе с состоянием объекта было почему-то у дргого объекта. То есть нарушалась сама идея ООП
Murad
@Muradg
Feb 21 2016 17:23
Ну например я представляю интернет-магазин так: статические страницы, сам магазин и авторизация/регистрация. Это 3 самые крупные части. Потом от магазина идет корзина, история и т.д..
Alexander
@Dualse
Feb 21 2016 17:23
@Muradg Товар, пользователь?
Sergey Protko
@fesor
Feb 21 2016 17:23
@Dualse основная идея, заложенная в ОО - сокрытие состояния. У большинства же людей, код которых мне давелось смотреть, это было нарушено, появлялся какой-то объект который знал о состоянии другого объекта и менял его. Например в случае анемичных моделей.
Murad
@Muradg
Feb 21 2016 17:23
товар в магазине
Sergey Protko
@fesor
Feb 21 2016 17:24
@Muradg
Интернет магазин
  | -  Каталог товаров
        | - Категории
        | - Продукты
             | - характеристики продуктов...
  | -  Заказы
       | - карзина
       | - оформление
       | - управление
       | - история
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 17:24
Т.е.
Sergey Protko
@fesor
Feb 21 2016 17:26
@Muradg ну ты понял идею. Надо не "наставников" искать а учиться декомпозицию системы делать
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 17:27
Ой, чертов мобильный гиттер
Sergey Protko
@fesor
Feb 21 2016 17:27
@Muradg есть оч интересный способ проверять насколько ты могешь делить систему на состовляющее. Тип берем двух чуваков на одном проекте, и просим их описать систему которую они пишут максимум 4-мя объектами, и потом смотрим и сравниваем что они нарисовали. Если одинаково - все збс, если по разному - то обсуждаем почему))
@Muradg этот же способ хорошо подходит для того что бы определить норм архитектура твоего приложения или не норм. При нормальной архитектуре - все очевидно и у всех кто работает с кодом одно понимание.
Alexander
@Dualse
Feb 21 2016 17:29
@fesor Такой вопрос. Откуда ты берешь всю эту информацию? Опыт?
Sergey Protko
@fesor
Feb 21 2016 17:29
@Dualse что бы холиварить надо много читать
Murad
@Muradg
Feb 21 2016 17:30
А если когда читаешь, то каждое второе слово приходится гуглить и уходить куда-то в жопу ? Это значит не начитанный ?
Sergey Protko
@fesor
Feb 21 2016 17:30
@Dualse на самом деле просто задавал много вопросов и ответы на них мне казались нелогичными. Например объекты реального мира, и поведение. Многие почему-то считает что книга не может переворачивать страницы сама по себе, но вот электронная книга - может. Или там ООП - я долго думал что понимаю пока не начал холиварить с функциональщиками, которые кричали направо и налево что ОО это говно
Murad
@Muradg
Feb 21 2016 17:31
Найдя какое-то определение, я например ищу его. Попадаю в вики, с вики попадают куда-то еще. Ухожу от темы и все равно не понимаю, что значит то или иное определение
Sergey Protko
@fesor
Feb 21 2016 17:32

в итоге...

1) структурное программирование - flow control
2) ОО - управление зависимостями, декомпозиция и сокрытие состояния
3) функциональщина - математическая чистота, отсутствие состояния и побочных эффектов

Murad
@Muradg
Feb 21 2016 17:33
Особенно касается актуальных технологий, phpunit, composer и т.д.. Новые технологии даются очень тяжело. Не понимаю из-за чего это. За 4 года, я остался на процедурном стиле. Вообще не развиваюсь. Мне 20 лет, и вроде бы такой возраст когда должен все переваривать
Sergey Protko
@fesor
Feb 21 2016 17:33
phpunit - мегастарая концепция
Alexander
@Dualse
Feb 21 2016 17:33
@Muradg А я в 16 лет только в игрушки играл)
Sergey Protko
@fesor
Feb 21 2016 17:33
@Muradg не переживай, я знаю людей с 10-ти летним стажем которые ни тестов ниразу не писали ни композер не знают
@Muradg а тебе просто лень)
@Muradg еще из популярных заблюждений - ООП это классы, хотя в самой аббривиатуре нет ничего о них.
типы объектов - да, но не классы
Murad
@Muradg
Feb 21 2016 17:35
@Dualse я знаю человека который на года 2 младше меня, сейчас строчит на laravel'e хороший рейтинг на git'e, создает приложения для андроида и многое другое.. Вот и пример..
Sergey Protko
@fesor
Feb 21 2016 17:35
@Muradg мне 23
Murad
@Muradg
Feb 21 2016 17:35
@Muradg а тебе просто лень) тут ты прав. но я изо дня в день стараюсь читать что-то новое. Но все бестолку
Sergey Protko
@fesor
Feb 21 2016 17:36
@Muradg потому что просто читать - бестолку
@Muradg тут пробовать нужно
Murad
@Muradg
Feb 21 2016 17:36
Ну я боюсь что к 23, я все так же буду тухнуть..
Sergey Protko
@fesor
Feb 21 2016 17:36
@Muradg хм.. давай так... у тебя сейчас проблема с тем, что ты не понимаешь ОО, так? но понимаешь процедурщину
Alexander
@Dualse
Feb 21 2016 17:36
@fesor Прям, самооценка конкретно падает, когда узнаешь, что ребята, которые чуть старше тебя, знают дофига, а ты нефига)
Murad
@Muradg
Feb 21 2016 17:37
Я про ооп на php.net читал раз 10
Sergey Protko
@fesor
Feb 21 2016 17:37
@Muradg забей пока на то что ты читал)
@Muradg лучше напиши на gist бложик так как тебе удобно.
@Muradg ну мол... или... хз... надо что-то маленькое придумать что можно за пару часов написать.
Murad
@Muradg
Feb 21 2016 17:38
Я знаю про трейты, абсрактные классы, пространства имено и многое другое. Но от того что я читал, ничего не изменилось..
Sergey Protko
@fesor
Feb 21 2016 17:38
@Muradg потому что все это - информационный мусор. Знать это надо, но понимание как это юзать это тебе не даст
@Muradg давай сначала определимся с таким словом как "состояние"
что это такое и с чем его едят
$val = 1;
$state = 0; $state++;
Murad
@Muradg
Feb 21 2016 17:40
Вот как ты говорил, я не могу это все представить. Не могу включить мозг - чтобы понять. Мой главный вопрос был таков: зачем ооп, когда есть процедурный стиль. МНе понятно ? Ну и все, сайты работают - все нормально. А то что мне говорят что ООП лучше и код чище, меня не касается. ВОт с чего я начинал
Sergey Protko
@fesor
Feb 21 2016 17:40
зачем ооп, когда есть процедурный стиль. МНе понятно ?
вооооот
вот об этом я и хочу с тобой поговорить)
@Muradg для этого надо понимать что такое "состояние"
@Muradg короч если коротко - состояние - это то что может поменяться со временем.
переменные всякие, и т.д.
Murad
@Muradg
Feb 21 2016 17:41
ну.. понял
Sergey Protko
@fesor
Feb 21 2016 17:41
допустим у нас есть состояние книги
$bookState = [
    'name' => 'The Hitchhiker's Guide to the Galaxy',
    'page' => 42, // на какой мы странице
    'line' => 13  // на какой мы строчке
];
@Muradg норм?
Murad
@Muradg
Feb 21 2016 17:43
да
Sergey Protko
@fesor
Feb 21 2016 17:43
и мы можем работать с этим состоянием при помощи обычных функций
function book_open($name) : array;
function book_remember_position($book, $page, $line);
и работать мы будем как-то так
а лучше... даже подругому
namespace book;

function open($name) : array;
function remember_position($book, $page, $line);
что бы сразу к пространству имен перескочить потом
$book = book\open('The Hitchhiker's Guide to the Galaxy');
while($position = book\is_reading()) {
    book\remember_position($book, $position['page'], $position['line'])
}
@Muradg ну как, похоже на процедурщину?
Murad
@Muradg
Feb 21 2016 17:48
С добавление пространства имен не похоже..
Sergey Protko
@fesor
Feb 21 2016 17:48
@Muradg почему?) я просто убрал префикс book_ у функций и заменил это на пространство имен. Это к ООП вообще никакого отношения не имеет
это просто для того что бы не превращать код в кашу и именовать штуки удобненько
Murad
@Muradg
Feb 21 2016 17:49
А все понял
Sergey Protko
@fesor
Feb 21 2016 17:49
что у нас теперь есть
у нас есть состояние книги ($book) и какое-то поведение, зашитое в функции
"поведение" - это как штуки себя ведут, что с ними можно делать и т.д.
для поведения $book является контекстом, то есть все наши функции которые принимают этот аргумент содержат какое-то поведение для изменения состояния книги
Murad
@Muradg
Feb 21 2016 17:52
В laravel'e например Eloquent мне очень нравится. Вот с использованием его код реально можно "читать "
Sergey Protko
@fesor
Feb 21 2016 17:52
@Muradg Eloquent говно но не будем об этом)
@Muradg во всяком случае пока рано)
Murad
@Muradg
Feb 21 2016 17:52
:smile:
Sergey Protko
@fesor
Feb 21 2016 17:53
так вот, то что я написал пока тебе понятно?
про контексты и все такое
Murad
@Muradg
Feb 21 2016 17:53
Ну вот на примере книги понятно. Есть функции которые позволяют менять состояние самой книги и т.д.
Sergey Protko
@fesor
Feb 21 2016 17:53
book\open - создает контекст, book\remember_position - меняет состояние в каком-то контексте (какой-то книги)
Murad
@Muradg
Feb 21 2016 17:54
понял
Sergey Protko
@fesor
Feb 21 2016 17:54
ну вот, а теперь о минусах такого подхода. У нас сейчас состояние и поведение в разных местах. Это значит у нас наше состояние открыто всему миру, любой может чего-то поменять (не из злого умысла, случайно), если у нас открыты две книги проще допустить ошибку
было бы удобнее если бы состояние и поведение были зашиты в одно место
и вот этим месотм являются объекты
Murad
@Muradg
Feb 21 2016 17:57
ну вот на этом примере действительно понятнее и удобнее использовать ооп. открыл книгу, прочитал, закрыл и т.д.. Тоже самое я могу представить в игре. Объекты - персонажи, у которых есть жизни, защиты и т.д.. У них есть методы которые меняют их свойства (например позиция) и т.д..
Но что будет когда дойдет до самого сайта...
Sergey Protko
@fesor
Feb 21 2016 17:58

У них есть методы

у них есть поведение

которые меняют их свойства

которые меняют их состояние

Murad
@Muradg
Feb 21 2016 17:58
ой извиняюсь ..
Sergey Protko
@fesor
Feb 21 2016 17:58
@Muradg ну а тут уже вопрос в том, на какие объекты ты поделишь систему. Ты же как-то имена функций придумываешь)
@Muradg или там... у тебя как-то состояние хранится
@Muradg а если есть отдельное состояние - можно для этого запилить объект.
@Muradg если объект становится большим - его можно еще поделить.
короч основная пока фишка - мы "прячем" состояние внутрь объекта и только сам объект может его изменить
это дает нам изоляцию маленькой части системы, и мы можем делать внутри что вздумается, на верхние уровни это влиять уже не должно.
@Muradg другие объекты могут отправлять сообщения, в которых будут просить сделать чего-нибудь. Причем тут самая мозговыносящая идея, которая чуточку идет в разрез с языками, это то что объекты не обязательно должны уметь это делать.
@Muradg мол... нам пришло сообщение, а мы не умеем это делать... отпровителю сообщения пофигу. Но вдруг мы знаем кого-то кто может это сделать - отправляем сообщение туда, возвращаем ответ. Или же если вообще никак - кидаем ошибку.
к сожалению если бы все так было - было бы красиво, просто и много багов
Murad
@Muradg
Feb 21 2016 18:03
@Muradg Но вдруг мы знаем кого-то кто может это сделать - отправляем сообщение туда, возвращаем ответ.
Sergey Protko
@fesor
Feb 21 2016 18:04
потому нам все же нужна гарантия что объекты умеют обрабатывать те или иные сообщения, и это ведет нас к интерфейсам.
Murad
@Muradg
Feb 21 2016 18:04
вот это в голове трудно складывается. Как правильно разделять части чтобы получилось что-то вроде этого
Sergey Protko
@fesor
Feb 21 2016 18:04
так мы получим ошибку раньше
@Muradg а вот это уже надо читать про SOLID и GRASP
в частности на данном этапе:
  • single responsibility
  • информационный эксперт (определяет кто должен что-то делать)
  • низкая связанность
  • высокое зацепление (вот это мало кто вообще понимает вообще, хотя концепция оооочень важная)
ну и да, вот тут ActiveRecord говно потому что оно ни разу не соблюдает SOLID
ActiveRecord - это упрощенная концепция и там эти нарушения - это для удобства.
в целом не думай что у тебя получится быстро вьехать как правильно делить все на объекты и т.д
я вот сильно сомневаюсь что я это правильно умею делать...
оно просто должно получаться удобно
и лучше начинать дробить систему с самого большого к частям поменьше
выделяя "что зачем надо"
так и работать проще - взял маленкий кусок задачи - решил. Еще один кусочек - решил.
Sergey Protko
@fesor
Feb 21 2016 18:09
Надо сделать каталог товаров - у тебя появится объект Catalog. Наш каталог должен уметь хранить какие-то товары, и возможно они должны лежать по категориями.... появляются еще Product и Category.
Murad
@Muradg
Feb 21 2016 18:11
Вот когда код так сказать читается - кажется что все правильно распределено. Например новичкам сейчас рекомендут laravel как первый фреймворк. Человек который никогда не работал с фреймворком (например я) вообще не понимает что-на чем держится. Если в каких то движках я понимал где ядро, где шапка и ноги, то мне этого хватало. А сейчас просмотрев laravel я даже не понимаю 99% того что там есть. Главная моя проблема я не могу сайт представить как совокупность объектов. Если при виде его я могу разделить по блокам, то внутри для меня творится ужас.
Ну вот к примеру интернет магазин на ларавеле
Есть у нас 3 основные части: пользователи, магазин и страницы. Нужно ли к примеру для магазина создавать класс ?
Sergey Protko
@fesor
Feb 21 2016 18:19
для магазина надо создать папку. "классы" - это очень маленькие штуки
грубо говоря - сначала вся система, потом ее компоненты (отдельные пространства имен если тебе так удобнее), у компонентов могут быть дополнительные компоненты, и потом уже объекты
Murad
@Muradg
Feb 21 2016 18:20
ну допустим в папке app создаем папку shop ?
Sergey Protko
@fesor
Feb 21 2016 18:20
а зачем?
Murad
@Muradg
Feb 21 2016 18:21
чтобы вынести все классы для работы с магазином в отдельную папку
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:21
DDD
лол
Murad
@Muradg
Feb 21 2016 18:21
ну тебе смешно
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:21
совсем нет
я кстати сегодня был в книжном и нашёл там Эванса, только он уже закрывался, так что взять сегодня не получилось
=(
Murad
@Muradg
Feb 21 2016 18:22
точнее я хотел сказать в app/http/controllers создать папку shop
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:23
@Muradg а чем тебе корень не нравится?
app/*
Murad
@Muradg
Feb 21 2016 18:24
тем что ты посмеялся ;)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:24
app/User.php, app/Category.php
Murad
@Muradg
Feb 21 2016 18:24
для моделей ,
?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:24
ну да
app/Product.php

тем что ты посмеялся ;)

ты даже не в курсе почему я это сделал ;)

Sergey Protko
@fesor
Feb 21 2016 18:25
@Muradg вот еще одно дурное слово которое тебе пока стоит забыть - "модель"
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:25
я последние 3 дня активно упарываюсь по Аналогу и DDD
Sergey Protko
@fesor
Feb 21 2016 18:25
@Muradg замени ее на "сущность"
Murad
@Muradg
Feb 21 2016 18:25
ну уже как то привык)) сейчас модно в папку app/models кидать все ;) Да не, а если серьезно, по моему мнению так аккуратнее
Sergey Protko
@fesor
Feb 21 2016 18:25
@SerafimArts по тому что ты называешь DDD)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:25
это тоже
пока что я называю этим всё, что делится на самодостаточные сущности, независимые от контроллеров, бд и прочего
Sergey Protko
@fesor
Feb 21 2016 18:26
@SerafimArts предлагаю замутить таки что-то типа книги на github
будем ее толпой писать
учить уму разуму
про то что DDD это нифига не про "виджеты"
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:27
@greabock gg wp ez
Sergey Protko
@fesor
Feb 21 2016 18:27
и про то что ООП это не про классы, и почему stateful статика это плохо и почему автокомплит развращает
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:28
если бы не автокомплит в VS я бы не выучил VB6 в глубоком детстве -_-
Роман Сохарев
@greabock
Feb 21 2016 18:28
@SerafimArts ты в дотан переиграл, что ли? )
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:28
@greabock это старкрафт
@greabock https://www.youtube.com/watch?v=y1x_jq1YTBA
Sergey Protko
@fesor
Feb 21 2016 18:28
@SerafimArts автокомплит намного проще позволяет сделать класс AbstractSomethingFactoryFactory
Murad
@Muradg
Feb 21 2016 18:29
началось :smile:
окей гугл
Sergey Protko
@fesor
Feb 21 2016 18:29
@Muradg оооо, еще... phpspeс потыкай)
и почитай Кента Бэка про TDD
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:29
@fesor всё, хватит, а то я сейчас начал любить и принимать твою идею называть всё максимально просто
Sergey Protko
@fesor
Feb 21 2016 18:29
@SerafimArts че правда?)))
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:30
угу =(
Sergey Protko
@fesor
Feb 21 2016 18:30
@SerafimArts маленькая победа прям)
@SerafimArts а чего так грустно?
неудобно что-ли?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:30
я даже базовые хрени начал называть BaseSome, вместо AbstractSome
Роман Сохарев
@greabock
Feb 21 2016 18:30
@fesor Туше. Но... там и не про виджеты статья, это раз. Ремарка о том, что DDD в заголовке присутствует для "желтухи" тоже имеется, это два. Так что... не понимаю, этих нападок =)
Sergey Protko
@fesor
Feb 21 2016 18:31
@greabock я читал наискосок, попадалось что-то там про DDD разделение и виджеты
@greabock желтые заголовки это плохо
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:31
у меня он чёрный
что-то с цветопередачей монитора
Роман Сохарев
@greabock
Feb 21 2016 18:33
@fesor статья вообще о слабой связанности между доменами
Sergey Protko
@fesor
Feb 21 2016 18:33
@greabock обещаю ее прочитать и откоментить там
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:34
@greabock твоя статья меня только запутала
если честно
Sergey Protko
@fesor
Feb 21 2016 18:34
@greabock просто DDD по сути только о том, как отделить важное от неважного и о едином языке
а "домены делить" - в рамках одного приложения - это из разряда "о чем вы"
Роман Сохарев
@greabock
Feb 21 2016 18:35
@fesor да, это так. Эванса я читал.
Sergey Protko
@fesor
Feb 21 2016 18:35
@greabock у приложения ж только один домен должен быть
одна предметная область*
Роман Сохарев
@greabock
Feb 21 2016 18:36
@fesor nope
Sergey Protko
@fesor
Feb 21 2016 18:36
@greabock виджеты - отдельный домен?)))
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:36
ну понеслась
Роман Сохарев
@greabock
Feb 21 2016 18:37
вообще, это правильно называется DDDD (четыре раза D)
Sergey Protko
@fesor
Feb 21 2016 18:37
@greabock короч аргументируй, в каких ситуациях одно приложение занимается решением проблем из разных предметных облостей.
Роман Сохарев
@greabock
Feb 21 2016 18:37
Distributed Domain Driven Design
Sergey Protko
@fesor
Feb 21 2016 18:38
@greabock DDD + микросервисы?
Роман Сохарев
@greabock
Feb 21 2016 18:38
@fesor это не совсем одно приложение
Sergey Protko
@fesor
Feb 21 2016 18:38
@greabock убираем микросервисы - и да, у нас будет много приложений со своей предметной областью
но это будет всеравно - предметная область на приложение
Роман Сохарев
@greabock
Feb 21 2016 18:39
Вот статья и есть о том, как я пытаюсь решать эти проблемы
Sergey Protko
@fesor
Feb 21 2016 18:39
у Эванса если неплохая лекция о том как микросервисы позволяют удобнее искать границы контекстов
@greabock виджетами
@greabock сори, меня просто забавляет)
Роман Сохарев
@greabock
Feb 21 2016 18:39
@fesor это не совсем виджеты
скорее... хм... потоки, что ли
Sergey Protko
@fesor
Feb 21 2016 18:40
@greabock ну ты их так назвал. Короч надо перечитать потому что наискосок я там не уловил ничего о микросервисах
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:40
Yii'сты одобряют виджеты+
Murad
@Muradg
Feb 21 2016 18:40
Вот сейчас сидел и пробовал что-то сделать
Sergey Protko
@fesor
Feb 21 2016 18:40
@SerafimArts была песенка про "любит наш народ всякое"
@Muradg ну норм, только еще надо бы Dependency Inversion - что бы коннекшен мы создавали извне и передавали в Db
Murad
@Muradg
Feb 21 2016 18:41
Я знаю, что ошибок много. Особенно с областями видимости
Sergey Protko
@fesor
Feb 21 2016 18:41
@Muradg а еще - автозагрузка... composer в помощ
Murad
@Muradg
Feb 21 2016 18:42
Кстати про него хотел спросить
именно про автозагрузку
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:42
@Muradg в пыхе есть такая штука
есть коллбек, когда не находится какой-то класс
как следствие - никто не запрещает делать require куда-либо, если класс не найден
Murad
@Muradg
Feb 21 2016 18:43
Автозагрузка при помощи композера это prs-4 стандарт. так ?
Sergey Protko
@fesor
Feb 21 2016 18:43
@SerafimArts лучше сразу про вариант композера расскажи
@Muradg да
Роман Сохарев
@greabock
Feb 21 2016 18:43
Короче... есть допустим, в шаблоне позиция (да, да, виджет или поток - как вам вкуснее назавать). И суть в том, что в эту позицию, различные модули могут "публиковаться". Вот о том и статья.
Murad
@Muradg
Feb 21 2016 18:44
Так вот я подключал классы раньше с помощью __autoload и spl_autoload_register
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:44
@Muradg psr-0 и psr-4 это как раз те стандарты, которые объединяют имена файлов и пути для этого require
т.е. что бы композер знал что чему соответсвует
Роман Сохарев
@greabock
Feb 21 2016 18:44
@fesor но там не только об этом. Там еще немного о тентаклях есть
Sergey Protko
@fesor
Feb 21 2016 18:45
@greabock умеешь заинтриговать, завтра почитаю)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:45
ахахахха
:D
Maxim
@Big-Shark
Feb 21 2016 18:45
@greabock ты че тут впариваешь?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:45
@Big-Shark он впаривает манки-патчинг
только тсс
Роман Сохарев
@greabock
Feb 21 2016 18:46
@Big-Shark как что? Тентакли свои засовываю )
Maxim
@Big-Shark
Feb 21 2016 18:46
@SerafimArts знал что ничего хорошего)
Murad
@Muradg
Feb 21 2016 18:46
сейчас интересует композер . вот к примеру чтобы подключить эти оба класса с помощью композера ?
В ларавеле в вендоре создается файл котоырй подключает все библиотеки
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:46
@Muradg я рассказал всё, что нужно знать, что бы понять КАК он работает
Murad
@Muradg
Feb 21 2016 18:46
Спасибо
KarmaBot
@KarmaBot
Feb 21 2016 18:46
@Muradg, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Murad
@Muradg
Feb 21 2016 18:47
Ничего себе крутой бот
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:47
тебе осталось понять что сделать, что бы композер тебя понял
я для этого нужно прочитать доки
или ещё что, например статейку выше
Murad
@Muradg
Feb 21 2016 18:47
:smile: сейчас попробуем заставить его плясать под мою дудку
Роман Сохарев
@greabock
Feb 21 2016 18:47
ему осталось понять, как добавить ник к его cпасибо
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:48
ну это тоже =)
Murad
@Muradg
Feb 21 2016 18:48
@greabock :+1:
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 18:51
@Muradg это тоже не спасибка =(
обломал ты всех нас :'(
Murad
@Muradg
Feb 21 2016 18:53
@SerafimArts спасибо
KarmaBot
@KarmaBot
Feb 21 2016 18:53
Спасибо (+1) для @SerafimArts принято! Текущая карма +257.
Murad
@Muradg
Feb 21 2016 18:53
хаха
@fesor спасибо
KarmaBot
@KarmaBot
Feb 21 2016 18:53
Спасибо (+1) для @fesor принято! Текущая карма +40.
Murad
@Muradg
Feb 21 2016 18:54
@greabock а тебе подумаю
Vadim Shashin
@Enapiuz
Feb 21 2016 19:03
Всем привет. Тут можно кого-нибудь помучить с симфони2? Не имел с ней раньше дела, поставил fosuser и hwio, было все ок, потом после какого-то чуда страница стала загружаться бесконечно и проц отжирается под 100%. При чем либо первый реквест после очистки кеша проходит нормально, либо сразу все ломается. Не знаю уже куда копать и такое чувство, что в гугле забанили
KarmaBot
@KarmaBot
Feb 21 2016 19:03
@Enapiuz, здравствуй.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:03
Vadim Shashin
@Enapiuz
Feb 21 2016 19:04
@SerafimArts спасибо, однако :smile: главное, чтобы он не был дохлым)
KarmaBot
@KarmaBot
Feb 21 2016 19:05
Спасибо (+1) для @SerafimArts принято! Текущая карма +258.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:06
@Enapiuz ну в выходные почти все чаты дохлые
но там, логично, больше спецов по твоей проблеме
Murad
@Muradg
Feb 21 2016 19:15
@SerafimArts ты тут модер/админ?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:16
@Muradg немного
есть какие-то вопросы\пожелания?
Murad
@Muradg
Feb 21 2016 19:18
@SerafimArts нет, просто я думал администрация тут хоть как-то выделяется ..
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:19
@Muradg она выделяется лишь тем, что пилит что-то для сообщества
=)
Sergey Protko
@fesor
Feb 21 2016 19:19
@SerafimArts вот тебе еще подумать. Паттерн "спецификация" - восхитительная штука
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:19
ойой
ну т.е. ребята, посоветуйте вменяемый todo
что бы и под пк и под дроид работал и шарился
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:25
насколько я понял - спецификация - тупо репа, которая отдаёт сущности, отвечаемые некоторым критериям
Ivan
@Hunternnm
Feb 21 2016 19:25
@Muradg почитай книжку Мэтт Зандстра про ООП
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:26
читай изоляция доменов от их непосредственного тырканья друг друга
Murad
@Muradg
Feb 21 2016 19:26
@Hunternnm осилил до 100 страницы. 4 издание
Ivan
@Hunternnm
Feb 21 2016 19:26
@SerafimArts у меня стоит todo list
@Muradg плохо, осиль дальше
Murad
@Muradg
Feb 21 2016 19:26
Тоже самое, на примере живого все объясняется
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:26
@Hunternnm зендстра мб и крутой и книга тоже, но мне она не нравится
Murad
@Muradg
Feb 21 2016 19:26
собака может лаять но не может мяукать
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:26
очень сухо, уныло, академично и скучно
Sergey Protko
@fesor
Feb 21 2016 19:26
@Muradg не читай Зандстру - бесполезная книжка
Ivan
@Hunternnm
Feb 21 2016 19:26
@SerafimArts аналог?
@fesor +
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:26
@Hunternnm личный опыт
Ivan
@Hunternnm
Feb 21 2016 19:27
@SerafimArts та оно то так
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:27
начать с синглтона и понять что такое паттерны вообще
Ivan
@Hunternnm
Feb 21 2016 19:27
но на личном опыте так костылить можно
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:27
т.к. это самый очевидный и явный паттерн
Murad
@Muradg
Feb 21 2016 19:27
Эта та самая книга которая показывает примеры из жизни. ПО крайней мере до 100 страницы точно
Ivan
@Hunternnm
Feb 21 2016 19:27
синглтон в далеком прошлом)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:27
а дальше уже опыт и всё что угодно
Sergey Protko
@fesor
Feb 21 2016 19:27
@SerafimArts ммм не совсем:
$premiumUsers = $userRepository->find(new PremiumUserSpecification());
@Hunternnm сингелтон все еще нужен, но ооооооочень редко
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:28
@fesor да
@fesor спасибо
KarmaBot
@KarmaBot
Feb 21 2016 19:28
Спасибо (+1) для @fesor принято! Текущая карма +41.
Ivan
@Hunternnm
Feb 21 2016 19:28
@fesor я в плане изуче6ния
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:28
ну т.е. я понял что ты хочешь сказать, не обязательно отделения друг от друга
Sergey Protko
@fesor
Feb 21 2016 19:29
@SerafimArts короч крутота в том, что у тебя формирование запросов внутри спецификации, а репа только достает все. В случае когда у тебя много выборок - это реально круто. А еще это мега просто тестить
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:29
а вообще изоляция от непосредственных вызовов if, превращая всё в специфичную монаду
Sergey Protko
@fesor
Feb 21 2016 19:30
@SerafimArts у гугла есть notes сервис
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:30
я это так, в качестве шутки юмора
Sergey Protko
@fesor
Feb 21 2016 19:31
@SerafimArts ну хз, я вот планирую написать свой))
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:31
т.к. количество "что бы надо почитать" уже перевалило всё разумное
Sergey Protko
@fesor
Feb 21 2016 19:31
Evernote
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:31
кстати да!
Sergey Protko
@fesor
Feb 21 2016 19:31
тогда
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:31
можно попробовать запилить этот туду, используя Аналог
Sergey Protko
@fesor
Feb 21 2016 19:32
@SerafimArts мне нужен todo список синхронизирующийся между всеми моими девайсами
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:32
не, если что у меня в телефоне есть, встроено, включая набор голосом
Sergey Protko
@fesor
Feb 21 2016 19:32
с таймером, типа который будет тикать мне куски работы по 25 минут
подходит ко мне кто - а я такой "извиняй чувак жди"
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:33
@fesor у меня лишь опыт работы с фонгапом
2 года
Sergey Protko
@fesor
Feb 21 2016 19:33
@SerafimArts у меня так же) 3 года)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:33
This message was deleted
забываю, что нельзя материться
Sergey Protko
@fesor
Feb 21 2016 19:33
@SerafimArts cordova норм, я вот имею счастье сейчас лицезреть дичь на ксамаринах
оно педалит так что просто ужас
а сейчас есть react native, native scripts
короч можно много чего сделать
это краткие выдержки из моего опыта
мб что полезно будет
но проблем в реальности дам в разы больше
и в основном всё не в кордову утыкается
Sergey Protko
@fesor
Feb 21 2016 19:35
@SerafimArts а ты попробуй юзать что-то адекватное, например ionic
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:35
а именно в моб.браузеры
Sergey Protko
@fesor
Feb 21 2016 19:36
@SerafimArts я вот сейчас пробежался глазами - все эти проблемы решены местами
Murad
@Muradg
Feb 21 2016 19:36
если я даже эту статью осилить не могу, то кто я ?
Sergey Protko
@fesor
Feb 21 2016 19:36
@Muradg поищи другую
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:37
@Muradg нормальный человек
Sergey Protko
@fesor
Feb 21 2016 19:37
@Muradg ты лентяй)) не надо "осиливать" статьи, пробуй
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:37
её бы даже я не осилил
очень дофига воды
Sergey Protko
@fesor
Feb 21 2016 19:37
ну да
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:37
суховато
Sergey Protko
@fesor
Feb 21 2016 19:37
@SerafimArts жидковато*
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:37
т.е. я бы ограничился кратким пересказом доков своими словами
что за команды:
composer install
composer update
что такое composer.json
что за секция autoload psr-* и files
и всё
Maxim
@Big-Shark
Feb 21 2016 19:38
@SerafimArts вандерлист?
Murad
@Muradg
Feb 21 2016 19:39
что за секция autoload psr-* и files
что и осталось осилить
Maxim
@Big-Shark
Feb 21 2016 19:40
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:42
@Big-Shark я уже порешал, что запилю свой на Анлоге
для реального опыта
Murad
@Muradg
Feb 21 2016 19:48
то есть у меня есть так сказать библиотека которую я хочу выложить на гитхаб и чтобы я и все остальные могли ее скачивать. для начала мне нужно попасть в директорию с этими классами и прописать composer init , вводим все необходиые данные (название пакета и т.д.) и создается composer.json
KennelWell
@KennelWell
Feb 21 2016 19:48

Господа, у меня вопрос, при загрузке фото со статьей у ме6ня пишет что
FileNotFoundException in File.php line 37: The file "D:\openserver\OpenServer\userdata\temp\php9746.tmp" does not exist

при этом фотка закидывается куда надо но статья в базу не записывается вот. что делать?

public function store(Request $request)
{
if($request->hasFile('preview'))
{
$date=date('d.m.Y');
$root = $_SERVER['DOCUMENT_ROOT'].'/images/';
if(!file_exists($root.$date)){mkdir($root.$date);}
$f_name = $request->file('preview')->getClientOriginalName();
$request->file('preview')->move($root.$date, $f_name);
$all = $request->all();
$all['preview'] = "/images/".$date."/".$f_name;
Articles::create($all);
}else
{
Articles::create($request->all());
}
}
KennelWell
@KennelWell
Feb 21 2016 19:54
столько желающих помочь, как обычно, нахер я вообще сюда захожу?
Ivan
@Hunternnm
Feb 21 2016 19:55
@SerafimArts кстати, еще wrike юзаю
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 19:58
@KennelWell оформи код
KarmaBot
@KarmaBot
Feb 21 2016 19:58
@KennelWell, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой "Ё").
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка "M↓" внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:01
ппц
я только сейчас заметил сколько звёздочек у моего гиста про мобилки
40 карл!
40 звёздочек!
KennelWell
@KennelWell
Feb 21 2016 20:02
public function store(Request $request)
    {
     if($request->hasFile('preview'))
       {
           $date=date('d.m.Y');
           $root = $_SERVER['DOCUMENT_ROOT'].'/images/';
           if(!file_exists($root.$date)){mkdir($root.$date);}
           $f_name = $request->file('preview')->getClientOriginalName();
           $request->file('preview')->move($root.$date, $f_name);
           $all = $request->all();
           $all['preview'] = "/images/".$date."/".$f_name;
           Articles::create($all);
       }else
       {
           Articles::create($request->all());
       }

    }
увы XD
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:02
$root = $_SERVER['DOCUMENT_ROOT'].'/images/'; зачем?
KennelWell
@KennelWell
Feb 21 2016 20:03
This message was deleted
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:06
см. что есть base_path\public_path\etc в ларке
KennelWell
@KennelWell
Feb 21 2016 20:08
@SerafimArts Большое тебе спасибо.
KarmaBot
@KarmaBot
Feb 21 2016 20:08
Спасибо (+1) для @SerafimArts принято! Текущая карма +259.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:08
ну это не решение проблемы
а просто избавление от лишних сложностей и ненужных приёмов
KennelWell
@KennelWell
Feb 21 2016 20:09
@SerafimArts у меня решилась проблема
if($request->hasFile('preview'))
       {
           $date=date('d.m.Y');
           //$root = $_SERVER['DOCUMENT_ROOT'].'/images/';
           if(!file_exists($date)){mkdir($date);}
           $f_name = $request->file('preview')->getClientOriginalName();
           $request->file('preview')->move('/images/'.$date, $f_name);
           $all = $request->all();
           $all['preview'] = "/images/".$date."/".$f_name;
           Articles::create($all);
       }else
       {
           Articles::create($request->all());
       }
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:09
о_0
ничоси
:D
Soprun Vladislav
@vlsoprun
Feb 21 2016 20:09
Эммм....
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:09
лол
KennelWell
@KennelWell
Feb 21 2016 20:10
@SerafimArts у меня так заработало ну только $root удалю
KennelWell
@KennelWell
Feb 21 2016 20:14
@SerafimArts я же только учусь поэтому не могу увидеть тут "изящных" выходов и правильности кода, пока что для меня важней всего то что работает, может со временем я посмотрю на то что у меня написано и ужаснусь а пока, Увы и Ах.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:15
@KennelWell тебе лишь заменить метод save на свою реализацию надо во втором файле
;)
Soprun Vladislav
@vlsoprun
Feb 21 2016 20:15
@KennelWell Эммм... А сразу "нормально" делать не проще ли?
Murad
@Muradg
Feb 21 2016 20:15
то есть у меня есть так сказать библиотека которую я хочу выложить на гитхаб и чтобы я и все остальные могли ее скачивать. создаю папку src/bmysql и кидаю туда 2 файла: Bmysql.php и BmysqlAbstract.php. для начала мне нужно попасть в корневую директорию и прописать composer init , вводим все необходиые данные (название пакета и т.д.) и создается composer.json. так ?
Oleg
@Malezha
Feb 21 2016 20:17
@Muradg да, потом вручную добавляешь для автозагрузчика psr-4 путь в папку src со своим нейспейсом и публикуешь пакет на packagist.org
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:18
@KennelWell и это не изящный код. Просто баланс между вменяемым и не вменяемым
Murad
@Muradg
Feb 21 2016 20:18
@Malezha сделал. А вот " и публикуешь пакет на packagist.org" дошел до этого только
Soprun Vladislav
@vlsoprun
Feb 21 2016 20:18

баланс между вменяемым и не вменяемым

:satisfied:

Oleg
@Malezha
Feb 21 2016 20:19
@Muradg думаю ты справишься, там все таки есть инструкция на главной =)
Soprun Vladislav
@vlsoprun
Feb 21 2016 20:19
Я уверен что 90% моего кода не вменяемые :satisfied:
Остальные 10% это robots.txt
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:19
А что, нет? Код читаемый и вроде правильный, вроде норм
Но завязка на бд - плохо
KennelWell
@KennelWell
Feb 21 2016 20:20
@SerafimArts я чаще всего даже не понимаю что я делаю и зачем.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:20
Не расширяемый - тоже плозо
@KennelWell ничем не могу помочь =)
KennelWell
@KennelWell
Feb 21 2016 20:21

@vlsoprun

@KennelWell Эммм... А сразу "нормально" делать не проще ли?
чтобы делать нормально надо знать как нормально.

Murad
@Muradg
Feb 21 2016 20:22
The vendor is already taken by someone else. You may ask them to add your package and give you maintainership access. The packages already in that vendor namespace can be found at db
А разве библиотеки не идут ввида имя автора/название библиотеки ?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 20:22
@KennelWell так, что бы он мог использоваться где угодно и как угодно и чем проще это делается, тем лучше
@Muradg идут
Но помимо гитхаба есть ещё и другие вселенные ;)
Murad
@Muradg
Feb 21 2016 20:24
@SerafimArts оу.. спасибо
KarmaBot
@KarmaBot
Feb 21 2016 20:24
Спасибо (+1) для @SerafimArts принято! Текущая карма +260.
Murad
@Muradg
Feb 21 2016 20:37
Ну вот я создал новый репозиторий https://github.com/Muradg/bmysql
пытаюсь его добавить в packagist
а все понял
KennelWell
@KennelWell
Feb 21 2016 20:46
@SerafimArts еще раз спасибо. буду ковырять твой uploader
projct1
@projct1
Feb 21 2016 20:49
а можно ли использовать ларавельную аутентификацию в сторонних проектах?
Murad
@Muradg
Feb 21 2016 20:55
Could not find package muradg/bmysql at any version for your minimum-stabil
ity (stable). Check the package spelling or your minimum-stability
что то я не понимаю эту ошибку. Загрузил на packagist . вроде все в норме. Захожу в папку пишу composer init и нахожу свой пакет. выбираю и выходит эта ошибка..
Где я могу указать версию моей библиотеки к примеру ?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 21:07
@Muradg в релизах
всё безрелизное по-дефолту dev-master версия
Murad
@Muradg
Feb 21 2016 21:08
В релизах ? Это на гите ?
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 21:08
релизы - это кнопочка на гитхабе
ну или руками через гит
Murad
@Muradg
Feb 21 2016 21:09
пока лучше на гитхабе
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 21:09
только чем тебе не нравится dev-master подключать?
Murad
@Muradg
Feb 21 2016 21:10
я когда composer init прописал , в mimimum stability указал dev и скачалось. Просто хотел узнать как его указать stable. все равно удалю сейчас его. хотел просто добавить в laravel. попробовать на примере как это делается
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 21:11
ну тогда ок
Murad
@Muradg
Feb 21 2016 21:12
пока есть такой живой чат, лень покидает меня
живой всмысле, хотя бы не форум ))
Все разобрался. так бы каждый день что-то делать)) Спасибо
KarmaBot
@KarmaBot
Feb 21 2016 21:15
@Muradg, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Dave
@aios
Feb 21 2016 21:33
Как в этом чате возвращаться на определенную дату?
Dave
@aios
Feb 21 2016 21:43
@SerafimArts Гениально - спасибо.
KarmaBot
@KarmaBot
Feb 21 2016 21:43
Спасибо (+1) для @SerafimArts принято! Текущая карма +261.
Анатолій
@tolyan---tolyan
Feb 21 2016 22:01
Привет, у меня возникли трудности из добавлением данных из формы в БД. Напишите пожалуйста алгоритм(создание модели, контролера...) Спасибо(извините что такое спрашиваю)
Andrei Sosnov
@atehnix
Feb 21 2016 22:06
@tolyan---tolyan тебе документацию пересказать или же ты все-таки покажешь конкретный кусок кода в котором у тебя возникает конкретная проблема?
Анатолій
@tolyan---tolyan
Feb 21 2016 22:10
@atehnix может я не правильно понимаю как нужно делать. Я делаю так, есть форма, создаю модель, прописываю правила валидации. В форме action прописываю метод в контролере который добавляет запись.
Как то так я пробывал делать, но не получилочь(
Andrei Sosnov
@atehnix
Feb 21 2016 22:12
@tolyan---tolyan печально(
Анатолій
@tolyan---tolyan
Feb 21 2016 22:12
@atehnix если можете, напишите пожалуйста алгоритма
или где можна почитать
Andrei Sosnov
@atehnix
Feb 21 2016 22:13
@tolyan---tolyan да, конечно. Сейчас, секундочку..
@tolyan---tolyan Вот, готово. Вроде все описал, что может помочь: алгоритм
Анатолій
@tolyan---tolyan
Feb 21 2016 22:16
@atehnix :clap:
спасибо
KarmaBot
@KarmaBot
Feb 21 2016 22:16
@tolyan---tolyan, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Kirill Nesmeyanov
@SerafimArts
Feb 21 2016 22:36
@tolyan---tolyan у тебя ошибка на строке 42
внимательнее в следующий раз ;)
поправь и всё заработает
Max Kolyadin
@maxflex
Feb 21 2016 22:40
Всем доброй ночи!

Есть ли в Laravel метод из коробки, который возвращает созданную модель со значениями по умолчанию?

Я имею в виду, если

...
$table->string('title')->default('untitled');
...

То при вызове $model = Model::create() $model->title был равен 'untitled'

butschster
@butschster
Feb 21 2016 22:49
@maxflex скорее всего придется дополнительно прописать в attributes
Max Kolyadin
@maxflex
Feb 21 2016 22:51
@butschster спасибо. Я сейчас так и делаю. Мне не нравится повторение – сначала указываю умолчания в миграции, потом те же самые умолчания в модели.
KarmaBot
@KarmaBot
Feb 21 2016 22:51
Спасибо (+1) для @butschster принято! Текущая карма +49.
butschster
@butschster
Feb 21 2016 22:52
@maxflex миграции никак не связаны с моделью и сама модель ни делает запрос в БД на получение структуры, поэтому и приходится прибегать к такому решению
Artiom
@PhpArt
Feb 21 2016 22:59
@maxflex Мне не нравится повторение – сначала указываю умолчания в миграции, потом те же самые умолчания в модели.
А зачем? Ты работаешь через модель? Можно только там и указывать
butschster
@butschster
Feb 21 2016 23:00
@PhpArt ты ошибся человеком :)
Artiom
@PhpArt
Feb 21 2016 23:01
@butschster да, извиняюсь
пофиксил
butschster
@butschster
Feb 21 2016 23:04
а ничего страшного
кто вообще следит за админкой sleepingowl?
Artiom
@PhpArt
Feb 21 2016 23:11
@butschster в каком смысле "следит"?
butschster
@butschster
Feb 21 2016 23:12
ну за развитием версии 4.*
Artiom
@PhpArt
Feb 21 2016 23:15
@butschster видел на днях, ты говорил, что теперь без коди через пакедж..или что-то вроде того... я вообще скептик любого кода
butschster
@butschster
Feb 21 2016 23:16
?
Artiom
@PhpArt
Feb 21 2016 23:16
@butschster мне в архив лезть, что ли?
butschster
@butschster
Feb 21 2016 23:16
в какой архив?
Artiom
@PhpArt
Feb 21 2016 23:16
@butschster в этом чате... или это не ты писал?
butschster
@butschster
Feb 21 2016 23:17
я, я больше про скептика спрашиваю
Artiom
@PhpArt
Feb 21 2016 23:18
@butschster ааа... нет придела совершенству, я про это
butschster
@butschster
Feb 21 2016 23:22
ну так верно, предела нет, но это не должно быть поводом к тому, чтобы не использовать что то чужое
Artiom
@PhpArt
Feb 21 2016 23:27
@butschster мне к laravel пока нужно было только nested set добавить
ну и twig
butschster
@butschster
Feb 21 2016 23:27
ну а как же Assets?
Artiom
@PhpArt
Feb 21 2016 23:28
@butschster какие Assets?
butschster
@butschster
Feb 21 2016 23:35
ну работа с css и js
Artiom
@PhpArt
Feb 21 2016 23:39
@butschster работа с css и js в большей мере не моя задача... у мне каждый фрагмент html текста в шаблонах... в php файле фрагменты html недопустимы... также вставки js или css в шаблон тоже недопустимы
butschster
@butschster
Feb 21 2016 23:41
всмысле?
ну я про организацию подключения css и js в шаблон
Artiom
@PhpArt
Feb 21 2016 23:43
@butschster просто подключаю в html, а как у тебя? что твоя организация сделает, если файла css нет или в нем не описан какой-то класс?
butschster
@butschster
Feb 21 2016 23:46
ну вообще у меня обычно шире задача :) Я по сути очень много работаю над универсальностью и соответственно для обеспечения модульности приходится много думать и рождаются интересные пакеты
Например мой любимый пакет для организации работы с ассетами https://github.com/KodiCMS/laravel-assets
Когда нужно подключать много css и js и соблюдать зависимости, то этот пакет просто незаменим для меня
Artiom
@PhpArt
Feb 21 2016 23:48
@butschster ну это понятно... я просто знаю, что ты делаешь, а ты - нет... пока не выкладыал в паблик

@butschster

 Meta::setFavicon('favicon.ico')

шаблон делает верстальщик... ему учить мои танцы с бубном, что ли?

butschster
@butschster
Feb 21 2016 23:51
от этого можно отказаться
Artiom
@PhpArt
Feb 21 2016 23:52
@butschster и нужно
butschster
@butschster
Feb 21 2016 23:52
не всегда, когда все генерируется автоматом, то и смысла нет отказываться
редко кто head вообще вручную правит и часто это делает
Artiom
@PhpArt
Feb 21 2016 23:54
@butschster я говорил о верстальщике, он как бы с нуля начинает
хотя и переменные пока не описать он тоже не знает
Max Kolyadin
@maxflex
Feb 21 2016 23:59
@butschster понятно