Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5 » Правильная выборка из Базы Данных (Посоветуйте как лучше) » Сегодня 17:32:23

Твой конкретный пример не показателен. Слишком простая задача взять все записи из одной таблицы. smile

Логику уровня построения запросов выгодно выносить в репозитории или сервисы, как хочешь назови, чтобы скрыть детали реализации, сделать контроллеры проще и читабельнее и в итоге облегчить обслуживание проекта. В идеале метод контроллера содержит только валидацию (если она не вся в классе запроса), может быть проверку прав и обращение к вьюхе. Всё! Не надо там никаких цепочек eloquent или raw SQL. Должно быть разделение ответственности.

#2 Re: Общий раздел » ларавель апи » 09.08.2019 12:46:14

Хоть jwt, хоть passport, всё будет правильно smile Статей и уроков миллион, я бы читал те, которые на авторитетных площадках размещены. Типа scotch.io или tutsplus.com

Начать надо с понимания принципов rest. Типа, для чего нужны разные методы http, смысл stateless.
Второй важный момент - отладка и документирование. Пользуйся postman и описывай API по правилам apidoc. В общем, система должна быть в действиях.

#3 Re: Laravel 5 » Скелетон для фреймворка версии 5.8? » 07.08.2019 10:01:33

P.S. С нетерпением жду релиза 6.0, он обещан в августе. Отвелл сказал что это будет обычный релиз, ничего кардинального, просто так случилось, что перешли на следующий мажорный номер.
Про LTS он не упомянул, но кто знает, уже пора smile

Инфа с laravel-news.com

#4 Re: Laravel 5 » Скелетон для фреймворка версии 5.8? » 05.08.2019 14:46:07

П.С. С версией Линукс я поступаю также: LTS и выборочный апгрейд.

#5 Re: Laravel 5 » Скелетон для фреймворка версии 5.8? » 05.08.2019 14:43:49

Ты знаком с таким понятием как Long Time Support?
На сегодня Laravel 5.5 это LTS. Следующий пока не объявлен. Видимо это будет не 5.8.
Короче, если важна стабильность и ты НЕ будешь апдейтить проект каждый раз как что-то новое родится, то юзай 5.5. Это моё сугубое мнение.

Есть оговорки: некоторые пакеты таки признаны устаревшими и при composer install появляются ворнинги. Их можно проапгрейдить отдельно - вот результат и будет твоим личным скелетоном.
Я беру в основу 5.5 и обновляю Carbon и phpunit.

#6 Re: Laravel 5 » Скрытые файлов в public » 25.07.2019 20:27:22

На "голом PHP" это было бы как-то так:

