These are chat archives for LaravelRUS/chat

4th
Mar 2015
Роман Сохарев
@greabock
Mar 04 2015 00:00
где-то кстати болтался пакетик для этого дела...
причем кажется кто-то из обитателей уютненького автор
Maxim
@Big-Shark
Mar 04 2015 00:01
@greabock ну у меня же все как всегда не просто, там сейчас симофни1 и доктрина1, будет симфони2 и доктрина2 ) Так что я просто спрашиваю про теоретическую часть атк сказать)
JhaoDa
@jhaoda
Mar 04 2015 00:01
Да, json наше всё, в пятерке даже поле такое появилось в Scheme.
Maxim
@Big-Shark
Mar 04 2015 00:02
@greabock а почему не монго или постргес где с жсон есть работа?
Роман Сохарев
@greabock
Mar 04 2015 00:02
@Big-Shark потому что я их не умею
монго - это первое что я подумал сначала
но потом подумал, что ты и сам монгист
и не здавал бы таких вопросов, если бы мог монгу юзать ))
Maxim
@Big-Shark
Mar 04 2015 00:03
@jhaoda тут не все так просто, допустим еслиб это была монго, то есть драйверы на ларе к ней, которым я могу указать какой класс он должен будет вернуть, и я получу более привычный вид обьекта и его связи, чем прсото у ларе 5 указать жсон и получать массив)
@greabock я то могу, но вот остальные могут не потдержать)
JhaoDa
@jhaoda
Mar 04 2015 00:05
@Big-Shark да вроде как не проблема модель расширить и возвращать класс вместо массива?
Роман Сохарев
@greabock
Mar 04 2015 00:05
@Big-Shark https://github.com/SerafimArts/Accessor под четверку
еще, как вариант, можно организовать обычную custom fields структуру.
Maxim
@Big-Shark
Mar 04 2015 00:07
@jhaoda ну так то да) но это нужно уже писать свой трейт, или типа того)
JhaoDa
@jhaoda
Mar 04 2015 00:08
@Big-Shark пальцы устают? :)
Нет, я тоже против излишней писанины, но когда надо, то почему нет?
Роман Сохарев
@greabock
Mar 04 2015 00:08
Но все же, лучшим вариантом было бы разбить все это дело на модели человеческие... но это конечно уже дело вкуса.
Maxim
@Big-Shark
Mar 04 2015 00:09
@jhaoda время деньги)
JhaoDa
@jhaoda
Mar 04 2015 00:09
Не всё решается пакетами
@Big-Shark на предпоследнем проекта мы выкинули 3 пакета их тех, что были изначально и написали 4 свои
Maxim
@Big-Shark
Mar 04 2015 00:10
@greabock сейчас все по своим табличкам, и очень много джоинов или количества запросов, и это несколько напрягает
Роман Сохарев
@greabock
Mar 04 2015 00:11
ну при жадной загрузке, добавится лишь по одному запросу на сущность.
Alexey
@Butochnikov
Mar 04 2015 00:11
@jhaoda "4 свои" это какие?
Maxim
@Big-Shark
Mar 04 2015 00:12
@greabock угу, а их штук 10)
Роман Сохарев
@greabock
Mar 04 2015 00:13
@Big-Shark есть джоины от @sleeping-owl
Maxim
@Big-Shark
Mar 04 2015 00:13
@greabock джоины тоже не самые быстрые друзья)
JhaoDa
@jhaoda
Mar 04 2015 00:13
@Butochnikov свой Authority, конвертер для Parsley.js, для Робокассы, для картинок типа Intervention
Alexey
@Butochnikov
Mar 04 2015 00:15
@jhaoda эх, ридми пустые
JhaoDa
@jhaoda
Mar 04 2015 00:17
@Butochnikov да, это есть. Но всё, кроме Робокассы писалось и выкладывалось в аврале, а потом я уволился и чота руки не доходят
Alexey
@Butochnikov
Mar 04 2015 00:17
а "для картинок типа Intervention" это какой?
Роман Сохарев
@greabock
Mar 04 2015 00:17
@Big-Shark ну тогда вообще хз... я вот смотрел нагрузку у себя недавно. И получается, что на 15 запросов к бд, у меня уходит 46мс, а все остальное работает еще 400мс. На этом фоне еще 10 запросов как-то не выглядят так уж критчно.
JhaoDa
@jhaoda
Mar 04 2015 00:18
@Butochnikov а это не я писал и оно до паблика не дошло
К тому времени подняли в конторе Toran и решили закуклиться
Maxim
@Big-Shark
Mar 04 2015 00:19
@greabock ну да, ладно, буду дальше думать, спс)
Роман Сохарев
@greabock
Mar 04 2015 00:20
@Big-Shark вообще, custom fields выглядят достаточно неплохо для решения такой задачи
id | name | film_id | value
Maxim
@Big-Shark
Mar 04 2015 00:22
@greabock не люблю кастом филд, считаю что это велосипед
@greabock нет никаких плюсов у него перед монгой)
Роман Сохарев
@greabock
Mar 04 2015 00:24
монга, это да
Maxim
@Big-Shark
Mar 04 2015 00:24
Кстати монга 3 вроде скоро выйдет, там должны быть локи и транзакции
LaravelButler

Приветствуем Вас, @immodor, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @girishbwl, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @naoki1061, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @pappilino, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Maxim
@Big-Shark
Mar 04 2015 04:33
Да сколько можно)
Eugene Holiday
@eugene-holiday
Mar 04 2015 05:44
чатик за месяц вырос на 50%
SliderVM
@SliderVM
Mar 04 2015 06:28
А на чем этот чат написан ?
Maxim
@Big-Shark
Mar 04 2015 06:28
ноджс
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:26
Всем привет

Сходу слету вопрос. Как бы кто реализовал расширение модели. Нужно что бы можно было

$user = User::first();
$user->i18n->fill([...]);

то есть i18n тут это объект, который имеет свои методы и свойства и имеет доступ к свойствам самого объекта $user

вопрос не в том как реализовать это в единичном варианте, а что бы можно было или трейт подключить или еще как, но многоразово
Maksim (Ellrion) Platonov
@Ellrion
Mar 04 2015 07:32
ну тогда естественно трейт
Maxim
@Big-Shark
Mar 04 2015 07:33
trait superFill
{
  function superFill($array)
{
 return $this->i18n->fill($array);
}
}
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:33
да, вот только не пойму как правильно добавить это свойство i18n
по идее тут нужно создать объект при создании самого $user, но конструктор мы не перекрываем, тогда.. через geti18nAttribute и в нем создавать или..
Maksim (Ellrion) Platonov
@Ellrion
Mar 04 2015 07:35
возможно я не прав, но то что тебе надо по реализации может быть похоже на вот это https://gist.github.com/Ellrion/b86d89b278fe9b55d580 там самый последний файл какраз трейт
Maxim
@Big-Shark
Mar 04 2015 07:36
Можно через geti18nAttribute, а можно и бут метод сделать
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:36
а вот интересует через бут метод
Maxim
@Big-Shark
Mar 04 2015 07:37
@condoriano ну так в чем проблемма, в доке вроде написано как делать этот бут метод чтобы элоквоент его вызывал
JhaoDa
@jhaoda
Mar 04 2015 07:38
Дока... доку читать надо ж.
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:38
:)
Роман Сохарев
@greabock
Mar 04 2015 07:38
что-то в этом духе должно проканать
$user->i18n()->firstOrCreate()->fill();
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:39
это должно, но мне в виде свойства
Роман Сохарев
@greabock
Mar 04 2015 07:39
а есть ли свойство? А если его не будет?
JhaoDa
@jhaoda
Mar 04 2015 07:40
@condoriano ну так делай через bootTraitName и радуйся
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:40
вот про bootTraitName впервые слышу, это где о нем написано? или «смотри код лузер»?
JhaoDa
@jhaoda
Mar 04 2015 07:41
@condoriano тебе же сказали — доку читай
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:41
@jhaoda спасибо
JhaoDa
@jhaoda
Mar 04 2015 07:42
@condoriano пожалуйста, обращайся, всегда рады
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:43
да, читаю вот
Роман Сохарев
@greabock
Mar 04 2015 07:43
@condoriano да нет проблем, если опять заблудишься, приходи - мы тебя еще раз в доку пошлем )
Maxim
@Big-Shark
Mar 04 2015 07:43
If an Eloquent model uses a trait that has a method matching the bootNameOfTrait naming convention, that trait method will be called when the Eloquent model is booted, giving you an opportunity to register a global scope, or do anything else you want.
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:43
да там не совсем очевидно, если бы товарищ выше не написал bootTraitName, я бы хз как долго искал
ну то есть когда не знаешь что тебе нужно, сложно искать что-то конкретно, так ведь, господа?
JhaoDa
@jhaoda
Mar 04 2015 07:44
А потому что доку надо хотя бы один раз прочитать всю
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:44
может и да, а может и нет
JhaoDa
@jhaoda
Mar 04 2015 07:44
Практика показала, что да
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:44
если ты от корки до корки прочитал стих, сходу сможешь его повторить?
Роман Сохарев
@greabock
Mar 04 2015 07:45
хотя бы глазами пробежаться, это да
JhaoDa
@jhaoda
Mar 04 2015 07:45
@condoriano я разве сказал «запомнить»?
Maxim
@Big-Shark
Mar 04 2015 07:45
Тоже прочитал ее всю, на версии 4
Роман Сохарев
@greabock
Mar 04 2015 07:45
он сходу может сказать в каком разделе это искать, умник )))
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:45
какие-то вещи, если они тебе сейчас не нужны, просто не откладываются в памяти, поэтому и спрашиваю что бы тот кто использовал, подсказал куда смотреть и где читать
если сложно, то прошу прощения за неудобства :)
JhaoDa
@jhaoda
Mar 04 2015 07:46
Странно, у меня откладываются. Смутно, на грани «ёпт, шота такое там было, точно!»
И лезешь в доку уже целенаправленно
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:46
значит мне есть над чем работать ) спасибо еще раз
JhaoDa
@jhaoda
Mar 04 2015 07:53
Я вот просохатил, что слаги теперь генерить можно и из кириллицы. Но про то в доках не писали
И написал свой слаггер. А через день выкинул.
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:53

ну так делай через bootTraitName и радуйся

тааак, окееей, про бут метод ясно, но все-таки не могу допереть как все-таки через этот метод реализовать нужное мне

