These are chat archives for LaravelRUS/chat

10th
Mar 2016
JhaoDa
@jhaoda
Mar 10 2016 01:34
Ребята, а у кого как документацию по проекту ведут?
Например, есть механизм регистрации. Надо сделать описание для общего понимая, дизайны и запросы/ответы
Видится такая схема
Регистрация
|→ Описание
|→ Запросы/ответы
|→ Дизайн
JhaoDa
@jhaoda
Mar 10 2016 01:40
Или все дизайны в одном разделе, API в другом, техзадание в третьем?
Alexander Zhuravlev
@SCIF
Mar 10 2016 01:42
Имхо, лучше по категориям пилить
В смысле все дизайны в одном месте, описания в другом
jongleb
@jongleb
Mar 10 2016 03:59
Никто руками не пишет..
Devalgo
@almassar
Mar 10 2016 04:24
привет всем, где лучше хранить фото товара ? в папке public или storage ?
KarmaBot
@KarmaBot
Mar 10 2016 04:24
@almassar, и тебе привет ;)
JhaoDa
@jhaoda
Mar 10 2016 04:24
@SCIF проблема в том, что это Jira, а там две станицы не могут иметь одинаковое название
@jongleb ты как обычно, не понял, но высказался...
@almassar думал о минусах и плюсах обоих решений?
Devalgo
@almassar
Mar 10 2016 04:25
@jhaoda думал, хотел узнать ваше мнение
JhaoDa
@jhaoda
Mar 10 2016 04:26
@almassar зачем? Минусы знаешь, плюсы тоже. Смотришь на них и выбираешь, у кого плюсов больше.
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:26
@jhaoda, доки в джире? Может тогда уж в md в реп просто складывать?
JhaoDa
@jhaoda
Mar 10 2016 04:26
@SCIF азаза... Confluence, я хотел сказать :)
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:27
Ну так я не вижу сложности. Там же иерархическое хранение
JhaoDa
@jhaoda
Mar 10 2016 04:27
@SCIF имена страниц уникальны для всего проекта
Нельзя создать
Описание
|→ Регистрация
...
Дизайн
|→ Регистрация
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:28
Сюр какой-то.
JhaoDa
@jhaoda
Mar 10 2016 04:29
Ну либо это какая-то хитрая настройка у нас включена, но рулю конфлюхой не я, так что хрен знает...
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:29

A page with the title 'SDLC' already exists in this space. Enter a different title for your page.

Ахренеть, ты прав

JhaoDa
@jhaoda
Mar 10 2016 04:29
Ну так это Атлассиан, они не могут без говна :)
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:30
Ну хера, тогда руками по-уродски обзывать: Описание - Регистрация... Блин, ну наркомания конечно. Других вариантов не вижу :( Ладно, решай, но я убёг
JhaoDa
@jhaoda
Mar 10 2016 04:30
У них три системы разметки текста, причем в разных продуктах разные. Больные ублюдки...
Alexander Zhuravlev
@SCIF
Mar 10 2016 04:31
Ааааа, это да, разметка супер, но через жопу. Хоть спойлер ({{expand}}) появился, и то хорошо
JhaoDa
@jhaoda
Mar 10 2016 04:31
Мардаун через жопу, отдельным виджетом
aleserche
@Aleserche
Mar 10 2016 05:34
существует ли правильный способ нормально подтянуть ооп в пхп?
JhaoDa
@jhaoda
Mar 10 2016 05:36
@Aleserche што???
aleserche
@Aleserche
Mar 10 2016 05:38
@jhaoda а вот что, разбираю примеры в книге Зандстры и ничего похожего мне на глаза еще не попадалось. В ларе некоторые паттерны примеются. А вот в большинстве остальных проектов и близко ничего подобного нет. Так вот суть в том, что не хочется попасть в ряды тех остальных проектов, точнее их писателей
JhaoDa
@jhaoda
Mar 10 2016 05:41
@Aleserche есть мнение, что единственный работающий вариант — читать, думать и применять на практике
aleserche
@Aleserche
Mar 10 2016 05:43
я полагаю, что читать нужно не только книжки, но и код. Вот хотелось бы выяснить, в каком проекте код более менее сносный?
Anton Vorontsov
@symbios-zi
Mar 10 2016 05:43
@Aleserche ядро laravel
slider23
@slider23
Mar 10 2016 05:53
@Furdarius вот типовой gulpfile для сборки реакта и scss-верстки, например: https://gist.github.com/slider23/e2de94f091dca4906d35
sitdirek
@sitdirek
Mar 10 2016 06:21

Добрый день.

На проекте возникла проблема с работой бота Telegram:
TelegramSDKException in GuzzleHttpClient.php line 100:
cURL error 6: Could not resolve host: api.telegram.org (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Откуда ноги растут у этого?

KarmaBot
@KarmaBot
Mar 10 2016 06:21
@sitdirek, привет =)
JhaoDa
@jhaoda
Mar 10 2016 06:33
@sitdirek ты пробовал прочитать и понять, что тебе curl написал?
Я уж даже не говорю про то, что бы пройти по ссылке...
sitdirek
@sitdirek
Mar 10 2016 06:36
@jhaoda как бы да.
JhaoDa
@jhaoda
Mar 10 2016 06:37
@sitdirek ага, и что? Ни какие мысли не натолкнуло?
sitdirek
@sitdirek
Mar 10 2016 06:37
@jhaoda нет
JhaoDa
@jhaoda
Mar 10 2016 06:38
@sitdirek ты же шутишь, правда?
Нельзя делать веб-приложения и при этом не знать таких элементарных вещей
sitdirek
@sitdirek
Mar 10 2016 06:41
@jhaoda ок
JhaoDa
@jhaoda
Mar 10 2016 06:42
@sitdirek т.е. ты не шутил?
sitdirek
@sitdirek
Mar 10 2016 06:43
@jhaoda нет
JhaoDa
@jhaoda
Mar 10 2016 06:46
@sitdirek т.е. ты не знаешь, что каждому доменному имени соответствует некий IP-адрес? И что при обращении к хосту по имени домена система пытается определить его IP и это называется «разрешением, поиском» или «резолвингом»?
Потому что доменные имена это для человеков, а компам нужны цыферки
sitdirek
@sitdirek
Mar 10 2016 06:48
@jhaoda это ясень пень. У меня непосредственно нет мыслей, почему возникает у меня данная ошибка.
JhaoDa
@jhaoda
Mar 10 2016 06:50
@sitdirek где возникает? На локале, на сервере?
Опять подробности надо клещами тянуть...
sitdirek
@sitdirek
Mar 10 2016 06:53
@jhaoda на сервере. Проблема возникает периодически.
JhaoDa
@jhaoda
Mar 10 2016 06:53
@sitdirek ну так к хостеру и вопросы
У меня тоже такая проблема иногда бывает, почему же я пишу не в чатик, а в техподдержку?
Soprun Vladislav
@vlsoprun
Mar 10 2016 06:57
Всем привет :smile:
KarmaBot
@KarmaBot
Mar 10 2016 06:57
@vlsoprun, здравствуй.
Ivan
@Hunternnm
Mar 10 2016 07:02
Боброе утро!
Dave
@aios
Mar 10 2016 07:03
@sitdirek Could not resolve host: api.telegram.org - периодически бот теряет соединение с телеграмом
@sitdirek точнее это даже не бот.
это скорее хук который бот отправляет - а скрипт с курлом не может получить апи
@sitdirek какая смысловая цель бота?
chumaty
@chumaty
Mar 10 2016 07:24
Добрый день, подскажите, не могу найти в доке как получить значение переменных из .env?
KarmaBot
@KarmaBot
Mar 10 2016 07:24
@chumaty, привет, как настроение?
Ivan
@Hunternnm
Mar 10 2016 07:24
@chumaty env('имя_переменной')
@chumaty если ее нет - вторым параметром можно указать значение по умолчанию
chumaty
@chumaty
Mar 10 2016 07:26
@Hunternnm а подключать надо что-то?
Ivan
@Hunternnm
Mar 10 2016 07:26
@chumaty нет конечно
это ж хэлпер
chumaty
@chumaty
Mar 10 2016 07:27
@Hunternnm угу, спасибо
KarmaBot
@KarmaBot
Mar 10 2016 07:27
Спасибо (+1) для @Hunternnm принято! Текущая карма +104.
Роман Сохарев
@greabock
Mar 10 2016 07:57
@Hunternnm еще бы ты не забыл упомянуть о том, что не хорошо юзать env() где либо кроме конфигов, вообще был бы красавчик )
Ivan
@Hunternnm
Mar 10 2016 07:57
@greabock а где их еще юзают?
Роман Сохарев
@greabock
Mar 10 2016 07:59
@Hunternnm ну судя по тому, что парень спросил как от туда значение достать, сделать это он решил где-то в коде...
Dave
@aios
Mar 10 2016 08:04
@greabock а какие проблемы могут от этого возникнуть?
разве что кто то когда то env удалит?
Роман Сохарев
@greabock
Mar 10 2016 08:07
проблема тут одна - ваши конфиги получаются размазаны тонким слоем по всему приложению
JhaoDa
@jhaoda
Mar 10 2016 08:10
Тонкий слой... шоколада по всему коду. Норм, чо.
D3-FC
@D3-FC
Mar 10 2016 08:15
Доброе утро
Точнее уже день)
Как в валидаторе обратиться к соседним аттрибутам в реквесте.
Например
        Validator::extend('check_in_storage', function($attribute, $value, $parameters, $validator) {
           // сравнение с $value соседних атрибутов

        });
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 08:18

:point_up: March 10, 2016 8:53 AM

