These are chat archives for LaravelRUS/chat

29th
Nov 2015
Orion55
@orion55
Nov 29 2015 09:01
Всем привет! Отдельный привет КармаБоту!
KarmaBot
@KarmaBot
Nov 29 2015 09:01
@orion55, привет, как настроение?
Orion55
@orion55
Nov 29 2015 09:02
карма
KarmaBot
@KarmaBot
Nov 29 2015 09:02
@orion55, Ваша карма +8. Вы благодарили 3 раз.
- Профиль orion55 на laravel.su
Orion55
@orion55
Nov 29 2015 09:03
Есть кто живой?
aleserche
@Aleserche
Nov 29 2015 09:13
конечно есть
Artur Gafurov
@assurrussa
Nov 29 2015 09:28
Всем привет! можно ли как то сделать, что бы подсветка методов через фасад была?
KarmaBot
@KarmaBot
Nov 29 2015 09:28
@assurrussa, привет, как настроение?
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 09:30
Artur Gafurov
@assurrussa
Nov 29 2015 09:30
@Ellrion неа) от фасадов подсветки нет
@Ellrion и принудительно делал /* @var .... ... */
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 09:32
@assurrussa ты или гонишь или сделал что то не так https://github.com/barryvdh/laravel-ide-helper#automatic-phpdoc-generation-for-laravel-facades
вон даже пункт именно про это
Artur Gafurov
@assurrussa
Nov 29 2015 09:33
@Ellrion Я в курсе что там написано, не первый раз использую, но вот беда не подсвечивает(
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 09:34
@assurrussa значит ты особенный
Artur Gafurov
@assurrussa
Nov 29 2015 09:36
This message was deleted
А может ли это проблема быть связана с composer autoload, просто как отдельный пакет разрабатываю?
Orion55
@orion55
Nov 29 2015 09:37
другой вопрос - как определить имя домена сайта через Request
или не реквест...
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 09:48

@orion55

$request->header('host');

Пользуйся ;-)

Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 09:50
@orion55 или ->getHost()
Artur Gafurov
@assurrussa
Nov 29 2015 09:51
Понятно, IdeHelper если сгенерирован то надо, namespace другой указывать, тогда все методы будут видны, разобрался
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 09:54
@Ellrion кстати не знал о таком, круто, спасиб!:)
KarmaBot
@KarmaBot
Nov 29 2015 09:54
Спасибо (+1) для @Ellrion принято! Текущая карма +76.
Nikita
@zakhnikita
Nov 29 2015 10:31
Ребят :worried:
Случайно накапал соку на тачпад макбука
С тех пор прошла неделя, тачпад не кликает, с трудом нажимается (до клика), но работает нормально в целом
Как вернуть клики? :worried: Пытался влажными салфетками вытирать тщательно, не помогло
Maksim Karpychev
@kodermax
Nov 29 2015 10:35
Разобрать тачпад
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 10:57

