Может войдёшь?
Черновики Написать статью Профиль
antoha75

antoha75

Вступил в наши ряды: 20 мая 2016

Замечен в последний раз: 25 мая 2017

Не писал на форуме

Вы сможете отправить письмо, если войдёте

Комментарии (3)

antoha75

Смотрел я Laravel Scout. Не очень убедительная штука. Во-первых, ясно, что Тейлор за Algolia, т.к. она платная и у него конечно есть тут коммерческий интерес. Поддержку Elasticsearch он то добавлял, то исключал, потом опять включал. Есть в его действиях какая-то непоследовательность. Ему даже в твиттере об этом кто-то написал.

Поддержка бесплатного и прекрасного Elasticsearch в Laravel Scout очень ограничена. Например, там нет агрегаций. Вывод такой — вместо использования скаута можно спокойно использовать полнотекстовый поиск mysql. А если нужен серьезный поиск по большой базе, то гораздо лучше поставить стандартный php-клиент от сообщества Elasticsearch, который может реально все!

antoha75

Да! Согласен с автором. Не начинайте с документации, вводит в ступор новичка. Тоже через это проходил. Думал, сейчас за недельку прочитаю и во всем разберусь, ха-ха. Фасады, провайдеры, сервис контейнер и т.д. и т.п. что, зачем, почему. Реально сложно, много специфической терминологии.

Мне помог Jeffry Way. I love this guy! Лучше препода не видел и не слышал. Полгода его смотрел платно, по 9 баксов в месяц. Все разжевывает, показывает, успокаивает, мол, не переживай, если вдруг ничего сейчас не понял.. С юмором. Но надо знать английский, конечно. Так что, лучше с него и начинать (с английского:) Потом из интереса скачал и бегло посмотрел один наш отечественный инфопродукт на тему ларавел. Ну, не то, конечно. Вроде вижу, что сам препод в теме, но объясняет слабо. У всех наших почему-то трудности с русским языком. Кошпыряют, экают и т.д. И еще очень много писанины, мол, ларавел очень гибкий — можно написать так, а можно так, и вот вам еще 10 способов. А зачем, а как лучше, не понятно.

И еще я выработал привычку писать вопросы в гугле или stackoverflow сразу на английском, информация 100% находится в избытке, чего пока не скажешь про русскоязычный сегмент.

Всем новичкам удачи в освоении замечательного фреймворка Laravel!

antoha75

Я тоже столкнулся с этой проблемой в ларавел при изучении темы пагинации для сео. Сделал все практически так же, как и автор. Унаследовал LengthAwarePaginator, добавил условие $page>1.

Единственное отличие — логику редиректов я реализовал не прямо в контроллере, а изолировал ее в Middleware:

PHP
public function handle($requestClosure $next)
    {
        
// сразу определим есть ли пагинация на странице
        
$page $request->input('page') ?? false;

        
// пагинации нет, отправляем запрос дальше
        
if ($page === false) {
            return 
$next($request);
        }

        
// здесь логика редиректов, если с номером страницы что-то не так
        
.....

        return 
$next($request);
    }
}

Дальше добавил этот посредник в группу web (т.е. для всех запросов).
Плюс в том, что это может быть применимо не только для одного контроллера. А в самом контроллере меньше кода.

Продолжая разбираться с темой пагинации, также решил передавать объект пагинатора в основной layout. И там реализовал для гугла rel='prev' и rel='next', а также rel='canonical' при необходимости, задействовав для этого методы LengthAwarePaginator (чтобы понимать на какой странице нахожусь).

P/S Изучив кучу материала на эту тему, так до конца и не понял, как в итоге лучше всего поступать с метатегами для яндекса и гугла одновременно :( Авито делает canonical на первую страницу (причем с каким-то гео-параметром), хотя это вроде бы неправильно. Другие вообще закрывают ссылки на пагинацию, короче понимай как хочешь...