@slider23 А тут JSX поддерживается?

JhaoDa
@jhaoda
Mar 10 2016 08:28
@D3-FC обрати внимание на последний параметр анонимки
Сделай dd($validator) и посмотри, какого класса это инстанс
Потом найди это класс, погляди, какие у него есть методы
D3-FC
@D3-FC
Mar 10 2016 08:37
@jhaoda а вцелом задачи типа,
сравнить поля реквеста со значением с каким-то полем в базе проведя при этом немного бизнесс логики, Где лучше делать
В классе валидатора, в функции замыкания extend-а или просто в контроллере $this->validate($reqest)?
JhaoDa
@jhaoda
Mar 10 2016 08:39
@D3-FC если это одноразовое правило, то в форм реквесте (в контроллере не желательно). Если часто употребимое, то расширь валидатор и применяй это правило опять же в форм реквесте
Я всегда переопределяю валидатор целиком, т.е. без extend
D3-FC
@D3-FC
Mar 10 2016 08:41
@jhaoda понятно спасибо
KarmaBot
@KarmaBot
Mar 10 2016 08:41
Спасибо (+1) для @jhaoda принято! Текущая карма +699.
Soprun Vladislav
@vlsoprun
Mar 10 2016 08:57
This message was deleted
@jhaoda Спасибо за труды, поздравляю с 700 :smile:
KarmaBot
@KarmaBot
Mar 10 2016 08:58
Спасибо (+1) для @jhaoda принято! Текущая карма +700.
Dinar Garipov
@garf
Mar 10 2016 08:59
:D
Mister-N
@Mister-N
Mar 10 2016 09:05
Народ, кто-нибудь дружит с ангулар 2?
Пробовал сделать по этой инструкции https://www.codetutorial.io/laravel-5-and-angular-2-beta-setup/
Но тайпскрипт не собирался . Я нагуглил, что нужно npm подтягивает просто более свежую версию тайпскрипт, версию ангулар тоже нужно поднять.
angular/angular#6795
TS 1.8 requires angular2 beta.7 or higher.
Ну ок, скрестил родной package.json и отсюда https://angular.io/docs/ts/latest/quickstart.html , скопировал также tsconfig.json, typings.json
Вызываю sudo npm install typings --global
Все ок.
Вызываю sudo gulp
Вижу кучу ошибок типа
/node_modules/angular2/platform/browser.d.ts(77,90): error TS2304: Cannot find name 'Promise'.
Как же запустить этот ангуляр2?
scullclever
@scullclever
Mar 10 2016 09:15
Привет всем.
Как в контроллере получить значение email, после авторизации, чтобы сделать выборку типа $User = User::where('email','=',$email);
KarmaBot
@KarmaBot
Mar 10 2016 09:15
@scullclever, и тебе привет ;)
JhaoDa
@jhaoda
Mar 10 2016 09:18
@scullclever начать читать документацию?
@Mister-N тут чат по ларавель, в основном
Ещё иногда про работу, про пиво и другое. Но про ангулар крайне редко.
NoViKoFF
@AndrewNovikof
Mar 10 2016 09:22
@scullclever почитай, тут все подробно изложено http://laravel.su/docs/5.0/requests
@scullclever и еще переменные по негласным правилам пишутся с Маленькой буквы
JhaoDa
@jhaoda
Mar 10 2016 09:25
@vlsoprun ты тоже давай догоняй :)
Mister-N
@Mister-N
Mar 10 2016 09:26
@jhaoda я пробовал воспользоваться инструкцией о том, как подружить ларавель и ангулар, инструкция не сработала, я ищу проблему и т.д. В документации по ангулару ни слова о laravel-elixir, ошибка возникает при его использовании. Так что не вижу почему бы и не спросить.
JhaoDa
@jhaoda
Mar 10 2016 09:26
@Mister-N про эликсир тут тоже крайне редко
@Mister-N и эликсир к ларавель имеет весьма опосредованное отношение
Dinar Garipov
@garf
Mar 10 2016 09:31
@Mister-N Проверь регистр имен файлов.
Denys
@dfinchenko
Mar 10 2016 09:33
подскажите как обрамить код в гиттере?
JhaoDa
@jhaoda
Mar 10 2016 09:37
@dfinchenko посмотри в нижний правый угол, увидишь иконку M↓
Soprun Vladislav
@vlsoprun
Mar 10 2016 09:37
@dfinchenko оформи код
KarmaBot
@KarmaBot
Mar 10 2016 09:37
@dfinchenko, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой "Ё").
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка "M↓" внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
Denys
@dfinchenko
Mar 10 2016 09:40
Помогите разобраться пожалуйста: есть две основные таблицы - events с полями (event_id, event_name) и contacts c полями (person_id, contact_name) связывающая еще таблица event_person c полями (event_id, person_id) . Необходимо получить по id eventа всех контактов. Пробую, но получаю ошибку: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'contacts.app\eventperson' doesn't exist (SQL: select `crm_contacts`.*, `App\EventPerson`.`event_id` as `pivot_event_id`, `App\EventPerson`.`person_id` as `pivot_person_id` from `crm_contacts` inner join `App\EventPerson` on `crm_contacts`.`person_id` = `App\EventPerson`.`person_id` where `App\EventPerson`.`event_id` = 1)
JhaoDa
@jhaoda
Mar 10 2016 09:40
@dfinchenko парень, ТРИ апострофа, ты чем читал?
@dfinchenko ты однозначно связь неправильно описал, показывай код
Denys
@dfinchenko
Mar 10 2016 09:41
Создаю такую связь в модели -
public function contacts() { return $this->belongsToMany(Contact::class, EventPerson::class, 'event_id', 'person_id'); } и пытаюсь так получить public function getContactsByEvent() { $id = 1; $contact = Event::find($id)->contacts; return response()->json([ 'contactsByEvent' => $contact ], 200); }
JhaoDa
@jhaoda
Mar 10 2016 09:41
@dfinchenko парень, блин!
ТРИ апострофа на ОДНОЙ строке, потом новая строка и код, потом ещё ТРИ апострофа на ДРУГОЙ строке
И вы еще спрашиваете, почему я чуть ли не матом ругаюсь?
Denys
@dfinchenko
Mar 10 2016 09:44
@jhaoda извините
JhaoDa
@jhaoda
Mar 10 2016 09:44
@dfinchenko ну и бегом читать про связи, а то ты фигню написал
@dfinchenko что «извините»? Сообщение-то поправь
Да он троллит!
Denys
@dfinchenko
Mar 10 2016 09:46
@jhaoda уже не знаю что не так делаю, подскажите пожалуйста. Читаю доки но не могу понять.
JhaoDa
@jhaoda
Mar 10 2016 09:47
@dfinchenko доки? Подсказка по маркдауну такая большая?
Denys
@dfinchenko
Mar 10 2016 09:47
@jhaoda я за eloquent
JhaoDa
@jhaoda
Mar 10 2016 09:47
@dfinchenko на каком этапе у тебя затык? Ты не отличаешь три апострофа от одного?
Или новая строка вызывает вопросы?
Denys
@dfinchenko
Mar 10 2016 09:51
Нет никого разбирающегося в связях чтобы помочь?
Dinar Garipov
@garf
Mar 10 2016 09:52
@dfinchenko Поправь свое сообщение, которое ты неверно отформтировал.
DevilMayCry94
@DevilMayCry94
Mar 10 2016 09:53
всем привет, кто то работал с pusher.js?
KarmaBot
@KarmaBot
Mar 10 2016 09:53
@DevilMayCry94, здравствуй.
Soprun Vladislav
@vlsoprun
Mar 10 2016 09:53
@DevilMayCry94 Привет, да
Denys
@dfinchenko
Mar 10 2016 09:53
@gaaarfild к сожалению уже неактивная кнопка edit
Dinar Garipov
@garf
Mar 10 2016 09:53
@dfinchenko Значит выложи еще раз по нормальному.
JhaoDa
@jhaoda
Mar 10 2016 09:53
@dfinchenko что тебе мешало это сделать, пока она была активна?
Denys
@dfinchenko
Mar 10 2016 09:54
This message was deleted
DevilMayCry94
@DevilMayCry94
Mar 10 2016 09:54
@vlsoprun ты не знаешь как можно коннект делать для несколько событии?
@vlsoprun для каждого событии делать отдельный коннект я думаю это не оч
Denys
@dfinchenko
Mar 10 2016 09:55
Создаю такую связь в модели -
      public function contacts() { 
          return $this->belongsToMany(Contact::class, EventPerson::class, 'event_id', 'person_id'); 
      }   и пытаюсь так получить     
   public function getContactsByEvent() { 
      $id = 1; 
        $contact = Event::find($id)->contacts; 
       return response()->json([ 
                'contactsByEvent' => $contact 
       ], 200);     }
Dinar Garipov
@garf
Mar 10 2016 09:56
@dfinchenko три кавычки на одной строчке. Потом перенос строки. Потом твой код, потом перенос строки, потом три кавычки.
Anatoliy Kalugin
@monstrikus
Mar 10 2016 09:56

Привет.
Как в Laravel сделать запрос такого вида:

SELECT count(*)
FROM
  users
WHERE
  reg_date >= date_sub(now(), INTERVAL 1 HOUR);

? Т.е Как можно выбрать записи за последний час.

