These are chat archives for LaravelRUS/chat

6th
Dec 2017
Pakharenko
@Pakharenko
Dec 06 2017 05:18
@jhaoda Попробую ещё разобраться.Если не получится напишу и покажу код.Спасибо
KarmaBot
@KarmaBot
Dec 06 2017 05:18
Спасибо (+1) для @jhaoda принято! Текущая карма +1640.
Pakharenko
@Pakharenko
Dec 06 2017 06:04
protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {

        DB::table('user_limit')->update(
            ['gamelimit' => 0]
        );

    })->timezone('Europe/Moscow')->dailyAt('08:43,08:44,08:45');

}
Каждый час работает и так далее.А вот когда 3 значения не работает.Что я делаю не так?
Pakharenko
@Pakharenko
Dec 06 2017 06:35
Мне нужно сделать по времени в 00:00 в 08:00 и в 16:00.Как это можно сделать?
JhaoDa
@jhaoda
Dec 06 2017 07:56
@Pakharenko а кто сказал, что можно писать '08:43,08:44,08:45'?
Pakharenko
@Pakharenko
Dec 06 2017 08:04
Доки $this dailyAt(string $time) Schedule the event to run daily at a given time (10:00, 19:30, etc).
Pakharenko
@Pakharenko
Dec 06 2017 08:05
Что я сделал не так?Как можно решить эту задачу?
По 1 часу получается и 1 раз в сутки.А вот 3 раза в сутки не могу решить
JhaoDa
@jhaoda
Dec 06 2017 08:16
@Pakharenko ну если верить доке, то можно писать и 08:45, etc., правда же? Правда, в доках этого нет, а есть в докблоках
Nikita
@xenmayer
Dec 06 2017 08:16
@Pakharenko ты не так понял, посмотри на реализацию метода dailyAt().
@jhaoda хм, так он значит смотрел.
Pakharenko
@Pakharenko
Dec 06 2017 08:22
@xenmayer наверное нужно тогда самому создавать cron как-то
JhaoDa
@jhaoda
Dec 06 2017 08:26
@Pakharenko ало, парень, ты думать пробовал? Даже не думать, а документацию читать.
@Pakharenko методы можно в цепочке вызывать
@Pakharenko намёк ясен?
Lander931
@Lander931
Dec 06 2017 08:28
@Pakharenko
...
->dailyAt('08:43')
->dailyAt('08:44')
->dailyAt('08:45');
Pakharenko
@Pakharenko
Dec 06 2017 08:29
@jhaoda Думаем,пробуем и читаем.
@Lander931 Спасибо, уже понятно
JhaoDa
@jhaoda
Dec 06 2017 08:29
@Lander931 ну вот что ты интригу портишь?
KarmaBot
@KarmaBot
Dec 06 2017 08:29
Спасибо (+1) для @Lander931 принято! Текущая карма +1.
Pakharenko
@Pakharenko
Dec 06 2017 08:29
@jhaoda Думал что не нужно много методов создавать, а всё в одном прописать
JhaoDa
@jhaoda
Dec 06 2017 08:30
@Pakharenko тебе 12 часов потребовалось на осознание этой элементарной вещи?
Pakharenko
@Pakharenko
Dec 06 2017 08:31
@jhaoda Нет ну часик на чтение ушло
@jhaoda Оно всё элементарно когда не первый раз сталкиваешься с этим.
JhaoDa
@jhaoda
Dec 06 2017 08:33
@Pakharenko оно элементарно, если читать доку всю и по прямой, а не кусками и по диагонали
Pakharenko
@Pakharenko
Dec 06 2017 08:36
@jhaoda Тут с тобой соглашусь.Я так уже и начал делать.За что спасибо.
KarmaBot
@KarmaBot
Dec 06 2017 08:36
Спасибо (+1) для @jhaoda принято! Текущая карма +1641.
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:07
Всем привет. Есть вопрос. Как сделать байндинг модели с собственной логикой? Необходимо что-то типа этого в провайдере
$this->app->bind(User::class, function ($app, $id) {
  return User::find($id);
//  return $app[UserRepositoryInterface::class]->findById($id);
});
Просто у меня закэшированный репозиторий, так что нужно доставать юзера через репозиторий.
Чтобы после этого работал Route Model Binding, Dependency Injection...
В гугле не нашел...
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:13
    protected $cachedRepos = [
        UserRepositoryInterface::class => [
            'repo' => UserRepository::class,
            'cachingRepo' => CachingUserRepository::class,
            '_data_source_class' => User::class,
        ],
    ];

    protected function registerCachingRepos()
    {
        foreach ($this->cachedRepos as $interface => $data) {
            if (!array_key_exists('type', $data)) {
                $data['type'] = 'singleton';
            }

            if (!array_key_exists('lifetime', $data)) {
                $data['lifetime'] = config('cache.lifetime');
            }

            $this->app->{$data['type']}($interface, function ($app) use ($data) {

                $repo = new $data['repo']($data['_data_source_class']);

                $cache = $app['cache.store'];

                $cachingRepo = new $data['cachingRepo']($repo, $cache, $data['lifetime']);

                return $cachingRepo;
            });
//            $this->bindModel($data['type'], $data['_data_source_class'], $interface);
        }
    }