JhaoDa
@jhaoda
Mar 04 2015 07:54
А што непонятно-то? В методе инициализируй свойство
Хотя я не понял, что именно тебе надо
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:55
не могу понять принципа работы, метод статический, мне нужно добавить свойства объекта, а не класса
мне нужно что бы всякий раз когда создавался объект $user(User extends Model) у него было свойство i18n класса ModelleTranslatte к примеру
JhaoDa
@jhaoda
Mar 04 2015 07:56
@condoriano тогда это связь
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:56
через getI18nAttribute я понимаю как сделать, а вот другой метод есть ли какой-то
JhaoDa
@jhaoda
Mar 04 2015 07:56
Или эта модель в базу не мапится?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:56
нене, но тут i18n это не модель
это просто объект, у которого есть ссылка на инстанс $user что бы читать/писать в него
то есть к примеру мы делаем $user->i18n->fill([…]) и i18n обращается к $user->fill([…]) но с модифицированным массивом
Роман Сохарев
@greabock
Mar 04 2015 07:58
ну так сделай его моделью
не сходи с ума
Maksim (Ellrion) Platonov
@Ellrion
Mar 04 2015 07:58
@condoriano ты посмотрел тот гист который я тебе кинул?
JhaoDa
@jhaoda
Mar 04 2015 07:58
@condoriano если это не модель, то куда будет делаться fill?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 07:58
ага, твоим методом это будет работать как $user->i18n()->fill([…])
но мне принципиально что бы оно было как свойство :) в этом и фишка вся
дурацкие смайлики тут.. никого не хочу обидеть, но они очень странные
Роман Сохарев
@greabock
Mar 04 2015 07:59
окей, что это за объект?
Maxim
@Big-Shark
Mar 04 2015 08:00
@condoriano а чем тебе getI18nAttribute не нравится?
Роман Сохарев
@greabock
Mar 04 2015 08:00
куда он денется, когда ты сохранишь юзера в базу?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:00
@Big-Shark мне нравится, это красиво и всё такое
@Big-Shark но собственно весь вопрос в том в том, есть ли еще какой-то способ это сделать?
Роман Сохарев
@greabock
Mar 04 2015 08:01
@Big-Shark :+1: и сеттер также
Maxim
@Big-Shark
Mar 04 2015 08:01
@condoriano в чем тогда вопрос?
@condoriano способы есть всегда
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:02
то есть правильно ли это, добавлять атррибут через кастомный геттер
Роман Сохарев
@greabock
Mar 04 2015 08:02
через геттер получают, добавляют через сеттер
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:03
@greabock сейчас покажу о чем я
Maksim (Ellrion) Platonov
@Ellrion
Mar 04 2015 08:03
@greabock он имеет ввиду добавлять к модели, а не устанавливать.
Роман Сохарев
@greabock
Mar 04 2015 08:05
@condoriano ты можешь уже выразить на кой хрен там объект? Ты хочешь хранить объект в базе или что это за объект? Куда он денется, когда ты сохранишь модель? У него отдельная таблица или ты просто в поле его хочешь записать в виде объекта?
JhaoDa
@jhaoda
Mar 04 2015 08:06
Эх, элефантуса на вас нету
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:06
щаща, щащаща, щащаща.
JhaoDa
@jhaoda
Mar 04 2015 08:06
Он бы растелепатил
Роман Сохарев
@greabock
Mar 04 2015 08:07
просто юзкейс какой-то чрезвычайно странный
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:07
да нормальный вроде, я вот и удивился, что нет решения готового..
JhaoDa
@jhaoda
Mar 04 2015 08:08
@condoriano ты говоришь, что i18n — модель. У неё есть метод fill. Но в базу она не пишет ничего
Правильно?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:08
не, я наоборот говорю что i18n НЕ модель
Роман Сохарев
@greabock
Mar 04 2015 08:08

а юзкейс все же странный
NelinD
@NelinD
Mar 04 2015 08:09
@greabock у тебя походу картинки заранее заготовлены
Роман Сохарев
@greabock
Mar 04 2015 08:09
=)))
JhaoDa
@jhaoda
Mar 04 2015 08:09
@condoriano Спрашивается, что делает метод fill у НЕ модели?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:09
фильтрует массив который принимает, и передает модели в метод fill
JhaoDa
@jhaoda
Mar 04 2015 08:09
Модели User?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:09
fuuf
агга
JhaoDa
@jhaoda
Mar 04 2015 08:10
Стало понятней
@condoriano ну тогда getI18nAttribute — и вперёд
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:10
угу, так и сделал
JhaoDa
@jhaoda
Mar 04 2015 08:10
Магия — наше всё.
Роман Сохарев
@greabock
Mar 04 2015 08:11
и почему было не сделать вообще простой метод?
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:12
class Page extends Model {
    use I18nModelTrait;
}

class ModelTranslator {

    private $model;
    private $locale;

    function __construct($model, $locale)
    {
        $this->model = $model;
        $this->locale = $locale;
    }

    public function fill(array $attributes)
    {
        $localizedAttributes = [];

        foreach($attributes as $attrName => $attrValue)
        {
            $localizedAttributes[$attrName . '_' . $this->locale] = $attrValue;
        }

        $this->model->fill($localizedAttributes);

        return $this->model;
    }
}

trait I18nModelTrait {

    private $i18n;

    public function getI18nAttribute()
    {
        if (! $this->i18n)
            $this->i18n = new ModelTranslator($this, \App::getLocale());

        return $this->i18n;
    }

}
вот, накидал
смущает
  1. \App::getLocale()
  2. нормальный ли вообще метод для того что бы реализовать эту штуку
LaravelButler

Приветствуем Вас, @Nik736, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Роман Сохарев
@greabock
Mar 04 2015 08:13
   $this->i18n = new ModelTranslator($this, \App::getLocale());
Это плохо, надо через DI делать такие вещи.
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:13
вот, внимание вопрос — как через DI сделать это для модели
Роман Сохарев
@greabock
Mar 04 2015 08:14
как и все остальное, в конструкторе
короче это будет долгий разговор, я чую )) пойду-ка я отсюда...
Vladislav Maksimchuk
@condoriano
Mar 04 2015 08:15
ищешь легких путей?!
Max
@roquie
Mar 04 2015 08:23
хранить конфиг файлы в src, где лежат только классы раскинутые по psr-4 - по феншую или нет?)
конфигурация либы сильно разрослась и приходится раскидывать по файликам )
Роман Сохарев
@greabock
Mar 04 2015 08:24
@Roquie ты про пакет?
или src это app?
Maxim
@Big-Shark
Mar 04 2015 08:26
@Roquie чтож за либа такая?
Max
@roquie
Mar 04 2015 08:26
@greabock пакет
Роман Сохарев
@greabock
Mar 04 2015 08:27
храни где хочешь вообще
Maxim
@Big-Shark
Mar 04 2015 08:27
@Roquie есть ссылка?
Роман Сохарев
@greabock
Mar 04 2015 08:27
ну, в приделах пакета, разумеется
Max
@roquie
Mar 04 2015 08:28
@Big-Shark базовый класс, который кэширует API запросы к различным (XML, JSON) протоколам. В конфигурации гибко настраиваемо - какой запрос кэшировать, а какой нет.
@Big-Shark proprietary =(
Maxim
@Big-Shark
Mar 04 2015 08:29
@Roquie ОМГ
Max
@roquie
Mar 04 2015 08:29
@Big-Shark это я кратко написал, все куда сложнее
Maxim
@Big-Shark
Mar 04 2015 08:30
@Roquie возможно в этом и проблемма) что класс слишком обширный, и у него слишком большой конфиг)
Max
@roquie
Mar 04 2015 08:30
@Big-Shark решение проблемы дерганья кучи апишек, где время ожидания и трансфер данных по сети сильно долгое )
@Big-Shark дык конфигурация разбита на файлики, в зависимости от типа API
вот и спрашиваю, где хранить )
@greabock ок ))
Maksim (Ellrion) Platonov
@Ellrion
Mar 04 2015 08:34
@Roquie я бы все же вынес из src на один уровень с ним директорию для конфигов
LaravelButler

Приветствуем Вас, @howyp, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Andrey
@Quiss
Mar 04 2015 10:02
Не кому не нужна случайно база http://drive.ru ?
Марки модели комплектации
значения комплектаций
Alexander Popov
@ruelephant
Mar 04 2015 10:04
краденная? :)
Andrey
@Quiss
Mar 04 2015 10:05
Естественно
ток более делекатно можно выразиться, спаршенная xD
Alexander Popov
@ruelephant
Mar 04 2015 10:06
нафиг она нужна такая?
если бы ты сам сделал, под лицензией
Andrey
@Quiss
Mar 04 2015 10:07
хз зачем тебе, но мне надо) прост моя авторушная база пользовалась спросом ранее)
Alexander Popov
@ruelephant
Mar 04 2015 10:16
мне ворованного не надо :)
Роман Сохарев
@greabock
Mar 04 2015 10:31
кстати, наш товарищ @NelinD поучавствовал в доработке знаменитого former'a
https://github.com/formers/former/pull/453#issuecomment-76920817
это я просто к тому, что Уютненький должен знать своих героев ))
NelinD
@NelinD
Mar 04 2015 10:32
@greabock рано пить боржоми, в мастер еще не накатили=)
Роман Сохарев
@greabock
Mar 04 2015 10:33
боржоми пить всегда вовремя
LaravelButler

Приветствуем Вас, @sukumargv, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Maxim
@Big-Shark
Mar 04 2015 12:06
@Quiss конечно нужна база
Alexander Popov
@ruelephant
Mar 04 2015 12:10
xdebug не перехватывает FatalErrorException
!!!
сволочи
ваше приложение может умереть, но знать вы про это не будете
скорее всего из за того что там сделано через register_shutdown_function
к этому моменту уже xdebug сдох вместе со всем
как расширение
боже когда они в runtime добавят нормальный обработчик
Alexander Popov
@ruelephant
Mar 04 2015 12:16
писать ошибки в stdout моветон
Andrey
@Quiss
Mar 04 2015 12:19
@Big-Shark Кину как допарситься ) в лс
Maxim
@Big-Shark
Mar 04 2015 12:20
@Quiss ок, сделай пакет или просто гист как обычно)
@Quiss можно в json если есть)
Andrey
@Quiss
Mar 04 2015 12:21
@/all Баг или фича?
Model: Cargo.php -> 
public function delivery_auto()
    {
        return $this->hasOne('CourierLog','id','deliveryaut_cl');
    }
View ->
$cargo_alias = $copmanie->alias;  // delivery_auto
$cargo->$cargo_alias =  Result: null;
----------------------------------------------------------------------------------------------
Model: Cargo.php -> 
public function deliveryauto()
    {
        return $this->hasOne('CourierLog','id','deliveryaut_cl');
    }