Подскажите, почему не видно моего роута? :(
Route.php

Route::get('/login_as/{user_id}', ['as' => 'LoginAs', function(\App\Models\User $user){
            dd($user);
        }]);

view

<button type="button" href="{{route('LoginAs')}}" class="btn btn-primary btn-sm btn-block"><i class="fa fa-envelope"></i>Войти</button>
Nikita
@zakhnikita
Nov 29 2015 10:57
@kodermax а менее «рискованный» способ есть? Не хочу разбирать ноут
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 10:57
@zakhnikita Сервис Центр?
Nikita
@zakhnikita
Nov 29 2015 10:58
@3gsxarakiri А что нужно туда кроме самого ноута? (был куплен в интернет магазине, не в оф) И сколько там могут его держать, не подскажете?
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 10:59
@zakhnikita Ну я с тачпадом не сталкивался, но носил матрицу менять, хватало просто ноута и в некоторых центрах паспорта. Мне матрицу за 2 дня поменяли(пришлось немножко "за срочность" накинуть)
Nikita
@zakhnikita
Nov 29 2015 11:00
@3gsxarakiri в официальный сервис относили?
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 11:00
@zakhnikita в моем городе нет официального :-(
Но сделали качественно :-)
Nikita
@zakhnikita
Nov 29 2015 11:00
@3gsxarakiri А какие-то гарантии неофициальные сервисы дают? :worried:
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 11:03
@zakhnikita ну мне дали гарантийный талон на их работу, что мол в течение года ничего с матрицей не случится. Но опять же это от СЦ зависит :)
Nikita
@zakhnikita
Nov 29 2015 11:03
@3gsxarakiri Ну хорошо, спасибо
KarmaBot
@KarmaBot
Nov 29 2015 11:03
Спасибо (+1) для @3gsxarakiri принято! Текущая карма +3.
Nikita
@zakhnikita
Nov 29 2015 11:03
О
О_о
Давно я сюда не заходил
какой-то кармобот
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 11:10
@3gsxarakiri "роута невидно " id забыл пробросить {{ route('LoginAs', [$id]) }} у тебя же роут должен указывать на конкретный user_id
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 11:26
@Ellrion ага, верно, только вот косяк, не видно все равно :(
 <button type="button" href="{{route('LoginAs', ['user_id' => $user->id])}}" class="btn btn-primary btn-sm btn-block"><i class="fa fa-envelope"></i>Войти</button>
Route [LoginAs] not defined.
JhaoDa
@jhaoda
Nov 29 2015 11:34
@3gsxarakiri кэша роутов нет, случаем?
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 11:43
@jhaoda не, я весь кэш из "storage" удалил, проблема осталась
JhaoDa
@jhaoda
Nov 29 2015 11:44
@3gsxarakiri вот только кэш находитя в bootstrap/cache
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 11:51
Народ, а можно ли как-то используя Elexir запустить gulp таски отдельно?
D3-FC
@D3-FC
Nov 29 2015 11:52
Привет всем!
KarmaBot
@KarmaBot
Nov 29 2015 11:52
@D3-FC, привет =)
D3-FC
@D3-FC
Nov 29 2015 11:52
Помогите пожалуйста. Как обратиться к текущему action внутри middleware?
Mikhail Donskoy
@mdnsk
Nov 29 2015 11:55
@3gsxarakiri где ты подключаешь Route.php ?
Mikhail Donskoy
@mdnsk
Nov 29 2015 12:03
@3gsxarakiri вместо button используй a
<a href="{{ route('LoginAs') }} class="btn btn-primary btn-sm btn-block"><i class="fa fa-envelope"></i>Войти</a>
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 12:09
@D3-FC для глобальных мидлваров точно никак, т.к. они запускаются до роутинга. Для роутовых так сразу не ответишь мб и можно надо смотреть. Но вообще если тебе такое понадобилось то стоит задать себе вопрос а верная ли у меня архитектура
D3-FC
@D3-FC
Nov 29 2015 12:16
@Ellrion Вообще с архитектурой ещё не опредилился
Soprun Vladislav
@vlsoprun
Nov 29 2015 12:17
Всем привет
KarmaBot
@KarmaBot
Nov 29 2015 12:17
@vlsoprun, привет, как настроение?
Soprun Vladislav
@vlsoprun
Nov 29 2015 12:18
@KarmaBot Отличное, а у тебя ? :)
D3-FC
@D3-FC
Nov 29 2015 12:19
@Ellrion Вообще мало опытен на этом поприще. А вообще в модель ролей записывается определённое название роута или экшн контролера? или же устанавливаются релевантные связи с другими моделями и после их тригера определяется можно ли этой роли сюда или нет?
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 12:42
@BaldaI Route.php стандартный файл роутов Laravel, как замена тега решит проблему с переменной? (если будет легче, я поменял, проблема осталась)
Mikhail Donskoy
@mdnsk
Nov 29 2015 12:47
@3gsxarakiri https://github.com/laravel/laravel/tree/master/app/Http
где тут Route.php ?
@3gsxarakiri Другие роуты объявленные в Route.php работают?
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 12:54
@BaldaI Ой, пардон, не так написал :), я имел в виду routes.php.
Да, остальное все пока работает, проблем не замечал
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:09

Для работы ангуляра использую такой роут:

Route::any('{uri}', function ($page) {
    return view('index');
})->where('uri', '(.*)');

Но при таком роуте не грузиться debugbar, так как его загрузка js перехватывается этим роутом.
Что делать?
P.S. Может вообще такой роутер для работы ангуляра не нужен? Но как тогда?

JhaoDa
@jhaoda
Nov 29 2015 13:24
@Furdarius откуда же нам знать — нужен твоему ангуляр-приложению такой роут или нет?
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:26
@jhaoda Ангуляру нужно запуститься... У ангуляра свои роуты, но что бы он запустился, как я понял, нужно layout загрузить первым делом.
Для этого я перехватываю все роуты на сервере и гружу layout, а дальше с роутами работает ангуляр.
Во всех туториалах этот момент опускается...
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:27
@Furdarius
get('view/{name}', function ($name) {
    $view = 'manager.view-template.' . $name;

    if (View::exists($view)) {

        \Debugbar::disable();

        return View::make($view);
    }

    abort(404);

    return null;
});
@Furdarius Самый последний роут
get('{all}', function () {
        return view('manager');
    })->where('all', '(.*)');