KarmaBot
@KarmaBot
Dec 06 2017 11:13
@cvdeveloper13, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:14
Вот так делаю байндинг репозиториев. Хочу сюда добавить байндинг модели.
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:22
    protected function bindModel($type, $class, $interface)
    {
        $this->app->{$type}($class, function ($app, $id) use ($interface) {
            $instance = $app[$interface];

            if ($instance instanceof RepositoryInterface) {
                return $instance->find($id);
            }
        });
    }
Может что-то типа такого?
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:35
Необходимо что-то похожее на Route Model Binding
public function boot()
{
    parent::boot();

    Route::bind('user', function ($value) {
        return App\User::where('name', $value)->first() ?? abort(404);
    });
}
Только не explicit, а implicit.
Coryphaeus
@cvdeveloper13
Dec 06 2017 11:58
Кажется нашел решение в классе ImplicitRouteBinding. )
DaGlob
@daglob
Dec 06 2017 12:07
всем привет
Coryphaeus
@cvdeveloper13
Dec 06 2017 12:12
@daglob Привет
Coryphaeus
@cvdeveloper13
Dec 06 2017 12:28

Заработало!)

    protected function bindModel($type, $class, $interface)
    {
        $this->app->{$type}($class, function ($app, $args) use ($interface, $class) {
            $repo = $app[$interface];

            $parameters = Route::current()->parameters();

            foreach (Route::current()->signatureParameters(UrlRoutable::class) as $parameter) {
                if (array_key_exists($parameter->name, $parameters)) {
                    $parameterName = $parameter->name;
                }

                if (array_key_exists($snakedName = Str::snake($parameter->name), $parameters)) {
                    $parameterName = $snakedName;
                }

                if (!isset($parameterName)) {
                    continue;
                }

                $parameterValue = $parameters[$parameterName];

                if (!$model = $repo->find($parameterValue)) {
                    throw (new ModelNotFoundException)->setModel($parameter->getClass()->name);
                }

                return $model;
            }


            throw (new ModelNotFoundException)->setModel($class);
        });
    }

Правда незнаю, будет ли работать Excplicit Route Model Binding. Но с implicit пашет)

KarmaBot
@KarmaBot
Dec 06 2017 12:28
@cvdeveloper13, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
dimaxz
@dimaxz
Dec 06 2017 13:05
привет
простите за ламерский вопрос но зачем выносят код на уровень выше public_html в app ?
Artem Pugachev
@temasby
Dec 06 2017 13:07
@dimaxz ну как минимум нельзя напрямую к файликам постучаться :)
dimaxz
@dimaxz
Dec 06 2017 13:07
так там вроде через apach/nginx не даст распечатать файл
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 14:01
@dimaxz если через задницу настроено, то даст
да и даже не через задницу
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 14:08
@dimaxz лови ответ: https://www.google.ru/search?q=ext%3Aenv Например: http://uklaomao.cn/.env
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:24
@berpcor пожалуйста, ознакомься с правилами этого чата: https://gitter.im/LaravelRUS/topics/topic/582f01c2004785313cbfb669/devyat-krugov-chata?source=orgpage
berpcor
@berpcor
Dec 06 2017 18:25
Кабздец. Русские.
Ошибочка.
Не сталкивались с такой проблемой?
Да, чат о Laravel. Разрабатываю, естественно, на нем. )
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:26
@berpcor какой?
berpcor
@berpcor
Dec 06 2017 18:27
Браузер, сцубака, перестал давать изменить свой размер.
Завис, перезагрузился.
И теперь минимальная ширина - 492 px.
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:27
@berpcor а лара тут причём?
berpcor
@berpcor
Dec 06 2017 18:27
До этого около 200-300 было.
В это время работал на ней.
Jahoda что, забанили?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:28
@berpcor
1) Ты не в тот чат пишешь: https://gitter.im/LaravelRUS/offtop
2) Мы все переслились давно из гиттера в дискорд. Эта группа больше не поддерживается и вполне возможно будет удалена.
berpcor
@berpcor
Dec 06 2017 18:29
Как давно?..
Год не заходил...
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:30
давно
berpcor
@berpcor
Dec 06 2017 18:30
Ты не в тот чат пишешь: https://gitter.im/LaravelRUS/offtop
Эта группа актуальная?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:30
@berpcor кажется я уже ответил =)
berpcor
@berpcor
Dec 06 2017 18:31
Кажется я не понял. )
Поэтому переспросил. )
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:32
@berpcor тогда повторю
2) Мы все переслились давно из гиттера в дискорд. Эта группа больше не поддерживается и вполне возможно будет удалена.
berpcor
@berpcor
Dec 06 2017 18:34
По ссылке другой канал, не этот, верно? Не поддерживается эта группа, в которой мы пишем, но работает та, которая по ссылке, при этом все пересели в дискорд. Или и группа по ссылке не поддерживается и нужно сразу сваливать в дискорд?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2017 18:34
@berpcor группа != канал
@berpcor https://vk.com/page-53758340_46637908 см. раздел "Чат"
berpcor
@berpcor
Dec 06 2017 18:37
С гитхаба уже не зайти... Оффтоп еще пока будет работать?
projct1
@projct1
Dec 06 2017 20:38
подскажите плз как сделать чтобы все урлы и роуты всегда генерились https?