Laravel по-русски

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

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

#26 Re: Laravel 5.x » Стоит ли переходить с Yii2? » 25.04.2018 11:09:06

Какое-то время работал с Yii2, был приятно удивлен коллегами, они были сильные разработчики (команда - 5 человека включая меня). Хоть я и не освоил Yii хорошо, но видел код своих коллег, по которому и делал свои выводы о этом фреймворке.

Мой ответ такой - я признаю только Laravel и Symphony.

По поводу виджетов - есть речь о админке, то для Laravel существуют пакеты разной сложности под это дело.
Использовать виджеты для пользовательского-клиентского интерфейса - сомнительное дело.

#27 Re: Laravel 5.x » Помогите разобраться со статусами » 24.04.2018 16:36:24

или

      <a href="{{  route('admin.confirmUser',$user->token)  }}"
                        title="{{ trans('admins.confirmUser') }}">
                        @if ($user->verified)
                            <i style="color:green;" class="fa fa-check-circle" aria-hidden="true"></i>
                        @else
                            <i style="color:red;" class="fa fa-check-circle" aria-hidden="true"></i>
                        @endif
                        </a>

#28 Re: Laravel 5.x » Помогите разобраться со статусами » 24.04.2018 16:35:53

public function confirmUser ($id)
    {
        User::whereId($id)->firstOrFail()->confirmEmail();
        return redirect('admin/users');
    }

#29 Re: Хорошие практики (FAQ) » Каким должно быть соотношение "толщины" m-v-c? » 12.04.2018 15:07:58

Местами спорно, синтаксис не очень, но в целом фичи ларавела используются https://github.com/bestmomo/laravel5-example
здесь пример модульной архитектуры https://github.com/bstrahija/laravel-modules-example (пакетов для модульной загрузки ларавела много, разных. единого соглашения по модулям и их загрузке - нет).

#30 Re: Хорошие практики (FAQ) » Каким должно быть соотношение "толщины" m-v-c? » 12.04.2018 14:19:08

По всей видимости, все не так smile

Уже как-то публиковал эту ссылку на laravel.ru
https://ahrameev.ru/article/why-do-php- … cture.html

Посмотрите какие нибудь хорошие проекты на гитхабе, так-же всем новичкам рекомендую не пожалеть пару баксов на оплату https://laracasts.com/

Ну, а ваш вопрос

Что я не так делаю?

это тема отдельной книги.

#31 Re: Laravel 5.x » Вопрос про сессии » 08.04.2018 14:47:45

А как сессия должна появится у первых пользователей?
В чем идея такого подхода?

#32 Re: Laravel 5.x » Файловое хранилище Storage Помогите разобраться » 06.04.2018 15:42:22

Storage::put('images/folder/qqq/myfilename.txt', file_get_contents($request->file('file')->getRealPath()));

Ну и UploadFile можно просто через ->move сохранять.

#33 Re: Laravel 5.x » Исключения + PHP SDK VK, всю голову сломал ... помогите товарищи » 02.04.2018 12:17:42

try-catch ? http://php.net/manual/ru/language.exceptions.php

$vk = new VKApiClient(); 
try { 
  $response = $vk->wall()->delete($access_token, array(             
    'owner_id' => $owner_id, //у группы отрицательное поле
    'post_id' => $post_id,
  ));
} catch (\Exception $e) {
  $response = new MyResponseClass($e->getMessage());
}

#35 Re: Laravel 5.x » Безопасность кода » 01.04.2018 14:44:25

А если поставить google recaptcha на покупку каждого предмета? Прокатит?

Это не решение проблемы, а уменьшение вероятности.
Proger_XP показал достаточное и простое решение проблемы, если оно тебя не устраивает - то остальное просто игра в "верю, не верю".

Рекаптча поможет, косвенно.

#36 Re: Laravel 5.x » Безопасность кода » 30.03.2018 22:03:02

Вы назвали решение - универсальным. Я привер пример "Вот же, смотрите, не универсальное".

В этой теме речь идет об интернет-магазине

Выходит то решение не универсальное. Верно?
А специфично для интернет-магазинов, маленького и среднего оборота.

Если вы считаете, что кто-то выразился слишком категорично - так поправляйте, восстанавливайте "правило последнего впечатления". Критика - это нормально. В споре рождается истина, и пока нет перехода на личности - это тоже нормально.

Тут я конечно согласен.
Я считаю, что я привел ультимативный контраргумент.

Но, если я буду так реагировать на каждое сообщение, в котором меня некорректно поправят, то вместо форума про laravel - появится флудилка.
В большинстве случаев - мне все равно, но, вы - 1) администратор, 2) делаете это чаще всех.

#37 Re: Laravel 5.x » Безопасность кода » 30.03.2018 21:30:03

Решение вполне универсальное, только детали запроса несколько зависят от ситуации.

Могу поспорить, что все сильно зависит от общих подходов в проекте.
Как минимум - вы показали вариант для SQL баз данных. Существуют ведь и другие?
Более того, в моем случае - нагрузки настолько высокие, что если я буду на каждое списывание выполнять запрос

UPDATE users
   SET money = @money := money - :money
 WHERE id = :id AND money >= :money

То я получу очень большое проседание производительности БД из-за локов (у меня 41k rps, в основном апдейты баланса на небольшой набор кортежей).
Поэтому ваше решение - не универсальное.