@Furdarius Но лучше использовать группировку по префиксу, например префикс админки
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:29
@vlsoprun Не много не понял первый листинг... Что тут происходит?
@vlsoprun У меня для админки и используется префикс
А щас мне надо на фронтальной (Клиентской) части ангуляр поставить
У меня разделено на 2 части, а в каждой части свой js
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:31
@Furdarius оу... для клиентской.. Это посложнее будет
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:32
@vlsoprun Делают же как-то...
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:32
А нет, все норм, get('{all}', function () { просто самый последний роут будет.
только не any, а именно get
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:33
@vlsoprun Да, но он перехватывает роут Дебагбара
Аа
Щас попробую просто get
Хотя он по идее тоже будет перехватывать
@vlsoprun Да, debugbar перехватывается...
А как просто exclude сделать?
Mikhail Sychev
@snutworks
Nov 29 2015 13:36
Коллеги, только начал разбираться с выборками по связям и не получается получить массив следующего вида
$child_titles = [child->id => child->parent->title . ' ' . child->title, ..., ]
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:36
Я бы тогда просто исключение для дебагбара сделал
Mikhail Sychev
@snutworks
Nov 29 2015 13:36
child belongsTo Parent
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:37
@Furdarius ее можно решить используя where, а точнее написать "если не содержит _debugbar то .."
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:37
@vlsoprun Да я вот об этом подумал...
Как такой регексп написать кто-нибудь может с ходу сказать?
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:38
@Furdarius ищу его ))
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:38
Даже можно проще:
Если не начинается на _
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:43
@Furdarius Вроде бы вот так
get('{all}', function($all) {
    return $all;
})->where('all', '^(?!_debugbar).*$');
This message was deleted
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:44
^(?!_).*$ вот так пока сделал. Вроде завелось
Soprun Vladislav
@vlsoprun
Nov 29 2015 13:45
Так даже проще )))
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:46
@vlsoprun Спасибо)
KarmaBot
@KarmaBot
Nov 29 2015 13:46
Спасибо (+1) для @vlsoprun принято! Текущая карма +58.
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 13:46
Теперь еще вопрос, по чуть другой теме)

Собираю админскую часть гульпом так:

function doElexir(mix, settings) {
    var config = elixir.config;
    _.assign(config, settings);

    mix.sass('app.scss')
        .browserify('../../angular/index.js', config.get('public.js.folder') + '/app.js')
        .browserify('vendor.js', config.get('public.js.folder') + '/vendor.js')
        .copy(config.assetsPath + '/../angular/templates', config.publicPath + '/templates');
}

elixir(function(mix) {
    doElexir(mix, require('./gulp/backend.env.js'));
});

Если для сбора клиентской части добавляю:

elixir(function(mix) {
    doElexir(mix, require('./gulp/backend.env.js'));
    doElexir(mix, require('./gulp/frontend.env.js'));
});

То почему-то конфиги переплетаются... Может быть там с асинхронностью связано, не знаю.

Оптимально было бы создать 2 gulp-task'а: gulp admin и gulp client, что б можно было запускать по отдельности. Ну и просто gulp запускал бы сначала одно потом другое... Но как это реализовать в рамках элексира не знаю, а переписывать под чистый gulp не хочется.
Подскажите, кто знает.