JhaoDa
@jhaoda
Mar 10 2016 09:56
@gaaarfild я два раза это повторил
@monstrikus DB::raw() в помощь
Soprun Vladislav
@vlsoprun
Mar 10 2016 09:58
This message was deleted
DevilMayCry94
@DevilMayCry94
Mar 10 2016 09:59
@vlsoprun ?
Denys
@dfinchenko
Mar 10 2016 09:59
Создаю такую связь в модели -
      public function contacts() { 
          return $this->belongsToMany(Contact::class, EventPerson::class, 'event_id', 'person_id'); 
      }   и пытаюсь так получить     
   public function getContactsByEvent() { 
      $id = 1; 
        $contact = Event::find($id)->contacts; 
       return response()->json([ 
                'contactsByEvent' => $contact 
       ], 200);     }
JhaoDa
@jhaoda
Mar 10 2016 09:59
@dfinchenko вот, осталось поправить отступы, переносы, разделить на два блока и будет круто
@dfinchenko хватит дублировать
Anatoliy Kalugin
@monstrikus
Mar 10 2016 09:59
@jhaoda спасибо, но никак не могу составить это сырое выражение. Его туда нужно полностью засовавать?
KarmaBot
@KarmaBot
Mar 10 2016 09:59
Спасибо (+1) для @jhaoda принято! Текущая карма +701.
JhaoDa
@jhaoda
Mar 10 2016 10:00
@monstrikus нет, только часть после >=
Dinar Garipov
@garf
Mar 10 2016 10:00
@monstrikus Так ты же его уже составил
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:01
@DevilMayCry94 лучше сделать общее событие скажем Notification и при его вызове передавать данные.
broadcastOn может быть для определенного пользователя
public function broadcastOn()
    {
        return ['notification.'.$this->user->id]; // лучше зашифровать
    }
Denys
@dfinchenko
Mar 10 2016 10:01
Помогите пожалуйста!
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:01
Всем привет. Создал команду для Google real time API, в Kernel $schedule->command('google_real_time')->withoutOverlapping()->everyMinute();. В самом файле \Console\Commands\GoogleAnalytics
  public function handle()
    {
        $data ='sdfdsf';

        $redis = LaravelRedis::connection();
        $client = new \Google_Client();
        $client->setAuthConfigFile('../client_secret.json');
        $client->setAccessType("offline");
        $client->setApprovalPrompt('force');
        $client->addScope(\Google_Service_Analytics::ANALYTICS_READONLY);

        $client->setAccessToken($redis->get('access_token'));

        $analytics = new \Google_Service_Analytics($client);

        $dataRealtime = $analytics->data_realtime->get(
            'ga:ХХХХХ',
            'rt:activeUsers');
        $data = $dataRealtime->getTotalsForAllResults();
        event(new \App\Events\GoogleAnalytics($data));
    }
KarmaBot
@KarmaBot
Mar 10 2016 10:01
@VadimDraganyuk, привет =)
Anatoliy Kalugin
@monstrikus
Mar 10 2016 10:02
@gaaarfild спасибо, да я его составил и он работает если я обращаюсь прямо в консоли MySQL а вот в самом фреймворке не могу понять как его составить.
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:02
Но ивент только видит $data ='sdfdsf'; и если все остальное закоментировать
KarmaBot
@KarmaBot
Mar 10 2016 10:02
Спасибо (+1) для @gaaarfild принято! Текущая карма +108.
JhaoDa
@jhaoda
Mar 10 2016 10:03
@VadimDraganyuk ну так что ты передал event, то он и видит
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:03
@vlsoprun как поймут кому отравлять уведомлении? все же будут подключены к 1 событии
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:04
@jhaoda Да, но если передаю простую строчку, евент его видит и ноды слушают канал и выводят эту строку, а если пытаюсь конектиться к гуглу ноды не реагтруют никак
JhaoDa
@jhaoda
Mar 10 2016 10:05
@VadimDraganyuk ну так ты покажи, КАК должно быть
@VadimDraganyuk и вообще, твой же код, кто его отлаживать будет, кроме тебя? Проверяй, на какой строке затык
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:08
@jhaoda если делаю var_dump в ивенте то получаю нужную инфу, только ее не видит нод
JhaoDa
@jhaoda
Mar 10 2016 10:08
@VadimDraganyuk кто такой «нод»?
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:09
@jhaoda soket точнее
JhaoDa
@jhaoda
Mar 10 2016 10:09
@VadimDraganyuk какой сокет?
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:09
@DevilMayCry94 так добавь return ['notification.'.$this->user->id]; // лучше зашифровать и пользователь будет всегда подключатся к определенному каналу...
при отправки сообщения ты будешь отправлять на нужный канал
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:10
@jhaoda который слушает broadcast ивента
JhaoDa
@jhaoda
Mar 10 2016 10:11
@VadimDraganyuk о какие подробности. Почему же их пришлось клещами тянуть?
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:11
@DevilMayCry94
this.pusher = new Pusher('pusher-key');

this.pusherChannel = this.pusher.subscribe('notification.' + USER_ID);

this.pusherChannel.bind('App\\Events\\Notification ', function(message) {
    console.log(message);
});
JhaoDa
@jhaoda
Mar 10 2016 10:11
@VadimDraganyuk т.е. консольная команда вообще не при делах, в событие приходит правильный $data, так? А вот из события не броадкастится, так?
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:13
@jhaoda так, если простая строка, сокет читает канал и скриптом консолю результат, видно строку, но если пытаюсь конектиться к гуглу то не выводит, но резудьтат есть 100%
Anatoliy Kalugin
@monstrikus
Mar 10 2016 10:14
@gaaarfild @jhaoda спасибо Вам еще раз , получилось!
KarmaBot
@KarmaBot
Mar 10 2016 10:14
Спасибо (+1) для @gaaarfild принято! Текущая карма +109.
Спасибо (+1) для @jhaoda принято! Текущая карма +702.
JhaoDa
@jhaoda
Mar 10 2016 10:14
@VadimDraganyuk тогда нескромный вопрос — а нахрена ты кинул консольную команду, если она к делу не относится?
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:14
Консольную команду запускаю через крон php /path/to/artisan schedule:run 1>> /dev/null 2>&1
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:14
@vlsoprun ты не понял) у меня такая ситуация, есть 10 событий, и допустим есть 2 юзера, 1-ый юзер подписывается на 1,4,5,7 событии. 2-ой подписывается на 2,3,5,10. вот где мы должны хранить айди событии на котором пользователь подписан и как подключиться к ними
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:18
@jhaoda ну в ивенте только
public function __construct($data)
    {
        $this->data = $data;
    }
    public function broadcastOn()
    {
        return ['google-analytics'];
    }
т.е. по идее ему все ровно что получать и что отдавать
JhaoDa
@jhaoda
Mar 10 2016 10:19
@VadimDraganyuk $this->data явно объявил в классе?
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:20
@jhaoda да
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:20
@DevilMayCry94
  1. 2 пользователя подключаются к разным каналам (они уникальны)
  2. при срабатывании события необходимо его отправлять на канал конкретного пользователя
JhaoDa
@jhaoda
Mar 10 2016 10:22
@VadimDraganyuk а если $data простая строка, то нода получает её?
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:22
@vlsoprun а подключать то как? я что то совсем запутался уже
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:23
@jhaoda да, и сразу консолю
            socket.on("google-analytics:App\\Events\\GoogleAnalytics", function(data) {
                console.log(data);
            });
JhaoDa
@jhaoda
Mar 10 2016 10:23
@VadimDraganyuk а что там должно быть? Массив? Объект?
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:23
@jhaoda Объект
JhaoDa
@jhaoda
Mar 10 2016 10:24
@VadimDraganyuk ну... видать, где-то падает или на кодировании в json, или на декодировании
Других идей не имею
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 10:25
@jhaoda ну, спасибо и на этом
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:26

@DevilMayCry94
подключение

this.pusher = new Pusher('pusher-key');

this.pusherChannel = this.pusher.subscribe({{ md5('notification.' . auth()->user()->id));

this.pusherChannel.bind('App\\Events\\Notification ', function(message) {
    console.log(message);
});

отправка на канал

public function broadcastOn()
    {
        return [
            md5('notification.' . auth()->user()->id),
        ];
    }
Примерно так должно выглядеть...
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:28
@vlsoprun как я понял то у каждого пользователя свой канал, а событии должны находиться у них в канале правильно?
@vlsoprun если у пользователей есть общ. событию?
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:29
@DevilMayCry94 ок.. подпиши на 2 событияnotification и 'notification.' . auth()->user()->id. общее и персональное
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:35
@vlsoprun хорошо последний вопрос) 2 пользователя это я пример привел, а если их 150 из них 20 подписались на 1 событии, 20 подписались на 2 событии, 40 на 4 событии создавать 3 канала? тогда чем больше событии чем больше каналов. Отсюда появляется глобальный вопрос как теперь подключаться если событии 150 шт.
то есть тут у каждого пользователя уже не только свой канал а еще notification, notification1, notification2, ... notification150
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:38
@DevilMayCry94 то есть 150 пользователей одновременно.. будет 150 уникальных + 1 общее.
@DevilMayCry94 гораздо хуже еслиApp\\Events\\Notification App\\Events\\NotificationProduct App\\Events\\NotificationOrder и т.д...
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:40
@vlsoprun почему 1 общ.?
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:41
@DevilMayCry94 а как именно они подписанны на событие 1,2,4?
там разный broadcastOn ?
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:42
@vlsoprun ну смотри, пользователь 1 подписаны на 1,2,4
пользователь 2 на 1,2,3
пользователь 3 - 3,4,5
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:43
там разный broadcastOn?
то есть там разные каналы?
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:44
вот я и спрашиваю если один то как определить, если разные то будет оч много
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:46
broadcastOn - одинаковые должны быть
а событий может быть куча быть
this.pusherChannel.bind('App\\Events\\Notification ', function(message) {
    console.log(message);
});
this.pusherChannel.bind('App\\Events\\NotificationProduct ', function(message) {
    console.log(message);
});
this.pusherChannel.bind('App\\Events\\NotificationOrder ', function(message) {
    console.log(message);
});
DevilMayCry94
@DevilMayCry94
Mar 10 2016 10:47
ага то есть на каждое события свой отдельный коннект?
Soprun Vladislav
@vlsoprun
Mar 10 2016 10:48
нет...
this.pusher = new Pusher('pusher-key');

// одна подписка
this.pusherChannel = this.pusher.subscribe({{ md5('notification.' . auth()->user()->id));
// много событй
this.pusherChannel.bind('App\\Events\\Notification ', function(message) {
    console.log(message);
});
this.pusherChannel.bind('App\\Events\\NotificationProduct ', function(message) {
    console.log(message);
});
this.pusherChannel.bind('App\\Events\\NotificationOrder ', function(message) {
    console.log(message);
});
Andrew
@alutskevich
Mar 10 2016 10:55
ребятки, привет)
есть вопрос по Contextual Binding)
laravel 5.1
JhaoDa
@jhaoda
Mar 10 2016 10:56
@alutskevich ты вопрос-то задашь?
Andrew
@alutskevich
Mar 10 2016 10:56

есть

$this->app->when(ApiSomeController::class)->needs(SomeClass::class)->give(ExtendSomeClass::class);

в AppServiceProvider)
в ApiSomeController:

$entityManager = App::make(SomeClass::class); 
dd($entityManager);

и $entityManager отдает мне SomeClass object, а не ExtendSomeClass) почему?)

JhaoDa
@jhaoda
Mar 10 2016 10:57
@alutskevich оформи код
KarmaBot
@KarmaBot
Mar 10 2016 10:57
@alutskevich, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой "Ё").
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка "M↓" внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
Andrew
@alutskevich
Mar 10 2016 10:58

хотя при использовании

$this->app->bind(SomeClass::class, ExtendSomeClass::class);

$entityManager мне вернет экземпляр класса ExtendSomeClass

@jhaoda готово)
JhaoDa
@jhaoda
Mar 10 2016 11:01
@alutskevich полагаю, что условное связывание работает только если класс указан как DI-параметр в контроллере
Потому что как иначе определить, какой контроллер затребовал SomeClass?
Andrew
@alutskevich
Mar 10 2016 11:05
@jhaoda спасибо большое) ты абсолютно прав
@jhaoda и работает только, если параметр передавать в конструкторе класса =\
JhaoDa
@jhaoda
Mar 10 2016 11:05
@KarmaBot 'q
Ага, бот ушел в горы, искать API гиттера...
Andrew
@alutskevich
Mar 10 2016 11:06
@jhaoda если в методе передавать, то не работает
JhaoDa
@jhaoda
Mar 10 2016 11:07
@alutskevich даже так... про метод странно, ведь класс-то по методу узнать можно через рефлексию
Andrew
@alutskevich
Mar 10 2016 11:10
@jhaoda да) поворот вот такой)
Vladislav
@Danan96
Mar 10 2016 11:14
люди есть у кого желание написать интерфейс обертки для cookie?
JhaoDa
@jhaoda
Mar 10 2016 11:15
Что там писать-то, в интерфейсе?
Vladislav
@Danan96
Mar 10 2016 11:16
что должен представлять из себя класс cookie чтобы я его написал)
какие методы должен содержать
Роман Сохарев
@greabock
Mar 10 2016 11:17
ват
JhaoDa
@jhaoda
Mar 10 2016 11:17
@Danan96 мнэээ... ты тот самый гражданин, который в нашем чате спрашивает про свой самодельный фреймворк?
Vladislav
@Danan96
Mar 10 2016 11:18
@jhaoda я не пишу фремворк
JhaoDa
@jhaoda
Mar 10 2016 11:18
@Danan96 но и ларавель не используешь, так?
Vladislav
@Danan96
Mar 10 2016 11:19
@jhaoda пока нет, ибо знаний мало
Роман Сохарев
@greabock
Mar 10 2016 11:19
хм...
обычно всё бывает наоборот
JhaoDa
@jhaoda
Mar 10 2016 11:19
@Danan96 и поэтому, для обретения знаний, ты хочешь написать обёртку для кук?
Vladislav
@Danan96
Mar 10 2016 11:19
@jhaoda да
JhaoDa
@jhaoda
Mar 10 2016 11:19
Мнится мне, что это хреновая затея
Vladislav
@Danan96
Mar 10 2016 11:19
А мне нет
JhaoDa
@jhaoda
Mar 10 2016 11:20
Не лучше ли взять готовый класс и досконально в нём разобраться?
Помучать его, прерываний понаставить в разных местах, посмотреть, что и как у него в кишках происходит?
Vladislav
@Danan96
Mar 10 2016 11:20
@jhaoda я зачастую так и делаю)
JhaoDa
@jhaoda
Mar 10 2016 11:21
@Danan96 и что мешает в этом случае поступить так же?
Vladislav
@Danan96
Mar 10 2016 11:22
@jhaoda ничего не мешает
но если смотреть в компопненте симфони там черт ногу сломит
сложно
JhaoDa
@jhaoda
Mar 10 2016 11:22
@Danan96 пффффф :)
DevilMayCry94
@DevilMayCry94
Mar 10 2016 11:23
@vlsoprun спасибо, понял
KarmaBot
@KarmaBot
Mar 10 2016 11:23
Спасибо (+1) для @vlsoprun принято! Текущая карма +102.
JhaoDa
@jhaoda
Mar 10 2016 11:23
@KarmaBot скотина ты
Vladislav
@Danan96
Mar 10 2016 11:23
@jhaoda а хотя не, куки там норм, реквест там сложный
Роман Сохарев
@greabock
Mar 10 2016 11:24

@Danan96

interface CookieInterface {
       public function set($key, $value, $lifeTime);
       public function get($key);
       public function pull($key);
       public function clear();
}

иди пиши, короче

Vladislav
@Danan96
Mar 10 2016 11:24
что должен содержать метод pull?
JhaoDa
@jhaoda
Mar 10 2016 11:25
@Danan96 а из названия не ясно?
Artur Gafurov
@assurrussa
Mar 10 2016 11:25
@Danan96 а pull, как переводится?
Vladislav
@Danan96
Mar 10 2016 11:25
вытащить
Artur Gafurov
@assurrussa
Mar 10 2016 11:26
@Danan96 ну вот ты и ответил)
Vladislav
@Danan96
Mar 10 2016 11:26
pull
тянуть, вытащить, потянуть, дергать, вытаскивать, тащить
ну так чем отличается от гет
JhaoDa
@jhaoda
Mar 10 2016 11:26
@Danan96 тем, что выдергивает насовсем
Vladislav
@Danan96
Mar 10 2016 11:27
не понимаю как это
JhaoDa
@jhaoda
Mar 10 2016 11:28
@Danan96 get($key) + set($key, null)
Vladislav
@Danan96
Mar 10 2016 11:28
понял
@jhaoda спс
KarmaBot
@KarmaBot
Mar 10 2016 11:28
Спасибо (+1) для @jhaoda принято! Текущая карма +704.
JhaoDa
@jhaoda
Mar 10 2016 11:29
Я за тебя четверть кода уже написал :)
Vladislav
@Danan96
Mar 10 2016 11:30
@jhaoda неа :smile:
Vladislav
@Danan96
Mar 10 2016 11:41
<?php

namespace Core\Http;


class Cookie
{

    private $cookie;

    function __construct($cookie)
    {
        $this->cookie = $cookie;
    }


    public function get($name)
    {
        return $this->cookie[$name];
    }

    public function set($name, $value = null, $expire = 3600, $path = '/', $domain = null, $secure = false, $httpOnly = true)
    {
        setcookie($name, $value, $expire, $path, $domain, $secure, $httpOnly);
    }

    public function pull($name)
    {
        $this->clear($name);
        return $this->get($name);
    }

    public function clear($name)
    {
        return $this->set($name);
    }
}
KarmaBot
@KarmaBot
Mar 10 2016 11:41
@Danan96, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
JhaoDa
@jhaoda
Mar 10 2016 11:42
@Danan96 и зачем нам это?
Vladislav
@Danan96
Mar 10 2016 11:42
@jhaoda на проверку)
JhaoDa
@jhaoda
Mar 10 2016 11:42
@Danan96 а кто-то просил?
Anton Vorontsov
@symbios-zi
Mar 10 2016 11:43
@jhaoda бро, проверишь мой код тоже?
JhaoDa
@jhaoda
Mar 10 2016 11:44
@symbios-zi что значит «тоже»? :) Я его код даже не смотрел
Anton Vorontsov
@symbios-zi
Mar 10 2016 11:44
:-/
JhaoDa
@jhaoda
Mar 10 2016 11:44
@symbios-zi но твой могу
Anton Vorontsov
@symbios-zi
Mar 10 2016 11:44
@jhaoda да я ж шучу )
JhaoDa
@jhaoda
Mar 10 2016 11:45
@symbios-zi ну мало ли, тут часто не понять, шутят или нет, такие вопросы бывают :)
Роман Сохарев
@greabock
Mar 10 2016 11:45
@Danan96 ну и коли скорее всего у тебя нет контейнера, нужен getInstance()
Anton Vorontsov
@symbios-zi
Mar 10 2016 11:45
я вчера засыпая смотрел на исходники Laravel. Мне что то класс Cookie очень знаком... показалось?
свой велосипед делаете? :)
Vladislav
@Danan96
Mar 10 2016 11:48
@greabock есть контейнер
@greabock спасибо
KarmaBot
@KarmaBot
Mar 10 2016 11:50
Спасибо (+1) для @greabock принято! Текущая карма +335.
Vyacheslav
@LastRide
Mar 10 2016 12:05
This message was deleted
KarmaBot
@KarmaBot
Mar 10 2016 12:05
@LastRide, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Vyacheslav
@LastRide
Mar 10 2016 12:06