P.S. @Proger_XP вы часто "врываетесь" в топик последним, цитируете кучу сообщений, поправляете их (хотя все сообщения корректные и если в чем-то некорректные - то лишь ради упрощения для читателей), тем самым жестко нарушаете баланс "правило последнего впечатления" (остается негативное впечатления о всех предыдущих комментаторов). Лично мне это доставляет негативные эмоции, ибо вместо свободного общения, я жду, когда же придет Proger_XP и перекрестит здесь все. Спасибо.

#38 Re: Laravel 5.x » Безопасность кода » 30.03.2018 16:59:31

Огромное спасибо. Действительно возможен дюп. А может быть подскажите как я могу (через какие инструменты) отправить сразу 10 запросов и купить 10 предметов по цене 1?

Огромное количество самописных магазинов подвержены этой уязвимостью. Расчет на то, что их магазин (магазин с таким багом) никому не нужен smile и на ручную модерацию.

Надо одновременно запустить кучу запросов на бэкенд. Думаю инструментов в публичном доступе много. Подсказать не смогу.
Может быть тот-же Postman так умеет.

#39 Re: Laravel 5.x » Безопасность кода » 30.03.2018 12:08:58

if ( $user->money >= $item_price  )

Вроде раньше в играх такой баг назывался "дюп".
Небезопасная для потоков проверка (Non Thread Safe).
Если у меня money = 100, а $item_price = 100. Я с легкостью могу купить хоть 10 таких итемов. Запустив кучу потоков на покупку в одно время.
Тоже самое и с max_count.
Тоже самое и с

$user->money = $user->money - $item_price;

Они все - небезопасные операции.
Решение проблемы - индивидуальное для каждого проекта.

#41 Re: Laravel 5.x » Получение модели через firstOrNew » 26.03.2018 22:32:50

$second = $first->second()->firstOrNew($request->only((new MyModel())->getFillable());

#42 Re: Laravel 5.x » Имеет ли смысл выносить SQL-запросы из контроллера в модель? » 26.03.2018 17:53:40

Пожалуйста, предложите конкретное решение, которое Вы считаете лучшим.

Предлагать конкретное решение вслепую?

Может, создать модель главной страницы и вынести туда?

Звучит не очень.

Создай просто отдельный класс, скажем в папке Common, подбери название класса, оно должно отражать, что объединяет все эти запросы.
1 метод - 1 запрос.

#43 Re: Laravel 5.x » Laravel стал практически бесполезен из-за слишком высоких требований? » 24.03.2018 13:12:19

С shared хостингами проблемы.
Но, у laravel никогда не стояла задача поддерживать такие хостинги.
VPS стоят не дорого.

#44 Re: Laravel 5.x » Проблема с полем формы типа ckeditor в SleepingOwl » 16.03.2018 14:12:47

Может быть из-за того что поле 'description' встречается несколько раз на странице?

#45 Re: Laravel 5.x » Как увеличить функциональность объектов моделей БД » 15.03.2018 23:28:37

немного покопавшись, я понял, что модель данных и экземпляр данных имеют общее только связку, но не класс.

Не понял. Что такое модель данных, а что экземпляр?

Ты получил ошибку, потому-что не стал использовать ORM (тобишь Eloquent), а сделал вывборку через \DB и получил массив stdClass[].

Используй ORM, тогда метод getUrls будет работать.

public function animals(){
    $bestiary = \App\Bestiary::query()->whereNull('inherited_id')->get();
    return view('lk/bestiary',['animals' => $bestiary, 'baseUrl' => 'bestiary']);
}

или сразу

public function animals(){
    $bestiary = \App\Bestiary::whereNull('inherited_id')->get();
    return view('lk/bestiary',['animals' => $bestiary, 'baseUrl' => 'bestiary']);
}

#47 Re: Laravel 5.x » выборка из связанной таблицы » 14.03.2018 19:24:28

Билдер и так можно собирать как хочется.
А у вас какие-то сложности с репозиторием.

Вот что я имею в виду, вы добавили проблемы. Здесь что-то не так smile

Как сделать лучше - большая тема. Посмотрите в сторону готовых репозиториев, на гитхабе они есть. Может что понравится.

#48 Re: Laravel 5.x » выборка из связанной таблицы » 14.03.2018 18:26:23

что вы имеете в виду? не совсем Вас поняла(

Это большая тема для обсуждения.

я хочу чтобы методы были как можно более универсальны для любой модели и любых отношений с ней. и соотвественно и выборки.

Когда будете "спотыкаться" об собственный репозиторий (например текущая проблема), тогда и придет осознание, что в нем не так.
Вопрос практики.

#49 Re: Laravel 5.x » выборка из связанной таблицы » 14.03.2018 15:48:51

есть join в конструкторах, есть WhereHas() я читала. но не могу привязать это все воедино. и как лучше использовать? join как-то избыточен получается если есть with с отношениями...

Плохой репозиторий...

$query->where()->whereHas()->where()->limit()->where(function($q) {$q->where()->orWhere()})

Методы билдера можно чейнить (chain) как угодно.
Формироваться запрос будет только в момент вызова ->get() (метод ->get() иногда вызывается неявно).

#50 Re: Laravel 5.x » Сокеты » 14.03.2018 12:17:39

Простой чат. Laravel. Redis. Socket.io вот в ютубе так называется видеоролик где рассказывают, большое желание понять как это использовать

Это веб-сокеты. Статей и мануалов очень много.
Если с сокетами не работал, а про HTTP знаешь только то, что адрес веб страницы начинается с этих букв - то вхождение будет сложное.

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