Виталя
@ferraghue
Nov 29 2015 14:15
Ребят, кто шарит можно ли в slack инвайтить по API, юзеров, но уже заведомо присваивать почту и никнейм?
unnamed75
@unnamed75
Nov 29 2015 15:08
как прочитать csv файл и вывести все массивом?
sgorev
@sgorev
Nov 29 2015 15:10
@unnamed75 как вариант можно заюзать встроенную в php функцию - str_getcsv
JhaoDa
@jhaoda
Nov 29 2015 15:10
@sgorev нельзя, потому что для этого надо читать документацию :)
sgorev
@sgorev
Nov 29 2015 15:11
:)
JhaoDa
@jhaoda
Nov 29 2015 15:11
А гражданин @unnamed75 этого не любит
sgorev
@sgorev
Nov 29 2015 15:11
нужно приучать)
unnamed75
@unnamed75
Nov 29 2015 15:12
@jhaoda :)
Vadim Milevskiy
@3gsxarakiri
Nov 29 2015 15:20
Парни, я выше уже писал о проблеме с роутами, чет ничего не получается, чтобы не пробовал =\
Может есть у Вас какие-то идеи? :(
Виталя
@ferraghue
Nov 29 2015 15:25
Есть где готовый скриптец переноса постгрес базы с одного сервера на второй? На php. Без ларавельных миграций. Чтобы прям старые данные в базе дропал и записывал новые.
Nuzsk
@Nuzsk
Nov 29 2015 15:35
@mrfanta удаляешь схему
@mrfanta создаешь схему
@mrfanta заливаешь дамп
JhaoDa
@jhaoda
Nov 29 2015 15:36
???????
PROFIT!
Nuzsk
@Nuzsk
Nov 29 2015 15:36
:smile:
Виталя
@ferraghue
Nov 29 2015 15:39
@Nuzsk та мне влом это писать. Ведь нужно еще и сделать дамп с новой базы. сохранить и пр. рутина
Nuzsk
@Nuzsk
Nov 29 2015 15:40
@mrfanta там нет простых способов ) разве что на баше собрать монстра
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 15:45
@mrfanta Если PhpMyAdmin есть то можно там сделать export/import
Виталя
@ferraghue
Nov 29 2015 15:46
@Furdarius phpmyadmin не знает что такое postgres. Есть pgadmin но там это отключено для безопасности
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 15:48
@mrfanta Аа, у тебя постге... Не увидел...
Там есть инструмент psql, скорее всего он умеет dump
Nuzsk
@Nuzsk
Nov 29 2015 15:48
@Furdarius там чуть сложнее все
@mrfanta а у тебя коннект к бд наружу не торчит, как понимаю?
Виталя
@ferraghue
Nov 29 2015 15:48
@Furdarius который консольный? Нет, нужно php и чтобы работало :)
@Nuzsk нет конечно, но и не локалхост тупо. Внутри сети
Orion55
@orion55
Nov 29 2015 15:49
есть инструменты командной строки - можно выгрузить как в sql, так и снять дамп - дамп быстрее
Nuzsk
@Nuzsk
Nov 29 2015 15:49
@mrfanta а копируется с локала на удаленный?
Orion55
@orion55
Nov 29 2015 15:49
если поднять ssh - то копируется
при помощи winscp
Виталя
@ferraghue
Nov 29 2015 15:50
@Nuzsk @orion55 всякие shell_exec тоже отключены. Насколько понял у меня только один вариант с pg_copy.
@Nuzsk как именно с локала на удаленный копируется ?
@Nuzsk не понял вопроса
Orion55
@orion55
Nov 29 2015 15:51
@mrfanta я не знаю насчет посгресс, но в mysql - этот функционал встроен в саму БД
Nuzsk
@Nuzsk
Nov 29 2015 15:51
@mrfanta ты заливаешь с локального сервера на удаленный, верно?
Виталя
@ferraghue
Nov 29 2015 15:53
@Nuzsk не совсем, есть серв для юнит тестов, на нем же и база, есть продакшен серв (который закрыт) нужно периодически обновлять продакшен базу. Сам php скрипт должен находится на продакшене, который все это будет делать
Nuzsk
@Nuzsk
Nov 29 2015 15:54
@mrfanta готового нет, варианты: 1) писать на баше, 2) настроить deployer для этого 3) костылить на чистом php
я бы выбрал второе
Orion55
@orion55
Nov 29 2015 15:54
@mrfanta абсолютно все порты закрыты или есть ssh на продакшене?
@Nuzsk я бы первое
Виталя
@ferraghue
Nov 29 2015 15:55
@orion55 там cdn и к базе не подключится удаленно. PS доступа у меня нет к ssh
@Nuzsk что за деплоер?
Nuzsk
@Nuzsk
Nov 29 2015 15:55
Orion55
@orion55
Nov 29 2015 15:55
@mrfanta тебе не нужно подключаться к базе - тебе нужно 1. скопировать дамп оп ssh 2. запустить скрипт заливки дампа в базу
Nuzsk
@Nuzsk
Nov 29 2015 15:56
@mrfanta пример готового рецепта (под себя допишешь) https://github.com/deployphp/deployer/blob/master/recipe/laravel.php
Orion55
@orion55
Nov 29 2015 15:57
@mrfanta или используй админер https://www.adminer.org/ - это аналог phpadmina только в одном файле
Виталя
@ferraghue
Nov 29 2015 15:57
@Nuzsk не, деплоер не подойдет для этой среды, но спасибо. Для личных целей двано искал подобное.
@orion55 спасибо, но тоже не подойдет. Есть PgAdmin который выполняет свои функции хорошо, для просмотра базы. В остальном функционале не нуждаюсь. Пойду костылить на php pg_copy_to \ pg_copy_from
KarmaBot
@KarmaBot
Nov 29 2015 15:59
Спасибо (+1) для @orion55 принято! Текущая карма +9.
Виталя
@ferraghue
Nov 29 2015 15:59
@Nuzsk спасибо
KarmaBot
@KarmaBot
Nov 29 2015 15:59
Спасибо (+1) для @Nuzsk принято! Текущая карма +15.
Orion55
@orion55
Nov 29 2015 16:00
@mrfanta и тебе спасибо :-)
KarmaBot
@KarmaBot
Nov 29 2015 16:00
Спасибо (+1) для @mrfanta принято! Текущая карма +1.
Anton Vorontsov
@symbios-zi
Nov 29 2015 16:13
всем привет
KarmaBot
@KarmaBot
Nov 29 2015 16:13
@symbios-zi, привет =)
Orion55
@orion55
Nov 29 2015 16:14
@symbios-zi привет
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:51