Всем привет.

Не могу понять реализацию паттерна репозитория. Везде одно и то же пишут.

В чём собственно вопрос: почему всегда в репозитории, который работает с Eloquent возвращают объект класса Eloquent\Model ? По идее же, должны возвращать какой-то общий объект ?

К примеру:

<?php namespace Cribbb\Storage\User;

interface UserRepository {
  public function all();
  public function find($id);
  public function create($input);
}
<?php;

class EloquentUserRepository implements UserRepository {
  public function all()
  {
    return User::all(); // Везде возвращают объект класса Eloquent\Model (или массив таких объектов)
  }
  public function find($id)
  {
    return User::find($id);
  }
  public function create($input)
  {
    return User::create($input);
  }
}

Почему не создать отдельный независимый класс User и не сделать что-то типа такого:

<?php 
class UserSimple {
    private $id;
    private $name;
    public function __construct($id, $name) {
        $this->id = $id;
        $this->name = $name;
    }
}

class EloquentUserRepository implements UserRepository {
  public function find($id)
  {
    $userEloquent = User::find($id);
    return new UserSimple($userEloquent->id, $userEloquent->name);
  }
}
KarmaBot
@KarmaBot
Mar 10 2016 12:06
@LastRide, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Anton Vorontsov
@symbios-zi
Mar 10 2016 12:06
@LastRide под AR вообще нет смысла делать репозитории
Vyacheslav
@LastRide
Mar 10 2016 12:07
@symbios-zi почему ?
Anton Vorontsov
@symbios-zi
Mar 10 2016 12:07
@LastRide потому что в AR модель сама знает как себя сохранять к примеру
Vyacheslav
@LastRide
Mar 10 2016 12:08
@symbios-zi а когда имеет смысл делать репозитории ?)
Anton Vorontsov
@symbios-zi
Mar 10 2016 12:08
@LastRide когда например используешь доктрину (DataMapper)
Vyacheslav
@LastRide
Mar 10 2016 12:09
@symbios-zi смотри, основная идея у меня в том, что я могу потом отказаться вообще от хранения в БД и перейти к хранению данных в файле, в API стороннего сервиса и т.д.
Anton Vorontsov
@symbios-zi
Mar 10 2016 12:10
@LastRide ой уж очень сильно сомневаюсь в этом )))
тут помоему не было еще такого человека )
Vyacheslav
@LastRide
Mar 10 2016 12:10
@symbios-zi )))
мало ли )
@symbios-zi но вопрос всё равно остаётся открытым ) почему во всех примерах возвращаются объекты класса Eloquent\Model ?)
это правильно ?
saori
@saorityan
Mar 10 2016 12:12
@LastRide потому что это паттерн ActiveRecord.
Vyacheslav
@LastRide
Mar 10 2016 12:13
я запутался )
saori
@saorityan
Mar 10 2016 12:14
@LastRide то, о чем ты говоришь реазилует доктрина. Мне этот подход тоже ближе. Но в ларавеле это норма
Vyacheslav
@LastRide
Mar 10 2016 12:15
@saorityan понятно ) спасибо !
KarmaBot
@KarmaBot
Mar 10 2016 12:15
Спасибо (+1) для @saorityan принято! Текущая карма +7.
Vyacheslav
@LastRide
Mar 10 2016 12:15
This message was deleted
KarmaBot
@KarmaBot
Mar 10 2016 12:15
Карма @saorityan не потревожена. Слишком часто её пошатывали.
Vyacheslav
@LastRide
Mar 10 2016 12:15
@symbios-zi спасибо и тебе )
KarmaBot
@KarmaBot
Mar 10 2016 12:15
Спасибо (+1) для @symbios-zi принято! Текущая карма +79.
slider23
@slider23
Mar 10 2016 12:41

:point_up: March 10, 2016 8:53 AM

@slider23 А тут JSX поддерживается?

Да, и ES6 тоже

@Mister-N Забей на elixir и вообще на laravel, смотри материалы по ангуляру прежде всего.
Сборка фронта - процесс интимный, у всех оно по-разному. Тебе предстоит найти свой удобный тебе метод.
Dave
@aios
Mar 10 2016 12:48
@slider23 Gulp и Webpack, что то маловато разнообразия в интиме.
Gavrilov Ruslan
@shadowwzw
Mar 10 2016 12:54
Всем привет
KarmaBot
@KarmaBot
Mar 10 2016 12:54
@shadowwzw, здравствуй.
Soprun Vladislav
@vlsoprun
Mar 10 2016 12:54
@shadowwzw Здорова
Gavrilov Ruslan
@shadowwzw
Mar 10 2016 12:56
Я вот понять не могу почему когда в условии включается $query->whereRaw, то другие условия $query->where перестают работать?
    $announcements = DB::table('jobs')
        ->select('jobs.id as id', 'id_category', 'id_user', 'title', 'city_name', 'salary', 'schedule', 'experience', 'status', 'created_at', 'name_category')
        ->join('job_categories', 'jobs.id_category', '=', 'job_categories.id')
        ->where('status', '=', 'Активно')
        ->where(function($query) use ($title, $category, $res_city, $schedule_post, $experience_post){

            if(isset($title) && $title != '')
                // Полнотекстовый поиск по названию вакансии
                $query->whereRaw('MATCH (title) AGAINST (?) or title LIKE ?' , [$title, '%'.$title.'%']);

            if(isset($category) && $category != '')
                // Фильтр категории
                $query->where('jobs.id_category', '=', $category);

            if(isset($res_city) && $res_city != '')
                // Фильтр по городу
                $query->where('jobs.city_name', '=', $res_city);

            if(isset($schedule_post) && $schedule_post != '')
                // Фильтр по графику работы
                $query->where('jobs.schedule', '=', $schedule_post);

            if(isset($experience_post) && $experience_post != '')
                // Фильтр по графику работы
                $query->where('jobs.experience', '=', $experience_post);
        })
        ->orderBy('created_at', 'DESC')
        ->paginate(20);
KarmaBot
@KarmaBot
Mar 10 2016 12:56
@shadowwzw, у нас тут принято писать кратко и по делу. А если нужно показать длинный код, то можно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:41
Народ, как сделать, что бы вместо index.blade.php, у меня вьюха была обычным html index.html
JhaoDa
@jhaoda
Mar 10 2016 13:42
@Furdarius а данные ты в неё предавать не будешь?
NelinD
@NelinD
Mar 10 2016 13:42
@jhaoda погоди, не разрушай стройный мир
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:42
@jhaoda Нет
JhaoDa
@jhaoda
Mar 10 2016 13:42
@Furdarius ну так и назови
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:43
@jhaoda View [index.html] not found.
JhaoDa
@jhaoda
Mar 10 2016 13:43
@Furdarius так просто index, точка как разделитель папок считается
NelinD
@NelinD
Mar 10 2016 13:43
@jhaoda использовать laravel для вывода html из файла без динамики это что-то новенькое
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:44
@NelinD Подскажи как вывести файл без динамики?
@jhaoda Точняк, но все-равно View [index] not found.
Artur Gafurov
@assurrussa
Mar 10 2016 13:45
@Furdarius для чего тебе это?
NelinD
@NelinD
Mar 10 2016 13:45
@Furdarius поклади его в папочку публик
JhaoDa
@jhaoda
Mar 10 2016 13:45
@Furdarius хммммм
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:48

@assurrussa Сама лара просто как API сервис работает, весь фронт на ReactJS.
Webpack'ом генерирую индексный файл, нужно что бы этот индексный файл отдавался сервером. Можно просто разделить хосты на сервере для Фронта и API, но я хочу все в рамках одного приложения сделать.
@NelinD
И если я просто положу index.html в public то либо придется затереть index.php, либо ничего интересного.

Что вы ерничать начинаете сразу...

NelinD
@NelinD
Mar 10 2016 13:50
@Furdarius причем тут ерничать, ты по какому адресу хочешь получить index.html7
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:50
Можно, конечно просто генерить файл с название index.blade.php
NelinD
@NelinD
Mar 10 2016 13:50
хотя ерничать есть над чем
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:51

@NelinD По абсолютно любому роуту, кроме /api

Расскажи как правильно сделать? Я не понимаю. Пытаюсь разобраться.