header("Content-type: image/png"); // ну или другой тип какой надо
readfile("$pathToPngfile);
exit;

А на Laravel как-то так:

return response()->file($pathToFile);

Laravel должен сам позаботиться о правильных заголовках ответа.

#7 Re: Laravel 5 » Дубли страниц для СЕО » 24.07.2019 23:34:56

В таком варианте нужно будет использовать str_replace

Даже если так, можно один раз написать функцию-хелпер canonical(), впендюрить в неё всю нужную логику и использовать её в шаблонах.

#9 Re: Laravel 5 » Скрытые файлов в public » 24.07.2019 23:29:34

Ну видимо надо начать с того, что физически этих файлов не должно быть в public. Если есть авторизация доступа, значит надо отдавать файл через PHP (через роуты, контроллеры и т.д. как ты странички отдаёшь, всё так же, только тип контента другой)

#11 Re: Laravel 5 » Дубли страниц для СЕО » 23.07.2019 20:35:23

Есть как минимум два выхода: <link rel=canonical> чтобы поисковик знал правильный вариант и рерайт адреса.

https://support.google.com/webmasters/a … 9066?hl=en
https://stackoverflow.com/q/25105872/272885

#12 Re: Laravel 5 » задания в планировщике не до конца отрабатывают » 21.07.2019 07:44:46

Такой скрипт будет выполняться в один поток, поэтому хоть цикл, хоть буквально перечислить итерации, результат будет примерно как 60/(время_выполнения_процедуры_в_сек + 1).
Плюс один в скобках дрбавояет ваш sleep.

Может быть не надо всё усложнять, а наоборот, вернуться к постановке задачи и найти альтернативный подход? Что изначально требуется сделать?

#14 Re: Laravel 5 » В чем разница между Gates и Policies? » 12.07.2019 07:57:44

шлюзы и политики? smile

https://laracasts.com/discuss/channels/laravel/what-is-the-difference-between-gates-and-policies пишет:

Kinda like their names, a gate keeps someone out but a policy is kinda like the instructions telling gate who is allowed and not allowed.

Как понятно из наименований, шлюзы/ворота не пускают кого-то, а политика это что-то типа инструкции для ворот, описывающей кому разрешено и не разрешено.

#15 Re: Laravel 5 » Пропадают команды в artisan при запуске PhpStorm debug listener » 08.07.2019 06:21:24

Единственная идея - ты не в той папке запускаешь artisan. Как это может коррелировать с дебаггером я без понятия. Вероятно никак smile

#16 Re: Laravel 5 » Ошибка Package phpunit/phpunit-mock-objects is abandoned » 03.07.2019 15:39:03

С чем это может быть связано и как это лечится?

связано с тем, что пакет phpunit-mock-object больше не поддерживается. его функционал перекочевал в сам phpunit в новых версиях. поэтому старый пакет снабили такой пугалкой.

Laravel 5.5? Сегодня тоже этим озаботился, сделал такое в composer:
        "phpunit/phpunit": "~7.0"
заодно добавил обход ворнинга про carbon
        "kylekatarnls/laravel-carbon-2": "^1.0.0",
        "nesbot/carbon": "2.0.0 as 1.39.0"
и потом composer update.

#17 Re: Laravel 5 » Установка библиотеки в проект Laravel » 28.06.2019 13:12:09

На картинке структура папок в "билиотеке" подозрительно напоминает полную структуру приложения Laravel. То ли ты скопировал не туда, то ли это не библиотека.

Можешь скопировать её composer.json сюда?

#19 Прочее » Why I don’t want to use Laravel anymore » 23.06.2019 06:59:14

artoodetoo
Ответов: 1

medium.com: Moving away from magic — or: why I don’t want to use Laravel anymore

Любопытная статья. Не разделяю максимализм автора, но чтиво любопытное. На мой взгляд, Eloquent выжал из концепции ActiveRecord всё что можно, но этого неостаточно.

#20 Re: Laravel 5 » Улучшить качество загружаемой картинки laravel-image-optimizer-ом » 22.06.2019 11:11:01

Про конкретный пакет: его цель уменьшение размера картинки без или с приемлемой потерей качества.
Вот ссылка на описание используемых в нём пакетов: https://github.com/spatie/image-optimiz … tion-tools

То есть "оптимизация" здесь про размер в байтах, а не про качество.

#21 Re: Laravel 5 » Улучшить качество загружаемой картинки laravel-image-optimizer-ом » 22.06.2019 11:06:34

Качество картинки улучшить нельзя. Можно только ухудшить.
-- К.О.

#22 Re: Laravel 5 » Как подключить удаленную БД » 13.06.2019 07:47:28

То, что умеет workbench никак не про eloquent. Создайте тоннель сторонними средствами и соединяйтесь из PHP как если бы это был локальный сервер.
https://www.linode.com/docs/databases/m … te-access/

#23 Re: Laravel 5 » Как подключить удаленную БД » 13.06.2019 07:27:12

Вот здесь собака зарыта:

Проблема в том, что хостинг на котором находится БД подключен к нестандартному порту например 1122

Что значит хостинг подключен к нестандартному порту? Что это за порт, SSH? HTTP?

#24 Re: Laravel 5 » php artisan make:auth без id » 25.05.2019 12:18:49

> в комиссии сказали если у тебя логины уникальные то пусть он используеца как идентификатор.

Ох уж этот академический подход! Типа "нормальная форма подразумевает что запись уникально определяется ключём и только им. А если не только им, то надо проводить декомпозицию". Другими словами, профессора считают, что ключи должны быть натуральными, а не суррогатными. На практике же 99.999% таблиц используют автоинкрементный ключ и соответственно целочисленные внешние ключи.

Ты можешь аргументировать свой выбор тем, что ты используешь фреймворк, а значит оперируешь шаблонными решениями. Велосипедостроительство слишком дорого обходится. Именно поэтому появились фреймворки и шаблоны проектирования.

#25 Re: Laravel 5 » php artisan make:auth без id » 25.05.2019 12:00:11

проверку на уникальность в валидаторе

Это сделано

это же только половина. надо использовать уникальный ключ И проверку в валидаторе.

Теперь другой вопрос, через Auth::id() к новому  '$primaryKey' как нибудь можно обратиться...

Берём в руки отладчик и смотрим:
Auth::id() через цепочку методов читает поле модели, которое указано как primaryKey. То есть, если ты объявишь login как PK, то его и будет возвращать.

То есть тут всё просто. Засады могут случиться там, где есть связи с user. Во всех типовых примерах и готовых пакетах подразумевается что внешние ключи целочисленные и ссылаются на user.id. А его не будет.

Внешние ключи никак не завязаны на Auth::id(), они обращаются к конкретному полю таблицы по имени.

$table->foreign('user_id')->references('id')->on('users');

Подвал раздела