:point_up: November 29, 2015 4:46 PM

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

https://gist.github.com/Furdarius/8507e5c73bc8edcd14a2

Nuzsk
@Nuzsk
Nov 29 2015 16:52
require('laravel-elixir-angular'); ночь улица фонарь аптека
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:52
@Nuzsk Убрал уже)
Это из экспериментов осталось...
Удобнее всего оказалось browserify использовать
Nuzsk
@Nuzsk
Nov 29 2015 16:53
@Furdarius с ним из фронтенда чуть сложновато
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:53
Почему?
Nuzsk
@Nuzsk
Nov 29 2015 16:54
если нужно к какому-то UI элементу засунуть в onclick глобальную функцию
будет onclick="require("globals").myFunction"
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:55
Кстати, npm теперь имеет flat список зависимостей, поэтому использование без bower вполне оправданно.
@Nuzsk А где такое может понадобится?
Тем-более в контексте angular приложения
Nuzsk
@Nuzsk
Nov 29 2015 16:57
@Furdarius в контексте angular - не знаю, а так многие виджеты (в yii2 по крайней мере) могут запрашивать ту или иную функцию для кастомизации
тот же select2 например
templateResult\templateSelection\escapeMarkup
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:57
@Nuzsk Аа, понял.
Ну вроде хелперы тянуть реквайром нормально
@Nuzsk Я с yii не знаком практически
Nuzsk
@Nuzsk
Nov 29 2015 16:58
@Furdarius да это даже про js обычный справедливо, в select2 как пример
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 16:58
Если не в контексте ангуляра, то вешать обработчики прям в html не стал бы...
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 17:03
На самом деле, я мало работаю с версткой, поэтому, возможно, не знаю каких-то нюансов. Перед тем как делать сборку я почитал о bower, npm и о том как это вообще делают. Так вот такой подход с browserify я понял и он мне очень понравился.
Почти везде явное указание зависимостей, например. Пока делал на ангуляре, все очень красиво укладывалось в концепцию.
Nuzsk
@Nuzsk
Nov 29 2015 17:04
да, удобный он очень, сам недавно пробовал
но пока что отложил
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 17:05
Кстати, не у кого нету сорцов https://imperavi.com/redactor/ ?
Nuzsk
@Nuzsk
Nov 29 2015 17:06
@Furdarius в yii2 можно взять )
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 17:07
@Nuzsk Да, видел у них, надо выковыривать... Поэтому и спросил, вдруг кто уже выковырял
что там выковыривать, он он целиком
Artemiy Ryabinkov
@Furdarius
Nov 29 2015 17:07
@Nuzsk О, круто, спасибо)
KarmaBot
@KarmaBot
Nov 29 2015 17:07
Спасибо (+1) для @Nuzsk принято! Текущая карма +16.
Ivan Levchenko
@DonnieDrummer
Nov 29 2015 17:36
ребят, а как посоветуете реализовать рассылку используя встроеный мейлер через мейлган
с коробки работы с списками нету, а если подключать сторонние пакеты, то они тянут официальную SDK которая хочет guzzleHTTP 5 версии, а в проекте имееются зависимости уже на 6ю версию
JhaoDa
@jhaoda
Nov 29 2015 17:42
@Furdarius фигово ты как-то видел...
Andrei Sosnov
@atehnix
Nov 29 2015 18:39
Всем привет.
При любой синтаксической ошибке в blade-шаблоне - виснет сервер.
Это нормальное поведение или нужно где-то искать косяк в коде/сервере?
KarmaBot
@KarmaBot
Nov 29 2015 18:39
@atehnix, привет, как настроение?
Annywebart
@Annywebart
Nov 29 2015 18:40
Всем привет. Использую файловый кэш (Laravel 4.2). Храню с ключами "widgets.answers.{id}". Как я могу очистить кэш для всех "widgets.answers" ?
KarmaBot
@KarmaBot
Nov 29 2015 18:40
@Annywebart, привет =)
Soprun Vladislav
@vlsoprun
Nov 29 2015 18:42
@atehnix Привет, ну вообще это не совсем норм.
@Annywebart Привет, Cache Tags думаю тебе поможет
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 18:43
@Annywebart не поможет, он не работает с фаловым и бд кэшем
Annywebart
@Annywebart
Nov 29 2015 18:43
@vlsoprun Использую filecache. "Cache tags are not supported when using the file or database cache drivers"
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:44
@Annywebart предлагаю воспользоваться доктриновским кешем
я его использовал именно для этой ситуации
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 18:44
@Annywebart а почему не мемкеш?
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:45
в теории могу постараться найти адаптер
Andrei Sosnov
@atehnix
Nov 29 2015 18:45
@vlsoprun спасибо.
Ага. Так то я был на 95% уверен, что так не должно быть.. )
Иначе, как ошибки отлаживать...)
Просто решил на всякий случай спросить, вдруг я чего-то не знаю. :)
KarmaBot
@KarmaBot
Nov 29 2015 18:45