NelinD
@NelinD
Mar 10 2016 13:52
@Furdarius ну так настрой сервер и не мучай людям мозг
@Furdarius под сервером имеется ввиду апач или нжинкс
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:53
@NelinD Да, я сказал про этот вариант уже. Хочу разрулить все в одном хосте.
NelinD
@NelinD
Mar 10 2016 13:53
@jhaoda забань меня, чтобы я не отвечал)
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:54
Короче, ладно, не буду просто генерить html вебпаком... Это наиболее правильный путь, думаю.
NelinD
@NelinD
Mar 10 2016 13:55
@Furdarius товарищ, ты хочешь ворочать пыхом и фрейворком ради страницы в которой 0! динамики.
Ты не видишь проблемы?
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 13:57
@NelinD В рамках одного хоста по другому не разрулить. Поэтому да, проблема есть и правильный способ ее решения разделить Frontend-App и Backend-App по разным хостам.
Но, как я уже говорил, в рамках текущей задачи, мне нужно собрать все вместе в одном хосте. Поэтому извращаюсь.
chumaty
@chumaty
Mar 10 2016 14:30
Добрый день, подскажите, как сделать исключение в роут.пхп, есть папка в которую складываются картики imgtmp, в письме отправлю ссылку на картинку вида http://mydomain/imgtmp/zzz.jpg, при попытке открыть картику, ларавель естественно ругается что такого роута нет, как правильно выйти из ситуции?
KarmaBot
@KarmaBot
Mar 10 2016 14:30
@chumaty, здравствуй.
JhaoDa
@jhaoda
Mar 10 2016 14:31
@chumaty а почему это она ругается?
Ларавель вообще не должен реагировать на реально существующий файл
chumaty
@chumaty
Mar 10 2016 14:32
ну роута же mydomain/imgtmp/ по идее нет?!
JhaoDa
@jhaoda
Mar 10 2016 14:32
@chumaty ну так это ты накосячил где-то с настройками или у тебя там какая-то хитрая система отдачи картинок
chumaty
@chumaty
Mar 10 2016 14:33
@jhaoda да, действительно нормально отдает, забыл упомянуть один момент
картинки имеют вид [img_name].jpg
и когда [ заменяется в урл на %5B
то происходит вот такая ерунда
NelinD
@NelinD
Mar 10 2016 14:34
@chumaty отличное имя)
chumaty
@chumaty
Mar 10 2016 14:34
@NelinD ну так нужно
Soprun Vladislav
@vlsoprun
Mar 10 2016 14:37
@chumaty сурове сео? :smile:
chumaty
@chumaty
Mar 10 2016 14:37
@vlsoprun )) не совсем, там типа идентификатор нужный записывается
Soprun Vladislav
@vlsoprun
Mar 10 2016 14:39
@chumaty а вот с такими урлами у меня cdn.domain.com/get/news_wysiwyg_image/b1dcc9132e85d9876f6816179d2fa971/848x450o/image.jpg :worried:
iginikolaev
@iginikolaev
Mar 10 2016 14:41
Привет. Народ, как вы в миграциях задаете длину int'a?
saori
@saorityan
Mar 10 2016 14:43
@iginikolaev https://laravel.com/docs/5.2/migrations -> Available Column Types
iginikolaev
@iginikolaev
Mar 10 2016 14:44
@saorityan Та это понятно, надо сделать int(10), а по дефолту он создает 11. Неужели все делать напрямую через DB::?
У string'a есть второй параметр длины, а у int-a - это зачем-то AI
JhaoDa
@jhaoda
Mar 10 2016 14:49
@iginikolaev ты в курсе, что int(8) занимает столько же места, как и int(11)?
И что это число, по сути, ни на что не влияет?
iginikolaev
@iginikolaev
Mar 10 2016 14:51
"-" разве не там же?
Black-Wolfi
@Black-Wolfi
Mar 10 2016 14:52
Всем привет подкажите как можно получить первичный ключ сразу же после создание записи ?
KarmaBot
@KarmaBot
Mar 10 2016 14:52
@Black-Wolfi, и тебе привет ;)
JhaoDa
@jhaoda
Mar 10 2016 14:53
@Black-Wolfi прочитать атрибут id?
Black-Wolfi
@Black-Wolfi
Mar 10 2016 14:54
да
JhaoDa
@jhaoda
Mar 10 2016 14:54
@Black-Wolfi с такими вопросами есть шанс попасть в зал славы, вот он, справа
@Black-Wolfi что «да»? Я тебе ответил.
iginikolaev
@iginikolaev
Mar 10 2016 14:56
@jhaoda Хм... Надо будет запомнить :) В общем, не суть важно, то я дурак. Не мог внешний ключ завязать т.к. создавал не unsigned.
@jhaoda ty :)
Black-Wolfi
@Black-Wolfi
Mar 10 2016 14:57
@jhaoda окей как прочитать id после создания записи ? (буду в зале славы походу =) )
JhaoDa
@jhaoda
Mar 10 2016 14:58
@Black-Wolfi
$flight = new Flight();
$flight->save();
echo $flight->id;
@Black-Wolfi это что, блин, квантовая механика???
@Black-Wolfi документацию принципиально не читаешь?
Black-Wolfi
@Black-Wolfi
Mar 10 2016 15:00
@jhaoda читаю но все усвоить тркудно
@jhaoda спасибо за понимание и поддержку
KarmaBot
@KarmaBot
Mar 10 2016 15:00
Спасибо (+1) для @jhaoda принято! Текущая карма +705.
JhaoDa
@jhaoda
Mar 10 2016 15:00
@Black-Wolfi если тебе даже это трудно, то пока не поздно, в продавцы переквалифицируйся
Ни понимания, ни поддержки. Сарказм и издёвки!
Nuzsk
@Nuzsk
Mar 10 2016 15:04
@Black-Wolfi если это сложно - то выбери для старта платформу пожиже
голый php или микрофреймворк
VadimDraganyuk
@VadimDraganyuk
Mar 10 2016 15:12
Можно ли запускать schedule команду например каждые 10 сек? В документации нашел только 1 минута минимум
JhaoDa
@jhaoda
Mar 10 2016 15:14
@VadimDraganyuk ну так измени параметры крона для команды schedule:run
unlike777
@unlike777
Mar 10 2016 15:29
Где можно по nginx'у вопрос задать?
Dave
@aios
Mar 10 2016 15:29
@unlike777 задавай
Alexander
@Dualse
Mar 10 2016 15:30
Всем привет. Подскажите, где написано про compact()? А то во View ничего не написано, и в хелперах не могу найти.
KarmaBot
@KarmaBot
Mar 10 2016 15:30
@Dualse, привет, как настроение?
Dinar Garipov
@garf
Mar 10 2016 15:30
@VadimDraganyuk крон системы не работает чаще одной минуты. Хочешь раз в 10 секунд - делай демона лучше. Или
Soprun Vladislav
@vlsoprun
Mar 10 2016 15:30
@Dualse php.net
Dinar Garipov
@garf
Mar 10 2016 15:31
@Dualse в PHP.net?
Dualse @Dualse Сгорел со стыда
Alexander
@Dualse
Mar 10 2016 15:31
@vlsoprun @gaaarfild Спасибо)
KarmaBot
@KarmaBot
Mar 10 2016 15:31
Спасибо (+1) для @vlsoprun принято! Текущая карма +103.
Спасибо (+1) для @gaaarfild принято! Текущая карма +110.
unlike777
@unlike777
Mar 10 2016 15:31

С утра все работало, никаких изменений не вносилось, и под вечер сервак начал отдавать 502

nginx запущен работает, куда копать вообще хз

конфиг:

https://gist.github.com/unlike777/b3357b602b2cccd6e666
KarmaBot
@KarmaBot
Mar 10 2016 15:31
@unlike777, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
JhaoDa
@jhaoda
Mar 10 2016 15:33
@unlike777 заверни ссылку на гист в код, плиз
Роман Сохарев
@greabock
Mar 10 2016 15:33

Всем привет. Подскажите, где написано про compact()

дапзц... кода же вы кончитесь...