View ->
$cargo_alias = $copmanie->alias;  // deliveryauto
$cargo->$cargo_alias =  Result: not null;
Sukumar GV
@sukumargv
Mar 04 2015 12:22
Definitely bug..!
Andrey
@Quiss
Mar 04 2015 12:23
во поправил код выше*
Bakyt
@2bj
Mar 04 2015 12:23

Всем привет.

Как в L5 красиво указать providers и aliases для разных env в config/app.php

Andrey
@Quiss
Mar 04 2015 12:24
PS Лара 4.2 выше)
Bakyt
@2bj
Mar 04 2015 12:26
А то при деплое приходится тянуть required-dev
Andrey
@Quiss
Mar 04 2015 12:38
@Big-Shark ещё чуть-чуть ) уже Renault допаршивается )
Orel
@2byte
Mar 04 2015 12:41
@Quiss чего выше?
Andrey
@Quiss
Mar 04 2015 12:42
@2byte код который выше написан на ларе 4.2
Orel
@2byte
Mar 04 2015 12:43
@Quiss А что парсится ?
Bakyt
@2bj
Mar 04 2015 12:43
Самоответ: нужно создать свой провайдер и там зарегать их . Пример https://gist.github.com/2bj/1c074011e398e3b85c27
Andrey
@Quiss
Mar 04 2015 12:43
Sleeping Owl
@sleeping-owl
Mar 04 2015 12:45
@Quiss скорее фича, потому что элоквент конвертирует в camel-case. то есть в первом случае метод должен быть deliveryAuto() и тогда к нему можно будет обращаться и через аттрибут delivery_auto
Orel
@2byte
Mar 04 2015 12:46
@2bj можно в файле конфига среды providers => config_append([])
Brezhnev Ivan
@vanchelo
Mar 04 2015 12:49
@2bj $this->app->isLocal()
Andrey
@Quiss
Mar 04 2015 12:51
@vanchelo а ты шо скажешь по поводу моего кода чуть выше?) или @sleeping-owl прав?
Brezhnev Ivan
@vanchelo
Mar 04 2015 12:52
я не смотрел
но я думаю что @sleeping-owl прав)
Bakyt
@2bj
Mar 04 2015 12:55
@vanchelo спс
Brezhnev Ivan
@vanchelo
Mar 04 2015 12:56
@2bj я также регаю провайдеры для разработки
Alexander Popov
@ruelephant
Mar 04 2015 12:57
а что за ClockworkServiceProvider?
а... замена Debugbar
походу
Alexander Popov
@ruelephant
Mar 04 2015 12:59
спасибо я умею пользоваться гуглом :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:00
@2bj удобная тулза?
Alexander Popov
@ruelephant
Mar 04 2015 13:00
вопрос именно о вашем опыте так сказать
Andrey
@Quiss
Mar 04 2015 13:00
@vanchelo дебаг привычнее)
Alexander Popov
@ruelephant
Mar 04 2015 13:00
а не "прошу погуглить за меня"
Andrey
@Quiss
Mar 04 2015 13:00
@vanchelo https://octobercms.com/plugin/qub-clockwork вот скрины реализации в октябре
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:01
@ruelephant тебя уже все поняли)
Alexander Popov
@ruelephant
Mar 04 2015 13:01
ех был бы сервис, "searchInHead nickname keyword"
а на той стороне шлем с электродами
кучу времени на формирование вопросов сэкономили бы
Bakyt
@2bj
Mar 04 2015 13:03
@vanchelo ага, очень
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:04
@2bj и с ларкой дружит хорошо?
Bakyt
@2bj
Mar 04 2015 13:04
@vanchelo особенно если пишешь на js (ajax запросы)
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:04
мне debugbar не нравится тем что стили свои и скрипты грузит и местами конфликты бывают
Bakyt
@2bj
Mar 04 2015 13:04
@vanchelo не конфликтует )
Alexander Popov
@ruelephant
Mar 04 2015 13:05
@vanchelo если нет layout то он вообще не работает
в случаи json например
Andrey
@Quiss
Mar 04 2015 13:05
@vanchelo ClockWork дополнением к хрому ставиться )
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:05
а как он будет работать?
Alexander Popov
@ruelephant
Mar 04 2015 13:05
я и говорю
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:05
@ruelephant тогда json будет не валидный
Alexander Popov
@ruelephant
Mar 04 2015 13:06
более того, ему вставить то себя некуда
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:06
ага
Andrey
@Quiss
Mar 04 2015 13:06
не обижайте дебагбар xD
Alexander Popov
@ruelephant
Mar 04 2015 13:06
он вроде бы как за body цепляется
со своими "иньекциями" кода
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:06
да, если body нет на странице он не цепляется
Alexander Popov
@ruelephant
Mar 04 2015 13:07
а ClockWork есть порт под 5тую лару?
Bakyt
@2bj
Mar 04 2015 13:08
Еще один вопрос: как в L5 налету (не в App\Http\Kernel::$middleware) зарегать global middleware?
Orel
@2byte
Mar 04 2015 13:08
В ларе нет хелпера для перекрытия настроек? array_merge обычно юзаю
Bakyt
@2bj
Mar 04 2015 13:08
@ruelephant Да, экспериментальный. Пока без багов
Alexander Popov
@ruelephant
Mar 04 2015 13:08
@2bj где?
если есть под рукой ссылочка
Orel
@2byte
Mar 04 2015 13:09
This message was deleted
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:09
@2bj не нельзя
только посредников на роуты можно зарегать
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:10
Route::middleware('MyMiddleware') $this->app['router']->middleware
Bakyt
@2bj
Mar 04 2015 13:10
@vanchelo это плохо (
Alexander Popov
@ruelephant
Mar 04 2015 13:10
@2bj в мастере? там же вроде под 4-рку
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:10
незя из-за вот этого
return (new Pipeline($this->app))
            ->send($request)
            ->through($this->middleware)
            ->then($this->dispatchToRouter());
Alexander Popov
@ruelephant
Mar 04 2015 13:10
а ветки дев вообще нету
v1 какой то
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:11
@2bj наверное тейлор решил что нехорошо гадить сторонним пакетам в ядро приложения
Bakyt
@2bj
Mar 04 2015 13:11
@ruelephant там все в одном
@vanchelo блин, как быть теперь с девтулзами
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:14
зачем им глобальные посредники?
юзать посредников на роуты
LaravelButler

Приветствуем Вас, @zgelici, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Bakyt
@2bj
Mar 04 2015 13:20
@vanchelo девтулзам если не там то где еще быть? )
LaravelButler