Благодарный

@atehnix, вы выполнили условие: "Высказать 20 благодарностей.".
С чем и поздравляем =)
Благодарный
Спасибо (+1) для @vlsoprun принято! Текущая карма +59.
Annywebart
@Annywebart
Nov 29 2015 18:45
@Ellrion у клинета на хостинге нет возможности использовать :(
@SerafimArts не совсем поняла, что это...
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:47
я когда-то давно столкнулся с этой проблемой
и написал адаптер для ларки под этот пакет
Annywebart
@Annywebart
Nov 29 2015 18:47
@SerafimArts спасибо, посмотрю
KarmaBot
@KarmaBot
Nov 29 2015 18:47
Спасибо (+1) для @SerafimArts принято! Текущая карма +147.
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:47
он позволяет удалять кеш, используя определённые критерии - теги
Annywebart
@Annywebart
Nov 29 2015 18:48
@SerafimArts а как сложно будет его внедрить в уже готовый проект? кэш то уже готов... :(
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 18:48
@Annywebart можно еще хранить по ключу widgets.answers коллекцию и выбирать всю и брать уже там по id тогда сносить весь ключ
но это несколько нерационально пожалуй
Annywebart
@Annywebart
Nov 29 2015 18:49
@Ellrion Спасибо за идею
KarmaBot
@KarmaBot
Nov 29 2015 18:49
Спасибо (+1) для @Ellrion принято! Текущая карма +77.
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:49
@Annywebart писать много, муторно =(
смысл в том, что в конфигах file кеш, меняется на свой (например doctrine)
а внутрь подсовывется нужны адаптер
у которого помимо всяких remember и прочего есть ещё методы удаления нужных ключей\тегов
Annywebart
@Annywebart
Nov 29 2015 18:51
@SerafimArts Еще раз спасибо за объяснение, сейчас буду разбираться.
А в L5 хоть этой проблемы уже нет?
Anton Vorontsov
@symbios-zi
Nov 29 2015 18:51
кто нибудь разбирается в юнит тестах?
пара вопросов от новичка
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:52
@Annywebart есть
Annywebart
@Annywebart
Nov 29 2015 18:52
@SerafimArts :)
Kirill Nesmeyanov
@SerafimArts
Nov 29 2015 18:54
не, так с ходу не найду где я использовал его
Виталя
@ferraghue
Nov 29 2015 19:00
@symbios-zi только начал их изучать, но временно забил из-за нехватки времени на других проектах.
@symbios-zi у меня сейчас только 1 тест. GET / Если 200 - гуд :D
Anton Vorontsov
@symbios-zi
Nov 29 2015 19:01

@mrfanta вопрос в общем то простой.

    /**
     * Get current domain which is using a user at the moment 
     * @return object
     */
    public function getCurrentDomain()
    {
        return $this->getAll()->where('domain', $this->getUrl())->first();
    }

есть метод, который вернет элемент коллекции. Как это я должен проверять, не совсем понимаю

Alexander
@xxxcoltxxx
Nov 29 2015 19:17

Привет! Безопасен ли код? $search ведь не экранируется

return $query->orWhereRaw("CAST(id AS TEXT) LIKE '%{$search}%'" );

Может, есть нормальный вариант like в postgresql?
Так пробовал:

return $query->orWhereRaw("CAST(id AS TEXT) LIKE '%?%'", [$search]);

Но если $search = 1, то валится ошибка ERROR: could not determine data type of parameter

Без CAST like не проходит по id(
В мускуле прошёл бы)
Alexander
@xxxcoltxxx
Nov 29 2015 19:24
@symbios-zi $this->getUrl() откуда берет адрес? По идее, его нужно замокать и проверить, что вернется нужный элемент
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 19:30
@xxxcoltxxx попробуй
return $query->orWhereRaw("CAST(id AS TEXT) LIKE ?", ['%'.$search.'%']);
Anton Vorontsov
@symbios-zi
Nov 29 2015 19:30

@xxxcoltxxx

class DomainRouterTest extends TestCase
{

    protected $domainRounter;
    protected $domain;

    public function setUp()
    {
        parent::setUp();

        Session::start();

        $this->domain = new \App\Models\Domains\Domain();
        $this->domainRounter = new \App\Services\DomainRouter\DomainRouter($this->domain, ['url' => 'site1.myaddress.com']);

    }  


    public function testGetCurrentDomain()
    {
        $this->assertEquals('site1.myaddress.com', $this->domainRounter->domain);
     }
}

пробую так, на что ругается что свойство приватное

[Symfony\Component\Debug\Exception\FatalErrorException]
  Cannot access private property app\Services\DomainRouter\DomainRouter::$domain
Alexander
@xxxcoltxxx
Nov 29 2015 19:35
@symbios-zi Ну так оно у тебя, видимо, приватное) Без полного кода сложно сказать. Где у тебя вызов метода getCurrentDomain? Надо же его проверить по идее
Alexander
@xxxcoltxxx
Nov 29 2015 19:42
Помогите плиз) Получился говнокод, на мой взгляд, но по-другому просто не работает( БД PostgreSQL
    public function scopeLikeId(Builder $query, $search, $or = false)
    {
        $search = DB::connection()->getPdo()->quote("%{$search}%");
        $where = "CAST(id AS TEXT) LIKE {$search}";
        if ($or) {
            return $query->orWhereRaw($where);
        } else {
            return $query->whereRaw($where);
        }
    }
Как можно зарефакторить?
Nuzsk
@Nuzsk
Nov 29 2015 19:44
великолепный код
Alexander
@xxxcoltxxx
Nov 29 2015 19:45
@Nuzsk Издеваешься?
Nuzsk
@Nuzsk
Nov 29 2015 19:45
да
но я бы оставил как есть
Alexander
@xxxcoltxxx
Nov 29 2015 19:45
@Nuzsk Ну, за помошь спасибо, конечно. Реально можешь помочь?)
Nuzsk
@Nuzsk
Nov 29 2015 19:47
вообще непонятная история, почему id нужно к тексту приводить
Alexander
@xxxcoltxxx
Nov 29 2015 19:47
@Nuzsk Фишка postgre. like по integer вываливает ошибку
Anton Vorontsov
@symbios-zi
Nov 29 2015 19:47
@Nuzsk привет, нашел работу?
Nuzsk
@Nuzsk
Nov 29 2015 19:47
@symbios-zi давно
Anton Vorontsov
@symbios-zi
Nov 29 2015 19:48
@Nuzsk давно, 2 недели?
Nuzsk
@Nuzsk
Nov 29 2015 19:48
@symbios-zi >3
ну как мы списывались, в личке
примерно с того времени
Alexander
@xxxcoltxxx
Nov 29 2015 19:53
Небольшая победа

    public function scopeLikeId(Builder $query, $search, $or = false)
    {
        $where = "id::TEXT LIKE ?";
        if ($or) {
            return $query->orWhereRaw($where, ["%{$search}%"]);
        } else {
            return $query->whereRaw($where, ["%{$search}%"]);
        }
    }