KarmaBot
@KarmaBot
Mar 10 2016 15:33
@greabock, и тебе привет ;)
unlike777
@unlike777
Mar 10 2016 15:33
@jhaoda ок
JhaoDa
@jhaoda
Mar 10 2016 15:34
@greabock никогда, и это печально
Soprun Vladislav
@vlsoprun
Mar 10 2016 15:34
@greabock :satisfied: да лан ))
unlike777
@unlike777
Mar 10 2016 15:34
сайт вообще вообще сделан на RoR'e
Dave
@aios
Mar 10 2016 15:35
@unlike777 тогда копай в сторону 127.0.0.1:3000
Alexander
@Dualse
Mar 10 2016 15:35
Да ладно, что вы такие пессимисты. Надо быть позитивнее)
Dave
@aios
Mar 10 2016 15:35
502 это ошибка чаще всего выдает апстрим
unlike777
@unlike777
Mar 10 2016 15:35
@aios менял на 127.0.0.1:9000 изменений 0
Dave
@aios
Mar 10 2016 15:35
да нет же...
unlike777
@unlike777
Mar 10 2016 15:35
так и есть в логе upstream
Dave
@aios
Mar 10 2016 15:36
@unlike777 копай туда в плане оставь Nginx И посмотри что у тебя с этой штукой твориться
JhaoDa
@jhaoda
Mar 10 2016 15:36
@Dualse ты код в блокноте пишешь?
Alexander
@Dualse
Mar 10 2016 15:36
@jhaoda Нет
JhaoDa
@jhaoda
Mar 10 2016 15:36
@Dualse а в чем?
Alexander
@Dualse
Mar 10 2016 15:37
@jhaoda в шторме
unlike777
@unlike777
Mar 10 2016 15:37
netstat
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      394/sshd
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      431/postgres
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      485/redis-server 12
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1402/nginx
tcp6       0      0 :::22                   :::*                    LISTEN      394/sshd
tcp6       0      0 ::1:5432                :::*                    LISTEN      431/postgres
JhaoDa
@jhaoda
Mar 10 2016 15:37
@Dualse и ты не смог сделать Ctrl + Click на названии функции?
Dave
@aios
Mar 10 2016 15:37
@unlike777 да причем тут нетстат
у тебя скорее всего сама приложуха на роре упала
unlike777
@unlike777
Mar 10 2016 15:38
@aios с рором никогда не работал, сайт не я делал)) как перезапустить, направь в нужную сторону =)
Alexander
@Dualse
Mar 10 2016 15:38
@jhaoda Да все, я же осознал)
@jhaoda И да, я затупил и не пробовал нажать ctrl+click
Dave
@aios
Mar 10 2016 15:39
@unlike777 Найди для начала папку ссайтом
и там rails server
JhaoDa
@jhaoda
Mar 10 2016 15:40
@Dualse это ж как тупить надо...
Alexander
@Dualse
Mar 10 2016 15:42
@jhaoda Да у меня еще голова не варит, почти весь день на ногах. Еще пол дня в больнице просидел в очередях. У вас что не бывает такого, когда на ровном месте тупишь?)
JhaoDa
@jhaoda
Mar 10 2016 15:43
@Dualse Ctrl + Click уже рефлекс, как у собачки Павлова
Увидал незнакомый метод/функцию — ручки сразу тянутся жмякнуть контрол и клацнуть мышой
Artur Gafurov
@assurrussa
Mar 10 2016 15:45
@jhaoda ну как минимум ctr+q и почитать инфу, что за метод такой)
Alexander
@Dualse
Mar 10 2016 15:45
@jhaoda Да не, у меня такого нету. Я если вижу не знакомый метод, то начинаю его гуглить. Видно надо менять привычки)
П.С. Гуглил laravel+count, поэтому наверно и выдавала, как используется, а не описание метода
Artur Gafurov
@assurrussa
Mar 10 2016 15:45
@Dualse О_О, гуглить незнакомые методы?
Alexander
@Dualse
Mar 10 2016 15:46
@assurrussa Да, а что тут такого? Про ctrl+q не знал.
Artur Gafurov
@assurrussa
Mar 10 2016 15:46
@Dualse так понимаю ты много чего незнаешь)
учиться, учиться и ещё раз учиться! не лениться и будет всё круто.
Alexander
@Dualse
Mar 10 2016 15:47
@assurrussa Ну так я же ничего против не говорю )
Artur Gafurov
@assurrussa
Mar 10 2016 15:48
@Dualse твой вопрос про compact() - пробовал гуглитЬ, раз привычка такая у тебя есть?
Alexander
@Dualse
Mar 10 2016 15:48
@assurrussa Ну так я же написал про это
Artur Gafurov
@assurrussa
Mar 10 2016 15:51
@Dualse laravel+count <- ты про это?
Alexander
@Dualse
Mar 10 2016 15:51
@assurrussa Да
Artur Gafurov
@assurrussa
Mar 10 2016 15:51
compact() == count ?
Alexander
@Dualse
Mar 10 2016 15:52
@assurrussa Нет. Мой косяк
Думаю, мне лучше дальше ничего не объяснять, а то еще больше фигни напишу
@assurrussa До этого момента я был уверен, что там написано compact()
unlike777
@unlike777
Mar 10 2016 15:56
@aios спасибо, походу сервак упал и после перезагрузки ни ruby ни rails ни postgre не поднялись сами...
KarmaBot
@KarmaBot
Mar 10 2016 15:56
Спасибо (+1) для @aios принято! Текущая карма +33.
Dave
@aios
Mar 10 2016 16:06
@unlike777 такие дела....
Oscar
@OSDDQD
Mar 10 2016 16:26
Круто конечно парни приложения дебажат, интуитивно проверить всё, но только не логи самого приложения :D
Andrei Sosnov
@atehnix
Mar 10 2016 16:42
@jhaoda а разве ссылки на гист все еще подгружают что-то в чат? Я когда специально проверял - ничего подобного не заметил.
А сейчас не успел посмотреть что было до того как @unlike777 по твоей просьбе завернул ссылку в код..
JhaoDa
@jhaoda
Mar 10 2016 16:42
@atehnix я не знаю, что и у кого было, но они всё ещё подгружаются
Ибо если бы они не подгружались, я бы не просил их заворачивать
Andrei Sosnov
@atehnix
Mar 10 2016 16:43
@jhaoda Хм, действительно... Только что проверил в чате бота - подгружают..
Ок.
Andrei Sosnov
@atehnix
Mar 10 2016 16:50
Из принципа нашел те старые сообщения, где я убедился, что гисты не подгружаются при обычной ссылке. В тот момент ничего не подгружалось. А сейчас даже в тех сообщениях гисты подгружены)) Видимо, по стечению обстоятельств, именно в тот момент что то глючило в гиттере, из-за чего я сделал не правильный вывод)
Denys
@dfinchenko
Mar 10 2016 17:12
Подскажите пожалуйста как сделать запрос: есть таблица contacts и tags как запросом получить список контактов с списком тегов?
slider23
@slider23
Mar 10 2016 17:17
@Furdarius Зачем ты полез в вебпак ? Он тебе не нужен.
Весь контент пиши в index.blade.php . И пусть там будет гольный html без php
D3-FC
@D3-FC
Mar 10 2016 17:37
Дброго вечера

Пытаюсь провалидировать массив:

class StoreUpdateRequest extends Request
 public function rules()
    {
        return [
            'medicines.*.sold_quantity_units'=>'check_in_storage',
        ];
    }
}

разширяю валидатор для кастомного метода:

    public function boot()
    {
        /**
         * Валидаторы
         */
        Validator::extend('check_sale_units', function($attribute, $value, $parameters, $validator) {
            // этот кусок для выяснения в какой итерации цикла мы находимся. Не нашёл другого способа найти индекс.
            $key = explode('.', $attribute)[1];
            // найдя индекс мы можем по нему в реквесте найти нужный "объект - medicine" в массиве "medicines"
            $medicine = $validator->getData()['medicines'][$key];
            // далее идёт уже сравнение свойств объекта medicine
            if($medicine['by_units']){
                return $medicine['sold_quantity_units']!=0;
            }
            if(!$medicine['by_units']){
                return $medicine['sold_quantity_packages']!=0;
            }
            return   false;
        });
    }
Нет ли способа попроще?
KarmaBot
@KarmaBot
Mar 10 2016 17:39
@D3-FC, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
D3-FC
@D3-FC
Mar 10 2016 17:40
Нет ли способа попроще?
Подскажите как получить индекс. В остальном всё понятно
Индекс итерации в валидаторе когда мы в правилах указываем attribute.*.attribute
Roman Sadoyan
@core01
Mar 10 2016 18:00
Ребята, а есть чат в gitter/slack по Симфони?
Maxim
@Big-Shark
Mar 10 2016 18:04
https://habrahabr.ru/post/278873/ прогресс не стоит на месте)
Roman Sadoyan
@core01
Mar 10 2016 18:08
@Danan96 спасибо, а больше нет? А то в сравнении с Laravel он крохотный)
KarmaBot
@KarmaBot
Mar 10 2016 18:08
Спасибо (+1) для @Danan96 принято! Текущая карма +4.
Vladislav
@Danan96
Mar 10 2016 18:10
@core01 это самое большое сообщество по symfony
@core01 ларавелчат вообще одно из крупнейших на гиттере
@core01 на 9 месте)
Roman Sadoyan
@core01
Mar 10 2016 18:17
@Danan96 по симфони смотрю вообще не густо чатиков
русскоязычных
Vladislav
@Danan96
Mar 10 2016 18:19
@core01 симфони не столь популярно у русского комбюнити, в сравнении с ларои и юи
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:22
Всем привет. Кто-нибудь устанавливал apprtc?
KarmaBot
@KarmaBot
Mar 10 2016 18:22
@jdiond, здравствуй.
Vladislav
@Danan96
Mar 10 2016 18:22
@jdiond что?
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:23
Vladislav
@Danan96
Mar 10 2016 18:26
@jdiond что это такое
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:27
демка от гугл реализации webrtc
seoperin
@seoperin
Mar 10 2016 18:28
Привет! Как бы вы такое сделали: есть список стоп-слов (массив), есть список других слов (тоже массив), мне нужно отсортировать те слова, которые не содержат стоп-слов из второго массива
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:32
seoperin
@seoperin
Mar 10 2016 18:33
@jdiond ну это подойдёт с точным соответствием ключа и стоп слова, а не с вхождением стоп слова в проверяемое слово
slider23
@slider23
Mar 10 2016 18:34
А чем два вложенных foreach и третий массив плохое решение ?
Тупо в лоб
seoperin
@seoperin
Mar 10 2016 18:35
@slider23 может и ничем не плохо, но вдруг я какую то функцию забыл... а форычами будет дольше наверно
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:35
@seoperin на ключи проверки не будет
@seoperin array_diff_assoc проверяет с ключами (вроде)
@slider23 функции на то и придумали, чтобы не писать куча кода и не придумывать велосипеды
seoperin
@seoperin
Mar 10 2016 18:41
@jdiond array_diff_assoc просто еще по индексу проверяет дополнительно, мне это никак не помогает
Artemiy Ryabinkov
@Furdarius
Mar 10 2016 18:42

:point_up: March 10, 2016 8:17 PM

@slider23 Посмотрел, что многие использую, тоже решил попробовать. В целом, не плохо. Хотя, на первый взгляд, гульп приятнее...

У меня с вебпаком прикол получился: При watch режиме он у меня не всегда подключал import './App.scss';

Но проблема оказалась в том, что мой слабый ноутбук не выдерживает PhpStorm, который мне загружает памят оч сильно. И вот вебпак почему то отрабатывал криво из-за таких тормозов. Если phpstorm отключить, то вроде норм.

Хотя че без phpstorm делать, тоже не понятно :D
Надо SSD диск и память проапгрейдить, думаю...

Пока на sublime переехал.