Приветствуем Вас, @oguzbaktir, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Brezhnev Ivan
@vanchelo
Mar 04 2015 13:25
@2bj а причем тут посредники?
Bakyt
@2bj
Mar 04 2015 13:56
Тут есть автор laravel.su?
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:57
мы
Andrey
@Quiss
Mar 04 2015 13:58
@2bj ну как тебе сказать)
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:58
там много авторов)
Bakyt
@2bj
Mar 04 2015 13:58
Alt text очень напрягает. Можно сделать min:2?
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:58
можно
Andrey
@Quiss
Mar 04 2015 13:59
отправь пулл реквест :D
Brezhnev Ivan
@vanchelo
Mar 04 2015 13:59
да я щас сделаю
Bakyt
@2bj
Mar 04 2015 14:00
@Quiss не могу найти repo
@vanchelo спс!
Alexander Popov
@ruelephant
Mar 04 2015 14:01
а как расшифровывается bj?
у меня только пошлые варианты есть на "2bj"
Bakyt
@2bj
Mar 04 2015 14:03
@ruelephant фио
@ruelephant о пошляк )
@vanchelo LaravelRUS/laravel.ru#10
@vanchelo надо будет прикрутить oauth github
Alexander Popov
@ruelephant
Mar 04 2015 14:05
а кто подскажет что есть "репозиторий" и чем он от модели отличается
а то я начал по старинке class User extends Model {}
Bakyt
@2bj
Mar 04 2015 14:06
@ruelephant еще один слой абстракции чтобы ослабить связь с ORM
Alexander Popov
@ruelephant
Mar 04 2015 14:06
что-то в документации тишина
нету
Bakyt
@2bj
Mar 04 2015 14:08
@ruelephant если вдруг надо будет перейти в другой ORM отличной от Eloquent (скажем экзотический СУБД для кот нет адаптера) то с применением паттерна репозиторий у тебя проблем не будет. Достаточно имплеменить методы репозитория.
Alexander Popov
@ruelephant
Mar 04 2015 14:09
а где именно прочитать про реализацию в laravel репозитория?
Alexander Popov
@ruelephant
Mar 04 2015 14:10
у меня LA5
Bakyt
@2bj
Mar 04 2015 14:10
@ruelephant от версии не зависит
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:11
@2bj закомитил
Vladislav Maksimchuk
@condoriano
Mar 04 2015 14:12
о, народ подтянулся, никто не подскажет как реализовать DI для моделей? думал вот думал, читал читал, так и не придумал
Denis Isaychenko
@Rhincodon
Mar 04 2015 14:12
Vladislav Maksimchuk
@condoriano
Mar 04 2015 14:12
trait EloquentTrait {
    private $modelTranslator;
    public function getI18nAttribute()
    {
        if (! $this->modelTranslator)
        {
            $this->modelTranslator = new ModelTranslator($this, \App::getLocale());
        }
        return $this->modelTranslator;
    }
}
что бы избежать \App::getLocale() в модели.. не понимаю к это правильно сделать в духе лары
Denis Isaychenko
@Rhincodon
Mar 04 2015 14:12
@ruelephant если хочешь могу вечером перевести эту статью :)
Alexander Popov
@ruelephant
Mar 04 2015 14:13
да я уже так прочитал
не, мне пока рановато с таким заморачиватся
я как понял это просто класс который обрамляет собой ORM, никаких "магических" специальных оберток в LA нету
я ожидал просто опять специальные интерфейсы, отдельные сущности под это
slider23
@slider23
Mar 04 2015 14:15
@ruelephant В книге Тейлора "laravel: from apprentice to artisan"
Alexander Popov
@ruelephant
Mar 04 2015 14:15
СИСТЕМНЫЕ
Bakyt
@2bj
Mar 04 2015 14:15
@vanchelo биг сенкс!
slider23
@slider23
Mar 04 2015 14:15
PDF гуглится
Alexander Popov
@ruelephant
Mar 04 2015 14:16
подожду под la5 :)
а то мозг вывихнуть можно переводить примеры
slider23
@slider23
Mar 04 2015 14:16
Там про версию практически не слова
Там про принципы написания ООП кода
Про SOLID и прочее
Alexander Popov
@ruelephant
Mar 04 2015 14:17
"Advanced Architecture With Laravel 4"
продает за $29.99
slider23
@slider23
Mar 04 2015 14:18
Хотя нет, про версии там есть, но практически всё, что я вижу, применимо и у пятерке.
Сервис-провайдеры не изменились же.
Alexander Popov
@ruelephant
Mar 04 2015 14:19
жадный чувак, минимум поставил 29 баксов целых
хотя бы 19.99 для приличия
slider23
@slider23
Mar 04 2015 14:20
pdf гуглится, я же говорю
и на торрентах есть
Я когда пришел в laravel эту книгу купил, и фактически научился по ней
Alexander Popov
@ruelephant
Mar 04 2015 14:21
на выходных гляну
slider23
@slider23
Mar 04 2015 14:22
Т.е. до этого я писал код в контроллерах-моделях-вьюхах, практически не используя ООП
Ну кроме может наследования контроллеров от базового
То, что фреймворк давал, на том и писал
А книга заставила перещелкнуть мозги и взглянуть на ситуацию сверху
Alexander Popov
@ruelephant
Mar 04 2015 14:22
сверху это откуда? :)
slider23
@slider23
Mar 04 2015 14:23
Ну что я пишу на php, оказывается :)
а не на кохане или кодигниторе
Alexander Popov
@ruelephant
Mar 04 2015 14:23
мне так не хватает отладчика нормального
:(
"взрослого"
@slider23 ну а что там в чистом php? ничего почти нету
slider23
@slider23
Mar 04 2015 14:27
Классы есть, главное
Оказывается, функционал приложения можно писать в них, пользуясь всеми преимуществами ООП, а контроллеры-модели фреймворка юзать как нечто вспомогательное.
Alexander Popov
@ruelephant
Mar 04 2015 14:27
не совсем понял мысль
slider23
@slider23
Mar 04 2015 14:29
Ну раньше я думал - "куда положить это код?" и клал как правило в контроллер. реже в модель.
А в laravel я могу положить его в класс и заюзать его в контроллере. Это выглядит естественным.
благодаря поддержке composer
Alexander Popov
@ruelephant
Mar 04 2015 14:29
только не в класс, а в команду (job)
если по идеологии следовать
накидать кучу "пустых" классов не велика заслуга
в них нет магии, они унифицированы
slider23
@slider23
Mar 04 2015 14:31
комманд бас не обязателен, он не в идеологии laravel
для многих приложений он излишен
Alexander Popov
@ruelephant
Mar 04 2015 14:31
ну я его активно заюзал
slider23
@slider23
Mar 04 2015 14:32
А вот без репозиториев я уже не знаю как обходиться.
Alexander Popov
@ruelephant
Mar 04 2015 14:32
у меня есть restapi c одной стороны, и тоже самое только для консольных команд
slider23
@slider23
Mar 04 2015 14:32
в таком случае он нужен, конечно
Alexander Popov
@ruelephant
Mar 04 2015 14:32
если еще между комманд бас и орм положить репозитории
будет как то слишком "вверх" имхо
slider23
@slider23
Mar 04 2015 14:33
репозитории просто упрощают запросы
Alexander Popov
@ruelephant
Mar 04 2015 14:33
в Yii для упрощения используют методы модели
например
если там надо например циклом проехать постпроцессор
"В двух словах, паттерн Repository инкапсулирует объекты, представленыые в хранилище данных и операции, производимые над ними, предоставляя более объектно-ориентированное представление реальных данных. Repository также преследует цель достижения полного разделения и односторонней зависимости между уровнями области определения и распределения данных."
как не странно я даже понял определение O_o
@slider23 а пример реализации репозитория есть? Ну чисто уже готовый
мне интересно "а где хранить классы репозиториев"
"а где хранить интерфейсы под них"
slider23
@slider23
Mar 04 2015 14:38
можно в методах модели, но если есть некая сущность, которая состоит из нескольких моделей, непонятно, в какую модель помещать код
где хранить - ну в папке Repositories например :)
Alexander Popov
@ruelephant
Mar 04 2015 14:40
реализация AbstractRepository вызывает много вопросов
зачем было в базе дублировать функционал модели не понятно
slider23
@slider23
Mar 04 2015 14:40
Т.е. это просто классы верхнего уровня с повторяющимися запросами
да, это надо убрать, это действительно не нужно
Точнее технически это надо, чтобы быть полноценной прослойкой на случай смены БД с mysql на монгу например
но в данном случае такой задачи не стоит
Alexander Popov
@ruelephant
Mar 04 2015 14:42
не бд, а ORM системы
slider23
@slider23
Mar 04 2015 14:42
ну да
в общем, чтобы быть прокладкой
Alexander Popov
@ruelephant
Mar 04 2015 14:42
насколько я помню Eloquent держит бд сразу
с разными драйверами
slider23
@slider23
Mar 04 2015 14:42
монги там нет
Alexander Popov
@ruelephant
Mar 04 2015 14:43
ну понятно что нет, там идеология другая
даже в этом случаи, пихать код в AbstractRepository это не есть хорошо
slider23
@slider23
Mar 04 2015 14:44
В AbstractRepository копипаста из интернета, с какого-то проекта
Alexander Popov
@ruelephant
Mar 04 2015 14:44
в любом случаи придеться для монги делать ArticleRepoMongo
и дальше полезут изменения контролеров
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:45
@ruelephant пихать можно
Alexander Popov
@ruelephant
Mar 04 2015 14:45
и вообщем все загнулось
@vanchelo я в смысле "не нужно"
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:45
это вопрос сложный
мнения здесь разделяются)
Alexander Popov
@ruelephant
Mar 04 2015 14:46
я говорю если мы собираемся держать И монгу тоже как драйвер
дополнительно к стандарту
мы не уедем от ArticleRepoMongo + ArticleRepо = ArticleRepoSwitcher
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:46
уедем
Alexander Popov
@ruelephant
Mar 04 2015 14:46
и куда?
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:46
биндится реализация с интерфейсом
и юзается везде интерфейс
Alexander Popov
@ruelephant
Mar 04 2015 14:47
не понял
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:47
что не понял?
Alexander Popov
@ruelephant
Mar 04 2015 14:47
"биндится реализация с интерфейсом" - как?
пример в студию, может я что-то не понимаю
чую опять какая то магия
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:48
IoC
$this->app->bind('IRepository', 'ArticleRepoMongo')
function __construct(IRepository $repo)
и всё
Alexander Popov
@ruelephant
Mar 04 2015 14:49
ага гениально
slider23
@slider23
Mar 04 2015 14:49

в любом случаи придеться для монги делать ArticleRepoMongo

В том-то и фишка, что нет

Brezhnev Ivan
@vanchelo
Mar 04 2015 14:49
меняешь только в одном месте
Alexander Popov
@ruelephant
Mar 04 2015 14:49
а как мы будем использовать и старый драйвер?
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:49
какой старый?
Alexander Popov
@ruelephant
Mar 04 2015 14:49
делать условия в register?
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:49
нет, меняется одно на другое
Alexander Popov
@ruelephant
Mar 04 2015 14:49
@vanchelo по условию задачи, у нас два ORM сразу
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:49
тогда юзаешь так
Alexander Popov
@ruelephant
Mar 04 2015 14:50
как так?
два раза скопипастив?
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:50
$this->app->when('SomeController')->needs('SomeRepo')->give('NewRepo')
Alexander Popov
@ruelephant
Mar 04 2015 14:51
ну вот и пошло шаманство
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:51
это базовый функционал ларки
slider23
@slider23
Mar 04 2015 14:52

по условию задачи, у нас два ORM сразу

это как ? статьи у нас в mysql и монге одновременно ? Или статьи в монге, а остальное в mysql ? Тогда на монгу биндишь статьи, а остальное на элоквент-репу

Alexander Popov
@ruelephant
Mar 04 2015 14:52
@slider23 есть юзер репозиторий, часть данных были в mysql, а теперь они в монге
например это ммм "User flags"
Orel
@2byte
Mar 04 2015 14:53

@slider23

Advanced Architecture With Laravel 4

Описание принципа репозиториев ?