Nuzsk
@Nuzsk
Nov 29 2015 19:53
а это нестандартный sql синтаксис
судя по ответу на SO
хотя может я криво прочитал
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 19:57
@xxxcoltxxx я тебе выше как бы это написал
@xxxcoltxxx а темболее твой код еще проше делается
 public function scopeLikeId(Builder $query, $search, $or = false)
 {
     return $query->orWhereRaw($ "id::TEXT LIKE ?", ["%{$search}%"], $or ? "or" : "and");
 }
Alexander
@xxxcoltxxx
Nov 29 2015 20:04
@Ellrion а вот за 3-й параметр спасибо, не доглядел в документации
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:07
эй карма бот спать пошел?)
Alexander
@xxxcoltxxx
Nov 29 2015 20:07
@Ellrion Спасибо!
KarmaBot
@KarmaBot
Nov 29 2015 20:07
Спасибо (+1) для @Ellrion принято! Текущая карма +78.
Alexander
@xxxcoltxxx
Nov 29 2015 20:07
Во)
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:08
@xxxcoltxxx ))
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:20
@KarmaBot погугли юишник или ларавельщик зарабатывает больше
KarmaBot
@KarmaBot
Nov 29 2015 20:20
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:22
@xxxcoltxxx как и на что тестировать если у меня метод возвращает просто все элементы модели?
    public function getAll()
    {
        return Cache::remember('domain_list', 10, function() {
            return $this->domain->orderBy('id', 'asc')->get();
        });
    }