seoperin
@seoperin
Mar 10 2016 18:42
@jdiond вроде эти можно - array_diff_ukey , щас буду ковырять
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 18:44
@seoperin "ну это подойдёт с точным соответствием ключа и стоп слова" - при чем там ключ? Там проверка идет по значениям
seoperin
@seoperin
Mar 10 2016 18:44
@jdiond ключ - я имел ввиду ключевое слово. Не так выразился
то есть когда проверяемое слово полностью соответствует со стоп словом, пожойдет обычный array_diff, а мне нужно содержание стоп слова в проверяемом слове
Vadimator
@Vadimator
Mar 10 2016 18:52
Привет
Vitaliy Kravchyshyn
@freevital
Mar 10 2016 19:05
@seoperin тогда, тебе нужно ukey
@seoperin или array_udiff
seoperin
@seoperin
Mar 10 2016 19:06
@jdiond array_udiff пытаюсь приспособить как раз
Mikhail Sychev
@snutworks
Mar 10 2016 20:09
Всем привет
KarmaBot
@KarmaBot
Mar 10 2016 20:09
@snutworks, привет =)
Mikhail Sychev
@snutworks
Mar 10 2016 20:11
Что-то у меня совсем затык. Есть визивиг, со стилями, счастьем вот этим всем. Есть длинные тексты, хочется эти тексты разбивать на страницы, считать количество символов не особо вариант, так как надо не учитывать теги, в целом их можно обрезать, но как потом поставить обратно, подкиньте идей если есть, я чет совсем приуныл
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:14
@snutworks, Ээээм. Я даже задачу не понимаю. Нахера разбивать на страницы? У тебя это будет в пдф печататься? Что-то задача какая-то странная, а точней кажется, что задачи быть не должно и просто подход неверен.
Но если уж считать, то вырезал теги и всё. В чём сложность каждый пересчёт тэги просто вырезать??
Mikhail Sychev
@snutworks
Mar 10 2016 20:21
@SCIF ну задачи разные бывают, не всегда они очень адекватны, иногда чтобы сделать что-то новое приходится по-другому смотреть на обыденное, спасибо за совет
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:24
@snutworks, Ещё раз, есть ощущение, что эту задачу нужно решать не разбивкой на страницы в визивиге
Mikhail Sychev
@snutworks
Mar 10 2016 20:25
@SCIF не в визивиге, в момент прихода запроса в контроллер, соответственно чищу на выдаче в редактор и в момент показа выбираю нужный блок
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:26
Эээм. А визивиг разве не сам должен с тэгами разбираться? Это типа чтобы в визивиге не огромную простыню, а страницы редактировать?
Mikhail Sychev
@snutworks
Mar 10 2016 20:27
@SCIF нет, это для того чтобы в момент просмотра огромного поста он постранично умещался в 1 экран
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:27
Ну так экраны разные бывают. У одного влазит 1020 слов, у второго 900
Andrei Sosnov
@atehnix
Mar 10 2016 20:29
...а еще есть 40" мониторы и есть 4" мобильники)
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:31
@atehnix , ну если бразуер свёрнут, то на 40" может влезть меньше, чем на мобильнике 4". Я знаю такого товарища. Зато у него 4-6 окон бразуера на одном раб. столе. Я как бы к этому и подводил
Andrei Sosnov
@atehnix
Mar 10 2016 20:32
@SCIF у меня просто сейчас как раз этот чат развернут на 40", потому и говорю.. :)
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:32
4k?
Andrei Sosnov
@atehnix
Mar 10 2016 20:33
не, попроще.. Но есть ведь и те, у кого 4к.. )
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:33
@atehnix , ну и как бе ты же догадываешься, что такими вот мажорами можно принебречь? :) Но 1024-1920 — разлёт огромный и встречается часто. А если подумать про мобилы, то вообще плохеет от вариантов
Oleg
@Malezha
Mar 10 2016 20:33
@Big-Shark я надеюсь они поменяют метод add на any, а то как то вразнобой выходит: тут гет, тут пост, а тут какой то адд :/
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:36
О, посмотрел про CI. Доставил второй коммент: зачем laravel, если есть Yii. Ну да, точно, вот юии как раз и задаёт тон разработки :D
Vladislav
@Danan96
Mar 10 2016 20:38
@atehnix есть моники широкиe 21:9
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:39
@Danan96 , главное сколько в браузерном окне влезет, а не широкие/узкие. Всё-таки речь про инлайн текст ;)
Andrei Sosnov
@atehnix
Mar 10 2016 20:39
@Danan96 Ага. А еще, если их повернуть, то получится не широкие а высокие.. )
Vladislav
@Danan96
Mar 10 2016 20:40
@atehnix не поворачиваются такие)
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:40
@Danan96 , прямо передо мной такой. Тебе показать?
Andrei Sosnov
@atehnix
Mar 10 2016 20:40
@Danan96 смотря сколько сил приложить :)
Vladislav
@Danan96
Mar 10 2016 20:42
@SCIF ты думаешь я таких не видел? показывай :smile:
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:42
@Danan96 , я к тому что поворачивается всё нормально. Забавная портянка, особенно в рабочем состоянии
Vladislav
@Danan96
Mar 10 2016 20:44
какая модель?
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:48
Хммм. Забавно. Посмотрел на него. Ошибался. То есть вот эта непропорциональная дура оказалась не 21:9. Но вот 21:9 пример — http://hostingkartinok.com/news/8304/
Vladislav
@Danan96
Mar 10 2016 20:51
У тебя 16:9
зазаза
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:52
Да это не у меня, а у шефа. Просто передо мной эта хрень болтается на глазах постоянно. Смотрится настолько непропорционально, что был уверен в 21:9
Мне 2 обычных 1920 моников выше крыши.
Vladislav
@Danan96
Mar 10 2016 20:53
всмысле непропорционально?
мониторы 4:3 уже давно никто не использует
А какой тогда у шефа
0_0
Alexander Zhuravlev
@SCIF
Mar 10 2016 20:56
У шефа 16:9 на бок заваленный
Непропорционально — это когда всегда смотришь в него в горизонтальной ориентации, а потом видишь портретную и уверен, что это не может быть всего лишь 16:9
Maxim Morozov
@m-a-x-i-m
Mar 10 2016 21:18

Ребят, я правильно понимаю архитектуру MVC? Состоит она из трех звеньев: представление - часть архитектуры для отображения пользовательского интерфейса (html код), модель - звено для работы с данными (знаниями, информацией), модель работает с базой, в модели выполняется форматирование данных (если требуется), в общем все операции с данным реализуются в модели. Контроллер - это связующая часть между представлением и моделью. Контроллер принимает пользовательский запрос, валидирует его, получает данные от модели, и наконец формируем ответ пользователю?

Все операции с данными в моделях - это и есть так называемая "бизнес-логика"?

Oscar
@OSDDQD
Mar 10 2016 21:20
@M-a-x-i-m ну бизнес-логику можно как в моделях, так и в контролерах использовать, а в целом да, всё верно
Dinar Garipov
@garf
Mar 10 2016 22:05
@M-a-x-i-m Ты просто сейчас написал чуть подробнее.
Понимать ее очень легко.
Ты пользоваться научись :)
Maxim Morozov
@m-a-x-i-m
Mar 10 2016 22:07
@gaaarfild Я поэтому и написал подробно, чтобы понять какой функционал в контроллер сувать, а какой в модель )
Alexander Zhuravlev
@SCIF
Mar 10 2016 22:08
@M-a-x-i-m , ты если что, не стесняйся вводить сервисы которые никак не отсвечивают в мвц, но служат для разгрузки контроллеров от лишней логики или грязной работы
Maxim Morozov
@m-a-x-i-m
Mar 10 2016 22:10
@SCIF хорошо. Запомню
@SCIF сервисы я так понимаю, предназначены для упрощения общения одних классов с другими?
Т.е. какой-то рутинный код я могу выделить в отдельный класс, и использовать его в базовом
Alexander Zhuravlev
@SCIF
Mar 10 2016 22:22
Смотря что понимать под сервисами. Если речь про сервисы в контейнере, то они нужны чтобы абстрагировать реализацию. То есть у тебя есть сервис app('mailer') и ты его используешь в контроллерах. А когда вдруг все поняли, что swift шлак и убили его, то переписали реализацию mailer на использвование superpupermailer35 и тебе не пришлось лазить в контроллеры менять что-нибудь.
Maxim Morozov
@m-a-x-i-m
Mar 10 2016 22:35

@SCIF понял. Это круто. Абстрагирование таких зависимостей, я так понимаю применяется, если мы взаимодействуем с какой-то сторонней библиотекой, она устаревает, разработчики переписывают сервис, внедряя новую библиотеку, не потревожив при этом код приложения, верно?

А для разгрузки контроллеров/моделей Вы под сервисом имели ввиду что? И что конткретно можно туда вынести, пример просто?

Хотя думаю, сам пойму, что выносить, просто пока не приходилось с проблемой толстых контроллеров/моделей сталкиваться.
Alexander Zhuravlev
@SCIF
Mar 10 2016 22:40
Тут на «ты», если что принято общаться. Абстрагирование такое удобно чтобы не гадить в контроллер. Сегодня делал notifier, обёртку над мыльницей чтобы заворачивала в фирменный лейаут письмо и отсылала. И логировала и т.п. В итоге в контроллере $this->get('notifier')->welcomeLetter($user); и всё. Синтаксис симфони, в ларе просто хинтишь аргументом
Maxim Morozov
@m-a-x-i-m
Mar 10 2016 22:48
Аааа, понял. Т.е. какой-то отдельный от MVC функционал, отправка письма, работа с файловой системой (загрузка файлов, обработка изображений), работа с документами (создание pdf, excel) и т.д.