slider23
@slider23
Mar 04 2015 14:53
ок, ты написал репозиторий, к нему интерфейс, и в контроллерах юзаешь только репозиторий
Alexander Popov
@ruelephant
Mar 04 2015 14:53
ну
теперь тебе надо подсунуть прозрачно для контролеров (много менять) монгу
slider23
@slider23
Mar 04 2015 14:53
решил переехать на монгу - пишешь репозиторий на монгу, с тем же API, чтобы удоалетворяло старому интерфейсу
и меняешь одну строчку в сервис-провайдере
Alexander Popov
@ruelephant
Mar 04 2015 14:54
не нравится :\
Brezhnev Ivan
@vanchelo
Mar 04 2015 14:54
что не нравится?
ты меняшь для одной сущности
а не для всех сразу
Alexander Popov
@ruelephant
Mar 04 2015 14:55
делать биндинги на каждый репозиторий
slider23
@slider23
Mar 04 2015 14:55
с $this->app->bind('UserInterfaceRepo', 'UserRepo') на $this->app->bind('UserInterfaceRepo', 'UserMongoRepo')
Alexander Popov
@ruelephant
Mar 04 2015 14:55
хочу нативно
@slider23 да это понятно
slider23
@slider23
Mar 04 2015 14:55
Вообще, замена БД на лету - это очень экзотическая задача и вряд ли кому-то нужна на практике
Подобная смена биндингов в реальной жизни нужна, например, для смены рассылки смс с одного сервиса на другой.
Alexander Popov
@ruelephant
Mar 04 2015 14:56
ну понятно вообще
жаль нету стандратной магии под это
slider23
@slider23
Mar 04 2015 14:57
т.е. код в контроллерах-командах-итп остается тем же (интерфейсы через DI подаются), ты меняешь один биндинг и всё
Если будет стандартная магия, то уйдет гибкость, а это хуже гораздо
Alexander Popov
@ruelephant
Mar 04 2015 14:58
просто смена бд в проекте это вообще задача "раз в год" :)
точнее смена ОРМ
стоит ли плодить еще одну абстракцию для этого, вопрос
особенно если проект относительно компактный
скажем до 10000 строк в контролерах
а в больших проектах как правило over 9000 индусов, которые это все руками отколотят, заколотят и поравят
зато стабильность без прокладок
по поводу "а вдруг забудем заменить" в любом случаи нужно покрытие контролеров тестами
в любом случаи ты не реализуешь интерфейс идеально с первого раза
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:01
контроллеры в 10к строк о_О
slider23
@slider23
Mar 04 2015 15:01
Т.е. "пишем код в контроллерах" ?
Alexander Popov
@ruelephant
Mar 04 2015 15:01
не код а вызовы ОРМ
да стоит завести опциально прокладку для повторяющихся вызовов (хотя у нас есть автоБУС для этого)
slider23
@slider23
Mar 04 2015 15:02
Ну вот репозитории и есть эта прокладка
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:03
бус не для этого
Alexander Popov
@ruelephant
Mar 04 2015 15:03
но бездумно плодить репозитории для вызовов "получить все записи"
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:03
GetAllUsersCommand?
Alexander Popov
@ruelephant
Mar 04 2015 15:03
как то стремно честно
slider23
@slider23
Mar 04 2015 15:03
чтобы не писать в контроллерах Articles::notDraft()->withAuthor()->orderByDatePublished()->limit($num)->get(); постоянно и не править в 20 местах если захотим что-то добавить или поменять
Alexander Popov
@ruelephant
Mar 04 2015 15:03
@vanchelo да нет конечно, не надо утрировать
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:03
а если мне придется например не всех юзеров получить а с условием
бегать в контроллерах дописывать?
slider23
@slider23
Mar 04 2015 15:04
"Получить все записи" не надо конечно
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:04
надо
Alexander Popov
@ruelephant
Mar 04 2015 15:04
вот и пошел холивар
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:04
function all() { return $this->query()->whereDeleted(false)->get(); }
например решил босс показывать вместо всех, всех не удаленных
Alexander Popov
@ruelephant
Mar 04 2015 15:05
я поддерживаю @slider23 что реестр это не столько для "быстрой смены бд" сколько обертка над сложными вызовами
slider23
@slider23
Mar 04 2015 15:05
я к тому, что не нужно повторять все дефолтные методы элоквента, выше это обсуждали
Alexander Popov
@ruelephant
Mar 04 2015 15:05
а у @vanchelo получится куча "пустых" методов которые повторяют дефолтные методы
slider23
@slider23
Mar 04 2015 15:05
если в проекте нужно получать все записи, то лучше это сделать через репу
Впрочем, тут все зависит от
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:06
от дирехтура
Alexander Popov
@ruelephant
Mar 04 2015 15:06
@slider23 я за то что бы использовать репы только для сложных конструкций, а не для select * from table
@vanchelo же предлагает использовать для всего, на всякий случай
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:07
@ruelephant я еще пишу репы для коллекций
['a' => 1, 'b' => 2]
например
Alexander Popov
@ruelephant
Mar 04 2015 15:07
{мат}
я думаю ты переборщил
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:07
вы для двух значение таблицу заводите?
slider23
@slider23
Mar 04 2015 15:07
@ruelephant Ты напрасно пытаешься нас с @vanchelo развести на холивар, для нас обоих понятно, зачем нужны репозитории, а если видим различия в реализации - то понимаем, что это индивидуальные особенности работы и проекта :)
Alexander Popov
@ruelephant
Mar 04 2015 15:08
а кто писал laravel.su?
там не единой модели нет живой, все в репозиториях
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:08
открой контрибьюторов
slider23
@slider23
Mar 04 2015 15:08
Мы и писали
Alexander Popov
@ruelephant
Mar 04 2015 15:08
я про архитектуру
"мы" не прокатит
slider23
@slider23
Mar 04 2015 15:09
Начал я, разбивал на модули, потом народ влился и перелопатил часть
Alexander Popov
@ruelephant
Mar 04 2015 15:09
просто какой то перекос случился имхо
с "разбиением на модули"
перестарались
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:09
да
slider23
@slider23
Mar 04 2015 15:10
Если ты считаешь, что репы нужны для сложного - ок. Если кто-то другой считает, что для всего - ок, его дело. Нет однозначно правильного решения.
Alexander Popov
@ruelephant
Mar 04 2015 15:10
диагнистирую классический случаи "оверинженеринг" :)
slider23
@slider23
Mar 04 2015 15:10
ок
Alexander Popov
@ruelephant
Mar 04 2015 15:11
просто моя позиция такая, лучше потом провести глобальный рефракторинг, чем три года пока проект растет запинатся об "сопли" на будущее
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:11
@ruelephant подключайся, рефактори)
тебе никто не запрещает)
slider23
@slider23
Mar 04 2015 15:11
Ох не надо, уже рефакторили :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:11
труд приветствуется
slider23
@slider23
Mar 04 2015 15:12
Хотя в отдельной ветке, и если получится красиво - давай :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:12
ну да
Alexander Popov
@ruelephant
Mar 04 2015 15:12
@vanchelo press(BUTTON_CTRL, BUTTON_A); press(BUTTON_DELETE); :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:13
@ruelephant я уверен что так в любом проекте, когда приходит другой разраб и гураецо матом
slider23
@slider23
Mar 04 2015 15:14
Когда я начинал, мне идея с модулями оч понравилась и я несколько проектов сделал с ними. Для генерации папок, чтобы руками всё не делать, сделал пакет https://github.com/slider23/laravel-modulator
Alexander Popov
@ruelephant
Mar 04 2015 15:14
а когда будет пакет для генерации пакета? :)
slider23
@slider23
Mar 04 2015 15:14
Хотя для laravel.su как многопользовательского бложика это, наверное, овер.
Логический модуль - это не пакет
Но laravel.su еще планировался как демонстрационный репозиторий, чтобы показать, как можно писать приложения на laravel
Потому что по модульной архитектуре ничего не было.
Ну мы и угорели немношк по нему.
Alexander Popov
@ruelephant
Mar 04 2015 15:16
помоему это не очень хорошая идея на "показать" :)
новички придут и тут сразу диссананс с стандартной структурой
мне чуть мозг не разорвали по началу
slider23
@slider23
Mar 04 2015 15:17
ну это не совсем для новичков, понятно
Alexander Popov
@ruelephant
Mar 04 2015 15:17
напишите крупными буквами :)
я вот думаю, что бы было на выходе, если бы вы проектировали мосты.... Мосты с возможностью "быстрой модификации под подвесное метро, телеги, шлюзовой канал для подводных лодок"
стоимостью 1 триллион неземных единиц
slider23
@slider23
Mar 04 2015 15:20
Не "мы" , а "я" :)
NelinD
@NelinD
Mar 04 2015 15:20

@ruelephant при строительстве мостов не просят

модификации под подвесное метро, телеги, шлюзовой канал для подводных лодок