или такие методы не покрывают тестами?
Alexander
@xxxcoltxxx
Nov 29 2015 20:25
@symbios-zi Это всё из БД вытягивается?
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:26
@symbios-zi в тесет заполняешь базу парой итемов, вызываешь метод, проверяешь что что положил то и получил
Alexander
@xxxcoltxxx
Nov 29 2015 20:27
@symbios-zi Я с Laravel не особо сталкивался, обычно unit-тесты пишут на методы, а сами данные мокают. Есть плагин DBUnit, в нем как раз всё сначала пихается в БД, а потом проверяется какой-нибудь метод
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:27
обязательно данные мокать или можно живые использовать?
Alexander
@xxxcoltxxx
Nov 29 2015 20:28
@symbios-zi Можно. Но тестовые)
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:28
@xxxcoltxxx почему именно тестовые? )
Alexander
@xxxcoltxxx
Nov 29 2015 20:29
@symbios-zi Вообще, любой тест - передаёшь исходные данные или данные, которые нужны для метода, выполняешь метод, потом проверяешь, какие данные вернулись или какие данные в бд стали
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:29
@symbios-zi потому что ты должен знать что лежит, что бы потом проверить
Alexander
@xxxcoltxxx
Nov 29 2015 20:29
@symbios-zi А ты хочешь на рабочей базе тесты прогонять?)
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:29
сайт на стадии разработки новый
решил тесты начать писать
у меня есть модель Domains где 3 домена, и их шаблоны. У меня в зависимости от домена нужные вьюхи цепляются,которые берутся и модели domains
метод getAll просто возвращает все записи из модели, не понимаю что тут вообще можно тестировать )
Alexander
@xxxcoltxxx
Nov 29 2015 20:33
@symbios-zi Ты хочешь написать тесты, чтобы написать тесты, или чтобы при изменении кода ничего не поломалось? Если не понимаешь, что вообще проверять - либо выясни это, либо напиши более полезный тест)
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:33
@symbios-zi ну так и не тестируй) кэш протесчен, методы бд тоже. Это можешь не тестить
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:36

@Ellrion @xxxcoltxxx http://laravel.io/bin/QNEby вот мой сервисный класс. Я написал тесты на методы

getCurrentDomain, getCurrentTheme, setTheme, getThemeByDomain

какие бы вы написали тесты?
Alexander
@xxxcoltxxx
Nov 29 2015 20:36
@symbios-zi Допустим, есть у тебя форма добавления заказа на сайте - тут есть смысл тестировать, что заказ действительно добавляется или не добавляется при некорректных параметр. Сам фреймворк смысла проверять нет
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:37
@xxxcoltxxx вот и я подумал что нет смысла тестировать фреймворк, наверное только мой функционал
кстати, тесты писать как оказалось не сложно ))) почему то всегда их боялся
Maksim (Ellrion) Platonov
@Ellrion
Nov 29 2015 20:37
@symbios-zi не то что бы я гуру в тестироваии) так что сори не отвечу
Alexander
@xxxcoltxxx
Nov 29 2015 20:48
@symbios-zi getCurrentTheme проходит?
@symbios-zi Там может быть косяк, если в конфиге темы нет, т.к. вызова setTheme что-то не вижу, дефолтного значения при отсутствии параметра в конфиге - тоже
@symbios-zi Методы getAll() и getAllDomains() частично копируют друг друга. Может, их объединить?
Anton Vorontsov
@symbios-zi
Nov 29 2015 20:55
@xxxcoltxxx мне в одном случае нужен просто массив, где айди в качестве ключа, в другом коллекция. Как их объединить?

@xxxcoltxxx

        public function test_get_current_domain()
     {
        $domainModel = $this->domainRouter->getCurrentDomain();
        $this->assertEquals('site1.mysite.ru', $domainModel->domain);
     }

такой метод сделал, в качестве url указываю домен из бд и проходит

ой, ты же спросил getCurrentTheme
Petro Deriy
@pderiy
Nov 29 2015 21:05
Привет парни, может кто упростить вопрос?
blob
KarmaBot
@KarmaBot
Nov 29 2015 21:05
@edomos, просьба оборачивать в кавычки ссылки на видео и изображения.
Petro Deriy
@pderiy
Nov 29 2015 21:05
у меня это идет в 4 вопроса
Alexander
@xxxcoltxxx
Nov 29 2015 21:15
@edomos Напиши сразу return('test'); =)
Andrei Sosnov
@atehnix
Nov 29 2015 22:42
Кто-нить в курсе, есть ли решение проблемы с конфликтом .envпри двух Laravel-проектах на одном сервере?
http://sourceforge.net/p/laragon/tickets/9/
Использовать разные названия переменных в .env, конечно вариант.. но по-моему, костыльный.