• Какой выбрать способ realtime?

    miraage
    @miraage
    Старый прогер
    Laravel умеет отлично делать broadcast через redis.
    Создается пост - стреляете событие. Отдаете json.
    На клиенте принимаете данные, создаете блок.

    laravel.com/docs/5.1/events#broadcasting-events

    // EDIT

    Смотрите пример реализации через redis.
    Так же, должен быть настроена queue, тоже через redis.
    Всё описано в документации. А примерно так выглядит код.

    // .env
    BROADCAST_DRIVER=redis
    
    // app/http/controllers/PostController.php
    
    class PostController extends Controller
    {
        public function store(Request $request)
        {
            $post = Post::create($request);
            
            Event::fire(new PostCreated($post));
            
            return $post;
        }
    }
    
    // app/events/PostCreated.php
    
    class PostCreated extends Event implements ShouldBroadcast
    {
        use SerializesModels;
        
        private $post;
        
        public function __construct(Post $post)
        {
            $this->post = $post;
        }
        
        public function broadcastOn()
        {
            return [
                'post_created',
            ];
        }
        
        public function broadcastAs()
        {
            return 'post_created';
        }
        
        public function broadcastWith()
        {
            return $this->post;
        }
    }
    Ответ написан
    6 комментариев
  • Можно ли увеличить int-поле на единицу через один mysql запрос?

    @1-800-IT
    новичок
    SET `int_field_name` = `int_field_name` + 1 ?
    Ответ написан
    Комментировать
  • Какой тут может быть *овнокод?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) Форматирование кода ужасно. Начнем с этого.
    2) что тайтл делает в контроллере?
    3) что за 1 и 2, что они значат? Стоит заменить на константы хотя бы.
    4) уже пару лет можно использовать сокращенный синтаксис массивов
    5) У вас же есть IoC, почему вы вызываете new CompanyList()? К чему это вообще относится? Что происходит?

    Короче... ужас... контроллер это то место, по которому должно быть понятно что там происходит. Что-то в этом духе:

    class CompanyListController {
    
        /**
         * @var CompanyRepositoryInterface
         */
        private $companyRepository;
    
        function __construct(CompanyRepositoryInterface $companyRepository)
        {
             $this->companyRepository = $companyRepository;
        }
    
        public function getIndex() 
        {
                $companies = $this
                     ->companyRepository
                     ->getCompanyByUser(Sentry::getUser()->id, Input::get('status', false))
                ;
    
                return View::make('dashboard.account')->with(compact('companies'));
        }
    Ответ написан
  • Какой тут может быть *овнокод?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Как минимум:
    — смесь CamelCase и snake_case,
    — смесь compact() и View::make->with().
    Ответ написан
    4 комментария