slider23
@slider23
Mar 04 2015 15:21
У меня еще было предложение по организации роутов, но народу не понравилось.
А жаль. :)
Sergius
@matiaspub
Mar 04 2015 15:21
http://devsize.ru/laravel-vs-symfony-5-steps-choosing-framework
кто че скажет про статью?
Alexander Popov
@ruelephant
Mar 04 2015 15:21
когда новички заходят в ваши "примеры", там приблизительно вот такое - alt
slider23
@slider23
Mar 04 2015 15:21
Я уже написал во вконтакте
@ruelephant не заходят, я написал "планировался".
А не "является" и "для новичков"
Alexander Popov
@ruelephant
Mar 04 2015 15:24
@NelinD ага, а при проектировании веб приложений пожайлуста :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:27
@matiaspub не люблю я такие сравнения
они бесполезны
давайте сравним кота и собаку
Sergius
@matiaspub
Mar 04 2015 15:31
я тоже не люблю, но всегда читаю если встречаю
побесить себя чтоли хочу? )
Brezhnev Ivan
@vanchelo
Mar 04 2015 15:31
ага
Alexander Popov
@ruelephant
Mar 04 2015 16:02
а что там?
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:02
буквы
Alexander Popov
@ruelephant
Mar 04 2015 16:03
капитан
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:03
ага
повысили
Alexander Popov
@ruelephant
Mar 04 2015 16:03
хотя зря, там черные на белом пиксели
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:03
а был простым матросом
только черные?
Alexander Popov
@ruelephant
Mar 04 2015 16:04
на самом деле не весь черный черным является :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:04
конечно же
Alexander Popov
@ruelephant
Mar 04 2015 16:05
:)
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:05
чернее черного ахахах)
Alexander Popov
@ruelephant
Mar 04 2015 16:06
а его стирали с лаской магия черного
получили абсолютно черное тело
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:06
ты в живую видел такое?
интересно как мозг себя в этот момент чувствует)
Alexander Popov
@ruelephant
Mar 04 2015 16:07
ну сделай модель
глянь
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:07
а при поглощении света куда энергия уходит?
в тепло?
Alexander Popov
@ruelephant
Mar 04 2015 16:07
в тепло
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:08
значит он будет на солнце очень горячим
Alexander Popov
@ruelephant
Mar 04 2015 16:08
да, адмирал
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:08
о, спс
повышение)
Alexander Popov
@ruelephant
Mar 04 2015 16:09
ты душ никогда не видел такой? берут бак, на 5-10 кубов, красят в черный цвет и на высоту метра 3-4
он летом за день прогревается и вуаля, горячая вода
а если сфокусированной системой зеркал, то вообще можно получить кипяток и вывести пар на турбину
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:10
да, конечно
Alexander Popov
@ruelephant
Mar 04 2015 16:11
вот так выглядит
несколько гектар зеркал
"Площадь гигантского «зеркала» составляет более 14 квадратных километров"
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:12
делать нехер людям)
Alexander Popov
@ruelephant
Mar 04 2015 16:12
так халява же
вода нагревается в баке, и по трубам выходит пар
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:12
ага, а обслуживать
Alexander Popov
@ruelephant
Mar 04 2015 16:12
который крутит турбину
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:13
мыть их
следить за целостностью
Alexander Popov
@ruelephant
Mar 04 2015 16:13
они помоему сжатым воздухом очищаются
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:14
каждая?
Alexander Popov
@ruelephant
Mar 04 2015 16:14
ага + механизм поворота
у каждого зеркала
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:14
или руками по очереди?
а че ты еще не построил нейросеть?
Alexander Popov
@ruelephant
Mar 04 2015 16:14
ты представляешь 14 КВАДРАТНЫХ километров зеркал? :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:14
ага
Alexander Popov
@ruelephant
Mar 04 2015 16:14
ручками не очистишь
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:14
и круглых представляю)
14 круглых киллометров
почему кругами не меряют?
если что-то круглое удобнее ведь измерять кругами)
Alexander Popov
@ruelephant
Mar 04 2015 16:16
это квадрат 3.75*3.75 :)
километра
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:16
ну вот неудобно же)
в идеальном мире всё должно быть круглым и шарообразным)
Alexander Popov
@ruelephant
Mar 04 2015 16:17
да да да, и что бы сказать площадь нам не два числа перемножить а вычислить S=π r2
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:17
не
зачем
площадь ведь в кругах
есть 1 круглый метр
от него и вычислять
Alexander Popov
@ruelephant
Mar 04 2015 16:18
@vanchelo выдыхай уже
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:18
ахаахах
площадь и не надо вычислять
Alexander Popov
@ruelephant
Mar 04 2015 16:18
или ждем от тебя до завтра систему изменения основанную на кругах
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:18
достаточно диаметра)
Д = 1 м == 1 круглый метр
что сложного?
нахера площади?
люди привыкли всё усложнять
Alexander Popov
@ruelephant
Mar 04 2015 16:19
я куплю у тебя тогда 3 круга земли
Sergius
@matiaspub
Mar 04 2015 16:19
LaravelRUS/chat )))
Alexander Popov
@ruelephant
Mar 04 2015 16:19
посмотрим как ты их отмеришь
Roman
@TeroBlaZe
Mar 04 2015 16:19
Привет всем! Я тут поставил Homestead, подскажите,почему он может медленно работать? первый запрос на странице занимает 1сек, иногда даже больше
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:19
так каких круга?
Alexander Popov
@ruelephant
Mar 04 2015 16:20
@TeroBlaZe да погоди, мы тут про круги
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:20
три круглых метра?
Alexander Popov
@ruelephant
Mar 04 2015 16:20
@vanchelo мегакругов
Roman
@TeroBlaZe
Mar 04 2015 16:20
@ruelephant хорошо хоть не про платья...
Alexander Popov
@ruelephant
Mar 04 2015 16:20
три мегакруга земли
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:20
три круглых гектара?
Alexander Popov
@ruelephant
Mar 04 2015 16:20
ага
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:20
ну норм
Alexander Popov
@ruelephant
Mar 04 2015 16:20
ну ты отмеришь скажи, только мне ровно надо
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:20
что отмерять
конечно ровно
круги не бывают кривыми
ибо они перестанут быть кругами
Alexander Popov
@ruelephant
Mar 04 2015 16:20
причем они должны быть непрерывно 3 рядом
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:20
так и будет
Alexander Popov
@ruelephant
Mar 04 2015 16:21
без "чужих" областей в центре
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:21
очень просто
Alexander Popov
@ruelephant
Mar 04 2015 16:21
давай
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:21
я ж выше написал
ты готовь наличку
Alexander Popov
@ruelephant
Mar 04 2015 16:21
так на выходе то они либо будут пересекать друг-друга либо будут пустоты
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:22
пересекать конечно
но от этого они не перестанут быть кругами
Alexander Popov
@ruelephant
Mar 04 2015 16:22
ну тогда общая площадь будет не три круга
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:22
будет три
Alexander Popov
@ruelephant
Mar 04 2015 16:22
а мне надо общую площадь ровно в три круга
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:22
да так и будет)
Alexander Popov
@ruelephant
Mar 04 2015 16:23
дык не будет
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:23
я тебя понял с первого раза
ладно, закроем пока тему кругов, а то распугаем новичков)
@ruelephant ты наверное не подумал что диаметры просто складываются, да?
Роман Сохарев
@greabock
Mar 04 2015 16:26
это не одно и тоже
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:26
по площади не одно
Роман Сохарев
@greabock
Mar 04 2015 16:26
именно
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:26
но у нас круги)
у нас не площадей
Alexander Popov
@ruelephant
Mar 04 2015 16:27
@vanchelo нет не подумал, я пытался три круга рядом разместить :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:27
если правильно то конечно рядом надо
если именно по площадям считать(
Роман Сохарев
@greabock
Mar 04 2015 16:27
возвести в круг... норм же выражение?
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:27
не
это не то
Роман Сохарев
@greabock
Mar 04 2015 16:28
почему же?
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:29
Диаметр = 1м
3 круга диаметром 1м
3 * (pi * d^2) = ?
Alexander Popov
@ruelephant
Mar 04 2015 16:29
так!
народ мы тут как бы это самое
laravel и все дела
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:31
1.73 диаметр же
площадь общего круга == площади трех кругов =)
а так, вообще просто круги рисуешь и всё, заполняешь пробелы более маленькими, и так до бесконечности
просто ведь?
Alexander Popov
@ruelephant
Mar 04 2015 16:33
костыль!
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:33
немного есть)
Alexander Popov
@ruelephant
Mar 04 2015 16:33
твоя система не совершенна
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:33
согласен
пустоты можно пивком заполнить)
Alexander Popov
@ruelephant
Mar 04 2015 16:33
лучше основанную на треугальниках
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:33
или деревья посадить)
да, треугольниками удобнее
но рисовать их сложнее
Alexander Popov
@ruelephant
Mar 04 2015 16:36
а круги вообще круто
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:37
Всем привет!!!!
Alexander Popov
@ruelephant
Mar 04 2015 16:37
после трех литров пива, недрогнувшей рукой. Нарисовать три круга рядом
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:37
Мужики, а можно как то переопределить метод модели???
Alexander Popov
@ruelephant
Mar 04 2015 16:37
КРУГА! а не многоугольника
@Anton04061993 какой?
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:40
@ruelephant Напимер у таблицы Users есть поле name, и получить его значение можно $users = User::all(), а потом в цикле $user->name, а мне нужно проводить кое какие действия над этим именем
Alexander Popov
@ruelephant
Mar 04 2015 16:40
ну сделай метод как вариант у user
в нем $users = User::all(); и там форыч ретурт
можно генератор заюзать
для экономии
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:41
сделать геттер
Alexander Popov
@ruelephant
Mar 04 2015 16:41
@vanchelo генератор? :)
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:41
@ruelephant Это надо унаследоваться от модели user (Я использую sentry)
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:42
public function getNameAttribute($value)
{
    return $value . ' ' . $this->id;
}
Alexander Popov
@ruelephant
Mar 04 2015 16:42
щаз сек, я выйду из режима упоротости
@Anton04061993 ага надо
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:42
ничего не надо
геттер создай в моделе!
и делай там манипуляции с именем
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:43
Что за геттер??? Это функция так называется?
Alexander Popov
@ruelephant
Mar 04 2015 16:43
хотя да
я уже упорот
@Anton04061993 это метод
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:43
если надо будет получить сырое значение $user->getOriginal('name')
Anton Zapevalov
@ZapevalovAnton
Mar 04 2015 16:44
Спасибо всем
Alexander Popov
@ruelephant
Mar 04 2015 16:44
@Anton04061993 гетер это волшебный метод вообщем, который будет исполнятся вместо оригинального name
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:45
@ruelephant ты еще просто на треугольники не переключил своё мышление)
Alexander Popov
@ruelephant
Mar 04 2015 16:45
@vanchelo я же прав?
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:45
кстати подумал я, что треугольниками плохо, они колючие)
@ruelephant да
идеальный треугольник больно колется =)
Alexander Popov
@ruelephant
Mar 04 2015 16:45
воот, я всегда прав
так и запишите
Brezhnev Ivan
@vanchelo
Mar 04 2015 16:46
а я всегда лев =)
Alexander Popov
@ruelephant
Mar 04 2015 16:47
охотник со снайперкой
твоя карта бита :)
LaravelButler

Приветствуем Вас, @dikun, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

JhaoDa
@jhaoda
Mar 04 2015 17:30
Опять элефантус учил всех жизни?
Brezhnev Ivan
@vanchelo
Mar 04 2015 17:30
=)
JhaoDa
@jhaoda
Mar 04 2015 17:30
Кстати, в той башне среди зеркал не вода, а расплав соли
http://shawnmc.cool/the-repository-pattern вот автор сволочь! Посеял сомнения во мне на счет «Should Repositories Create Entities?»
Denis Isaychenko
@Rhincodon
Mar 04 2015 17:36
:)
Brezhnev Ivan
@vanchelo
Mar 04 2015 17:36
=)
Denis Isaychenko
@Rhincodon
Mar 04 2015 17:36
ща кстати сегодня вечером переведу эту статейку, делать нечего всё равно, на ларакасте глухо, клаудмаус опять лёг :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 17:38
ыыыы
хорошая мыша, мертвая мыша)
Denis Isaychenko
@Rhincodon
Mar 04 2015 17:41
https://leanpub.com/larasign не пойму эта книга пишется, или заброшена и примеры на каком laravel в ней, никто не покупал?
Brezhnev Ivan
@vanchelo
Mar 04 2015 17:42
неа
Valeriy
@Adoafw
Mar 04 2015 17:48
Ребят кто встречал подобный alloyui но для Лары?
скоро появится еще один пакет для виджетов)
JhaoDa
@jhaoda
Mar 04 2015 17:52
https://medium.com/@e1himself/definitely-typed-php-9c5c41d2c810 годно. Я пока через докблоки дописываю эти методы
Valeriy
@Adoafw
Mar 04 2015 17:57
@vanchelo да там почти все пустое)
Brezhnev Ivan
@vanchelo
Mar 04 2015 17:58
может планирует?
@jhaoda на практике использовал?
JhaoDa
@jhaoda
Mar 04 2015 18:05
@vanchelo кого?
JhaoDa
@jhaoda
Mar 04 2015 18:07
@vanchelo да там же нет готового решения. Автор пишет, что хорошо бы такое сделать для РНР и написал ишуйку для Шторма
Brezhnev Ivan
@vanchelo
Mar 04 2015 18:08
)
Роман Сохарев
@greabock
Mar 04 2015 18:43
@jhaoda первая здравая статья о репозиториях в ларе, спасибки
JhaoDa
@jhaoda
Mar 04 2015 19:00
Я так понял, что он еще и против кэширования в репах
Где ж тогда кэшировать?
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:02
в репах канеш кэшировать нельзя
с помощью реп мне кажется можно сделать UoW
JhaoDa
@jhaoda
Mar 04 2015 19:04
@vanchelo а где можно?
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:17
This message was deleted
годный сервис)
<img src="http://placephant.com/300/200">
JhaoDa
@jhaoda
Mar 04 2015 19:36
@vanchelo ну расскажи, где кэшировать?
Orel
@2byte
Mar 04 2015 19:46
@vanchelo надо яву знать)
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:47
2015-03-04_214606.png
нда
хорошо что я не переехал с DO на него
Orel
@2byte
Mar 04 2015 19:48
@vanchelo это хостинг?
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:48
был)
Orel
@2byte
Mar 04 2015 19:48
@vanchelo а что у них не получилось то?
@vanchelo сервера сгорели ?)
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:49
а ты прочитал?
ничего в том контексте надо вроде как слитно писать
Orel
@2byte
Mar 04 2015 19:49
@vanchelo не смогли предоставить качественный сервис, а конкретно не написано
@vanchelo ага, единое слово
Denis Isaychenko
@Rhincodon
Mar 04 2015 19:51
блин, 2 плохих новости за один вечер
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:51
а какая первая?
Denis Isaychenko
@Rhincodon
Mar 04 2015 19:53
ну я такой перевожу ту статью по репозиториям и на предпоследнем абзаце когда гуглю слово, нахожу эту статью уже переведённую на хабре. :) Короче такой вот лол получился. https://gist.github.com/Rhincodon/5e504b3d377c0c1985bb http://habrahabr.ru/post/248505/
и Яндекс вот блин 2 недели не хотел индексировать сайт, а тут как клаудмаус лёг так он сразу такой, чё у вас сайт не онлайн :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:57
весело
Denis Isaychenko
@Rhincodon
Mar 04 2015 19:59
чё вы мне не сказали что она уже переведена когда я писал что собираюсь переводить? :)
Brezhnev Ivan
@vanchelo
Mar 04 2015 19:59
я даже не знал
мне с репами давно всё понятно
еще их тейлора книги
поэтому я и не читал за них)
а вот по DDD мало статей хороших
Alexey
@Butochnikov
Mar 04 2015 20:03
хм... как-то прошла мимо меня эта статья на хабре
@Rhincodon но мы твой перевод опубликуем )
Denis Isaychenko
@Rhincodon
Mar 04 2015 20:05
та нужно сравнить, может там лучше :) Кстати по той серии на медиуме, она же по L4, уже вроде не сильно актуальна, может есть что другое? @Butochnikov
Alexey
@Butochnikov
Mar 04 2015 20:07
актуальность это ты про 4-ку? я не стал бы списывать ее ) тем более, что часть к 5 тоже относиться.
а про 5 подобного нет, к сож. (
JhaoDa
@jhaoda
Mar 04 2015 20:09
Парни, ну кто-нить скажет, где можно и нужно кэшировать даные из БД, если в репах нельзя?
Denis Isaychenko
@Rhincodon
Mar 04 2015 20:10
там просто в последней статье серии написано I’ve realised that the new structure is such a shift from 4.x branch that it deserves a reboot from this series. Что типа сильно смешение в версиях настолько сильное что следует эту серию перезагрузить. :) Я смотрю в сторону этой книги https://leanpub.com/larasign и если там актуальная информация , нужно найти, может кто купил, я думаю такое чтиво на русский перевести было бы круто :)
@jhaoda ´В будущем я хочу написать ещё несколько статей о репозиториях, например о том как кешировать результаты репозитория используя паттерн декоратор´ . Кривой тут немного мой перевод, но смотреть нужно в направлении этого паттерна я так понял. :)
Или подождать пока он напишет статью
Alexey
@Butochnikov
Mar 04 2015 20:12
так ты можешь связаться с автором и перевести книгу, он будет рад. что у него есть переводы на другие языки.
censoredgit
@censoredgit
Mar 04 2015 20:12
@jhaoda в сервисах
Andrey
@Quiss
Mar 04 2015 20:13
Model: Cargo.php -> 
public function delivery_auto()
    {
        return $this->hasOne('CourierLog','id','deliveryaut_cl');
    }
View ->
$cargo_alias = $copmanie->alias;  // delivery_auto
$cargo->$cargo_alias =  Result: null;
$cargo->delivery_auto =  Result: not null;

----------------------------------------------------------------------------------------------
Model: Cargo.php -> 
public function deliveryauto()
    {
        return $this->hasOne('CourierLog','id','deliveryaut_cl');
    }
View ->
$cargo_alias = $copmanie->alias;  // deliveryauto
$cargo->$cargo_alias =  Result: not null;
я сегодня писал об этом
но я забыл учесть одну деталь
$cargo->delivery_auto работает на ура
JhaoDa
@jhaoda
Mar 04 2015 20:14
@censoredgit есть пример?
Denis Isaychenko
@Rhincodon
Mar 04 2015 20:14
Попробую в твиттере ему написать..
censoredgit
@censoredgit
Mar 04 2015 20:15
@jhaoda на видео был, но там же друпал xD
Alexey
@Butochnikov
Mar 04 2015 20:16
@Rhincodon его блог http://keltdockins.com/
Denis Isaychenko
@Rhincodon
Mar 04 2015 20:17
О, лучше тогда на E-mail
JhaoDa
@jhaoda
Mar 04 2015 20:17
Короче, похер. Мои репы будут создавать и кэшировать
Andrey
@Quiss
Mar 04 2015 20:17
ЛОЛ
Я получил письмо от маусов
Мы пытались, но у нас ни чего не получилось :(
Просим прощения, у всех наших пользователей, за то что не смогли представить вам качественный сервис. Мы уходим... Проект будет закрыт

Если вы делали бекапы в панели управления, то по запросу в тикет систему, мы предоставим ссылку на их скачивание.

Уважаемые пользователи, мы рекомендуем использовать сервера от компании флопс, они хорошие ребята и давно зарекомендовали себя на рынке.
JhaoDa
@jhaoda
Mar 04 2015 20:17
И пусть мне снятся злые Шон и Банда Четырёх
Подушкой отмахаюсь
Вертекс
@wertex
Mar 04 2015 20:25
есть таблица letters и users. в таблице letters есть поле author, оно связано с id юзера. Не могу понять как в модели это указать (
автор может быть только один
Andrey
@Quiss
Mar 04 2015 20:28
hasOne
public function hasOneLetters()
{
        return $this->hasOne('letters','author','id');
}
это в модель закинь
а потом в запросе использую между ->where и ->get что-то вроде ->with('hasOneLetters')
Brezhnev Ivan
@vanchelo
Mar 04 2015 20:29
@Quiss :point_up: 4 марта 2015 г., 21:47
Andrey
@Quiss
Mar 04 2015 20:30
@vanchelo А я вовремя успел скачать снапшот
Вертекс
@wertex
Mar 04 2015 20:30
@Quiss а это вписать в модель user ?
Andrey
@Quiss
Mar 04 2015 20:30
да
и потом запрос должен получиться что-то типо:
User::with('hasOneLetters')->get();
в таком случае ты сможешь использовать это так:
foreach....
{{$user->login}}
{{$user->hasOneLetters->названиеПоляИзLetters}}
Вертекс
@wertex
Mar 04 2015 20:33
$letters = User::find(3)->get_letters();
return View::make('index', array('letter' => $letters));
так не будет работать ?
Andrey
@Quiss
Mar 04 2015 20:33
нет
стоп
давай по порядку
Вертекс
@wertex
Mar 04 2015 20:33
ага
Andrey
@Quiss
Mar 04 2015 20:33
Тебе надо что? вытаскивать юзеров и letter какуюто часть
или наоборот?
letter а к ней юзеров
Вертекс
@wertex
Mar 04 2015 20:34
у меня есть письма - letter. у писем есть автор - user. мне надо построит табличку с авторами. а потом куда ушло письмо и тд
    Schema::create('letters', function($t){
        $t->increments('id');
        $t->integer('author_id'); //автор записи. Автора берем из таблицы users
        $t->integer('to_whom_id');//кому. берем из таблицы ToWhom
        $t->integer('costs_id');//стоимость JSON массив [18,1,2,0.5]
        $t->boolean('registered');//отметка о доставке да/нет 1/0
        $t->string('number_docsvision_id');//номер письма в доксвижен. берем из таблицы NumberDocsvision
        $t->integer('comments_id');//комментарий. берем из таблицы comments
        $t->integer('status_id');//статус. берем из таблицы status
        $t->timestamps();//дата создания
    });
Andrey
@Quiss
Mar 04 2015 20:35
так давай по порядку, в моделе Letter пропиши следующее:
public function hasOneUser()
{
        return $this->hasOne('User','id','author_id');
}
Вертекс
@wertex
Mar 04 2015 20:35
    Schema::create('users', function($t){
        $t->increments('id');
        $t->string('Name'); // ФИО
        $t->string('UserName'); //логин
        $t->string('Password'); //пароль
        $t->timestamps();
    });
Andrey
@Quiss
Mar 04 2015 20:36
прописал?)
Вертекс
@wertex
Mar 04 2015 20:36
да
Andrey
@Quiss
Mar 04 2015 20:36
так теперь
$letters = Letter::find(3)->with('hasOneUser')->get();
return View::make('index', array('letter' => $letters));
это в контроллере или где ты там вьюхи вызываешь
тьфу
не так) ща
во так
Вертекс
@wertex
Mar 04 2015 20:37
у меня 4.2
Andrey
@Quiss
Mar 04 2015 20:37
я знаю
у меня тоже ^_^
и я прекрасно знаю что там return View::make
Вертекс
@wertex
Mar 04 2015 20:38
просто в доках и видео обучении по другому в вид выгружается :)
Andrey
@Quiss
Mar 04 2015 20:38
а ну да
по другому
ты прав
ща))
Вертекс
@wertex
Mar 04 2015 20:38
вот я и завис немного
Andrey
@Quiss
Mar 04 2015 20:38
я прост скопировал не посмотрел
сек)
Вертекс
@wertex
Mar 04 2015 20:38
жду
Andrey
@Quiss
Mar 04 2015 20:39
$letters = Letter::find(3)->with('hasOneUser')->get();
return View::make('index')->with('letters',$letters);
вот
Вертекс
@wertex
Mar 04 2015 20:39
вставил
Andrey
@Quiss
Mar 04 2015 20:40
так, теперь открывай стой index.blade.php
во вьюхах
Вертекс
@wertex
Mar 04 2015 20:41
{"id":1,"author_id":1,"to_whom_id":1,"costs_id":1,"registered":1,"number_docsvision_id":"1","comments_id":1,"status_id":1,"created_at":"-0001-11-30 00:00:00","updated_at":"-0001-11-30 00:00:00","has_one_user":{"id":1,"Name":"\u0421\u043a\u043e\u043c\u043e\u0440\u043e\u0445\u043e\u0432 \u0410.\u0412.","UserName":"skomorohov_av","Password":"$2y$10$54UMorirZBMbTbLDS86yN.Ck1SBQwtweq5GTVUEgsV1ha2.26PaWW","created_at":"-0001-11-30 00:00:00","updated_at":"-0001-11-30 00:00:00"}}
выдал )))
Andrey
@Quiss
Mar 04 2015 20:41
и пиши следующее:
@foreach($letters as $letter)
{{$letter->registered}} // Поля из LETTERS
{{$letter->hasOneUser->Name}} // Поля из USERS
@endforeach
Вертекс
@wertex
Mar 04 2015 20:41
хм
Andrey
@Quiss
Mar 04 2015 20:42
ток обязательно что-бы файл был .blade.php
index.php не прокатит)
что-бы прокатило index.php надо менять на <?php foreach($letters..........
Вертекс
@wertex
Mar 04 2015 20:42
блейд у меня )
Andrey
@Quiss
Mar 04 2015 20:43
ну малоли, я когда с CodeIgniter перепрыгивал, сразу не вдуплил) О спасибо великому Гиттеру)
Вертекс
@wertex
Mar 04 2015 20:43
в общем выдало то что нужно )
Andrey
@Quiss
Mar 04 2015 20:43
^_^
Вертекс
@wertex
Mar 04 2015 20:43
теперь попробую добавить туда адресата
@Quiss спасибо )
Andrey
@Quiss
Mar 04 2015 20:44
давай :) по такой-же схеме
ток это
ща объясню)
Вертекс
@wertex
Mar 04 2015 20:44
?
Orel
@2byte
Mar 04 2015 20:44
@Quiss тут @vanchelo уже показал) https://files.gitter.im/LaravelRUS/chat/Gy46/2015-03-04_214606.png
Andrey
@Quiss
Mar 04 2015 20:44
public function hasOneUser()
{
        return $this->hasOne('Название модели подключаемой','Название поля в модели которую подключаем','Название поля которое передаем в модель');
}
вот тут)
а то вдруг ты не понял
Вертекс
@wertex
Mar 04 2015 20:45
вставил и закомментил в модель )
Andrey
@Quiss
Mar 04 2015 20:45
и ещё одно есть) тебе понадобиться
сек)
public function hasManyUser()
{
        return $this->hasMany('Название модели подключаемой','Название поля в модели которую подключаем','Название поля которое передаем в модель');
}

View:
@foreach($letters as $letter)
{{$letter->registered}} // Поля из LETTERS
    @foreach($letter->hasManeUser as $user)
        {{$user->Name}}
    @endforeach
@endforeach
Вертекс
@wertex
Mar 04 2015 20:46
вот у меня куча полей для связи... мне отдельно функции писать об этом или надо все в одну поместить ?
Andrey
@Quiss
Mar 04 2015 20:46
это если тебе надо не hasOne (одного) а hasMany
тоже запиши :)
Вертекс
@wertex
Mar 04 2015 20:47
записал, в комментах у меня будет хезмени и навернео адресат тоже т.к. я письмо могу отправлять в суд и прокуратуру...
Andrey
@Quiss
Mar 04 2015 20:47
@wertex я лично пишу 1 функция = одна связь, мне так проще разбираться :)
Я просто могу себе это позволить, я работаю в таком месте, где я делаю все, как я хочу ) захочу завтра писать сайт на питоне, я буду писать его на питоне)
Orel
@2byte
Mar 04 2015 20:50
@Quiss давно на питоне?)
Andrey
@Quiss
Mar 04 2015 20:50
никогда )
это для примера)
Вертекс
@wertex
Mar 04 2015 20:50
public function hasOneWhom()
{
    return $this->hasOne('Whom','id','to_whom_id');
}
видимо так будет
пока попробую хезван, потом мани
Andrey
@Quiss
Mar 04 2015 20:51
название функции произвольно можно писать)
Вертекс
@wertex
Mar 04 2015 20:51
ну пусть так пока )
Andrey
@Quiss
Mar 04 2015 20:51
а то я вижу увлекся))
Вертекс
@wertex
Mar 04 2015 20:51
)))
а как теперь добавить этот стобик к таблице
Andrey
@Quiss
Mar 04 2015 20:51
к какой таблице?
Вертекс
@wertex
Mar 04 2015 20:53
ну вот чтобы выдал
| Иванов И.И. | Прокуратура |
| Иванов И.И. | Жителю|
примерно так :)
1 столбик теперь выводит
для второго я создал hasOneWhom()
Andrey
@Quiss
Mar 04 2015 20:55
ну ->with('hasOneUser')->with('hasOneWhom')
это там где у тебя въюха вызывается
а потом по аналогии с User выводит Whom во въюхе
Вертекс
@wertex
Mar 04 2015 20:56
разобрался )
This message was deleted
а как в код превращать?
Andrey
@Quiss
Mar 04 2015 20:58
в код?
Вертекс
@wertex
Mar 04 2015 20:58
$letters = Letter::find(3)->with('hasOneUser')->get();
$letters1 = Letter::find(3)->with('hasOneWhom')->get();
return View::make('index',array('letters'=>$letters,'letters1'=>$letters1));
ну вот чтобы как у тебя в цветном виде )
Andrey
@Quiss
Mar 04 2015 20:59
          ```
перед кодом и после кода
три таких штуки)
Вертекс
@wertex
Mar 04 2015 20:59
$letters = Letter::find(3)->with('hasOneUser')->get();
        $letters1 = Letter::find(3)->with('hasOneWhom')->get();
        return View::make('index',array('letters'=>$letters,'letters1'=>$letters1));
Andrey
@Quiss
Mar 04 2015 20:59
нет
не таких
других)
это верхние запятые, а надо то что на букве Ё
Вертекс
@wertex
Mar 04 2015 20:59
гы)
ну в общем это контроллер
Andrey
@Quiss
Mar 04 2015 21:00
стоп
че за уг?
Вертекс
@wertex
Mar 04 2015 21:00
    <ul>
        @foreach($letters as $letter)
            <li>
                {{$letter->hasOneUser->Name}}
                {{$letter->hasOneWhom->FullName}}
            </li>
        @endforeach
    </ul>
это вид
вернее лэйаут
хоте нет - все таки вид
Andrey
@Quiss
Mar 04 2015 21:01
$letters = Letter::find(3)->with('hasOneUser')->with('hasOneWhom')->get();
return View::make('index')->with('letters',$letters);
твой контроллер должен так выглядить )
Вертекс
@wertex
Mar 04 2015 21:01
красивенько
Andrey
@Quiss
Mar 04 2015 21:01
именно )
Ладно, удачи :) если шо спрашивай )
Вертекс
@wertex
Mar 04 2015 21:03
а почему мы указываем объект вот тут
                {{$letter->hasOneUser->Name}}
                {{$letter->hasOneWhom->FullName}}
Andrey
@Quiss
Mar 04 2015 21:03
всмысле зачем?)
ты же данные от туда берешь)
Вертекс
@wertex
Mar 04 2015 21:03
почему не работает вот так
{{$letter->Name}}
{{$letter->FullName}}
Andrey
@Quiss
Mar 04 2015 21:03
что именно?
потому-что Name и FullName не содержаться в твоем Letter
Вертекс
@wertex
Mar 04 2015 21:04
хм, ну да
логично
Andrey
@Quiss
Mar 04 2015 21:04
потому-что мы использовали выше Многое - к - Одному
Что-бы было $letter->Name надо использовать Join
Вертекс
@wertex
Mar 04 2015 21:04
просто твой код идет в разрез с доками )))))
Andrey
@Quiss
Mar 04 2015 21:05
ты какие доки смотришь?
Andrey
@Quiss
Mar 04 2015 21:05
ты туда не смотри)
Вертекс
@wertex
Mar 04 2015 21:06
в english смотреть ?)
да
// Using conventional approach
$view = View::make('greeting')->with('name', 'Steve');
вот мой пример из инглиш доки
неужели не похоже?)
Вертекс
@wertex
Mar 04 2015 21:07
копия)
Andrey
@Quiss
Mar 04 2015 21:07
сам тащусь )
Вертекс
@wertex
Mar 04 2015 21:08
ладно, завтра разберусь.. 2:07 на часах наводит грусть
Andrey
@Quiss
Mar 04 2015 21:08
лан удач) я пошел материться )
Вертекс
@wertex
Mar 04 2015 21:08
@Quiss а тут во френды можн одобавить ?
Andrey
@Quiss
Mar 04 2015 21:09
Skype: QuissR
VK: https://vk.com/quiss_kg
ток так) или приват чат)
Вертекс
@wertex
Mar 04 2015 21:09
спс
постараюсь не сильно мучать )
Skype: wertex15
Andrey
@Quiss
Mar 04 2015 21:10
меня сильно не помучаешь xD я могу заигнорить))
Вертекс
@wertex
Mar 04 2015 21:11
аххаа
лан все я спать
удачи )
и спасибо за помощь
Dinar Garipov
@garf
Mar 04 2015 21:28
Ну и именования у вас кошмарные, ребята. :)
Andrey
@Quiss
Mar 04 2015 21:29
Bvtyjdfybz &)
Именования?)
Dinar Garipov
@garf
Mar 04 2015 21:31
Ну hasOneWhom - это порнография. :)
Просто whom было бы гораздо разумнее.
Andrey
@Quiss
Mar 04 2015 21:32
ну так я для примера) а вообще так пишу иногда
Dinar Garipov
@garf
Mar 04 2015 21:32
Или user.
Тогда тебе сразу станет понятно.
$letter->user->name
Письмо принадлежит пользователю, имя которого ...
И кстати не has many а belongsTo
Письма же принадлежат пользователям, а не наоборот.
А вот у юзеров - hasMany - они имеют много писем.
Andrey
@Quiss
Mar 04 2015 21:34
ну да логично :)
ну не соль завтра ему объясню ^_^
Dinar Garipov
@garf
Mar 04 2015 21:34
:)
Kirill Nesmeyanov
@SerafimArts
Mar 04 2015 21:56
;)
Andrey
@Quiss
Mar 04 2015 21:57
@SerafimArts кста, с прошедшим, и шо за девайс?
Kirill Nesmeyanov
@SerafimArts
Mar 04 2015 21:57
спасибо
какой девайс?
Andrey
@Quiss
Mar 04 2015 21:57
в ВК который)
Kirill Nesmeyanov
@SerafimArts
Mar 04 2015 21:57
Meizu MX4 из новой партии
Andrey
@Quiss
Mar 04 2015 21:57
прост название системы и интерфейс понравился
:)
Kirill Nesmeyanov
@SerafimArts
Mar 04 2015 21:58
я долго выбирал себе телефон новый =)
Andrey