• Как идет процесс разработки Laravel + Angular?

    dima9595
    @dima9595
    Junior PHP
    Самый распространённый вариант, на мой взгляд, один сайт для фронта, а другой чисто для API.
    Ответ написан
    Комментировать
  • Логика написания контроллеров Laravel?

    solotony
    @solotony
    покоряю пик Балмера
    если брать laravel, то за определение "на какой странице мы находимся" ответственен роутинг.

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

    например у тебя есть страницы page1, page2, page3, page4 причем page2, page3 - дочерние для page1, а page4 - дочерняя для page3

    вычисленные URL будут page1, page1/page2, page1/page3, page1/page3/page4

    а в роутинге ты просто описываешь get('/prefix/{slug}')

    например так:

    Route::get('/p/{slug}', ['as' => 'page_by_slug', 'uses' => 'FrontController@page_by_slug'])->where('slug', '[A-Za-z0-9][A-Za-z0-9/_-]+');

    а это для чисел

    Route::get('/~{id}', ['as' => 'page_by_id', 'uses' => 'FrontController@page_by_id']);
    Ответ написан
    3 комментария
  • В чём причина постоянного переделывания кода?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Карл Вигерс "Разработка требований к программному обеспечению"
    скриншот первой страницы первой главы — про вас
    5a4e46fe7d045170343260.png
    Ответ написан
    Комментировать
  • В чём причина постоянного переделывания кода?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Причин много:
    1. Бизнесу всегда нужно срочно. Из-за этого менеджер/заказчик бьет по рукам и говорит "не до архитектуры и главное быстрее", по итогу — пилятся костыли, которые блинным комом накатываются и в определенный момент нужно переписывать куски структуры, чтобы просто иметь техвозможность работать дальше
    2. Если было жирно по ресурсами и времени изначально и такая проблема — не правильная архитектура, экономия на тестах и прочее
    3. Плохая договоренность и плохое понимание задачи с каждой стороны, у кого-то завышенные/заниженные ожидания (один сказал сделай мне приложение, второй сказал, что сделает — вина обоих в таком случае)
    4. Не всегда это плохо. Сначала быстро запустили (проверили гипотезу, получили первые деньги, инвестиции и прочее), потом переделывают планово (просто этот план может не проговорен, отсюда плохие ожидания и чувство низкого КПД, а он может высокий как раз).

    Всегда, всегда ошибка менеджмента — где-то договорились, где-то не оговорили что-то, где-то не учли, где-то нажали, где-то пренебрегли, не выяснили ожидания, где-то сэкономили на выборе разраба, и прочее,
    даже если взяли не умного разраба — это тоже вина менеджмента

    UPD: Urukhayy речь не об этом проекте?
    Может ли проект быть собран с низким качеством кода, и пользоваться большим спросом?
    Ответ написан
    Комментировать
  • Как въехать в программирование (ООП, паттерны)?

    GTRxShock
    @GTRxShock
    Full-stack developer (Symfony, Angular)
    если программируете на php 2-3 года, то пора бы перед сном почитать РНР: объекты, шаблоны и методики программирования (Зандстра) желательно в бумажном варианте.

    + Паттерны проектирования (Фримен) для общего/наглядного понимания паттернов
    + www.phptherightway.com основные тезисы
    + Рефакторинг: улучшение проекта существующего кода (Фаулер) & https://refactoring.guru/ru на будущее, к чему стремиться :)
    Ответ написан
    4 комментария
  • Как въехать в программирование (ООП, паттерны)?

    @Wentixon
    Шаблоны проектирования с человеческим лицом
    К сожалению, не успел к началу вопроса, многое уже посоветовали, но эту статейку вроде не успели еще кинуть. Недавно нашел ее и просто поразился как просто и доступно это изложено + с примерами кода на php. Просто шикарный перевод великолепной статьи!

    От себя же хочу сказать, что единственный способ понять паттерны - это столкнуться с проблемами которые они решают, ибо паттерны ни что иное как шаблоны решения каких то проблем (и предотвращения). Так что делаем вывод - нет проблем, не может быть и решений (конечно, вы просто не осознаете, что они есть, так как проект растет довольно медленно и чаще это какие то правки или добавление нового функционала, который не зависит от старого). Я очень долго пытался с ними разобраться, пробовал читать все перечисленные книги, но вроде читаешь такой и типа понимаешь, но с другой стороны какбы и нет. Вроде понятно, но где это применять хрен знает. Вообщем, как уже сказали, нужны реальные проблемы и тогда открываешь книгу с решениями этих проблем и думаешь какое решение выбрать. Это как с рецептами.. Хочешь что то приготовить, можешь как бы и сам, но не факт, что вкусно получится, тогда открываешь книгу проверенных рецептов и начинаешь применять все по шагам, опираясь при том на ингридиенты, которые у тебя имеются.

    Так что посоветую 2 варианта изучения.
    1) Тупо работаешь над сложные проектами, только действительно сложными, а не сайтиками на cms. И со временем ты начинаешь встречаться с проблемами. Тогда открываешь паттерны и тебе не придется даже как то их особо понимать, потому что это будет естевственно для тебя. Я думаю ты используешь ide вместо редактора кода. Но к примеру я помню тот момент, когда я пользовался саблаймом и знал, что есть ide, но я писал на тот момент простые вещи и когда мне говорили, почему я не юзаю ide, ведь в ней столько всего, я не понимал их потому что мне и саблайма за глаза хватало. Но пришло время, когда надо было то и се и саблайма стало мало. И тут открываю ide, а там уже есть все необходимое и думаешь в такие моменты, как я раньше этим не пользовался. А дело в том, что раньше и не надо было. Может неудачный пример, но вы поняли ) Конечно, этот вариант изучения не совсем реален, по скольку сложный проект еще найти надо, да еще попасть в команду, которая не говнокодит, так как и крупные проекты бывают достаточно плохо написаны. Но можно как вариант к примеру делать свою cms и применять в ней как можно больше паттернов.

    2) Тупо садитесь и изучаете паттерны (как и делал я). Но не просто изучаете, а к какждому паттерну придумываете как можно больше проблем, которые может у вас были или могут быть, так как паттерны в большинстве случаях любят описывать в метафорах, но чаще это получается слишком абстрактно, поэтому нужно чтобы вы придумали свои конкретные задачи, где бы вы попробовали применить этот паттерн. И второй этап - садитесь и пишите эти задачи. Тупо открываете свой яп и реализовываете паттерн. При чем несколько раз с разными проблемами.

    Также советую четко понять uml диаграммы. Таким образом, чтобы освежить паттерн вы не будете читать примеры, а просто посмотрите диаграмму и сразу вспомните, зачем он нужен и как его можно реализовать.
    Вот пожалуй и все
    Ответ написан
    1 комментарий
  • Использование свойства валидатора unique при редактировании данных?

    v_decadence
    @v_decadence
    Rule::unique('users')->ignore($user->id)
    Ответ написан
    Комментировать
  • Как правильно составить запрос в Query Builder?

    @vanillathunder
    DB::select(`p.*`)
    		->from(`posts as p`)
    		->from(`comments as c`)
    		->where(`c.post_id`, `=`, `p.post_id`)
    		->groupBy(`p.post_id`)
    		->orderByRaw(`avg(c.mark_first) DESC`)
    		->orderByRaw(`avg(c.mark_second) DESC`)
    		->orderByRaw(`avg(c.mark_third) DESC`)
    		->get();
    Ответ написан
    Комментировать
  • Eloquent. Нужно ли создавать в базе данных поле, которое будет связывать две таблицы?

    solotony
    @solotony
    покоряю пик Балмера
    Eloquent - это "надстройка" над БД. Сам по себе он ничего создавать не требует.

    В твоем случае каждый пост относится к какой-то категории. То есть в таблице 'posts' есть поле 'category_id'
    (ссылающееся на поле 'id' таблицы 'categories')

    Когда ты описываешь модели в Eloquent то указываешь эту связь

    для категории
    HasMany('App\Post', 'category_id', 'id')

    для поста
    BelongsTo('App\Category', 'category_id', 'id')

    ---
    если ты используешь отношения Eloquent для вывода постов
    Category::with('posts')
    $category->posts()

    то связывать надо

    если ты используешь where
    Posts::where('category_id', $catid)
    то связывать не надо
    Ответ написан
    Комментировать
  • Как на laravel создать собственные файлы-роутеры?

    @Barmunk
    да, это возможно, в RouteServiceProvider добавляете ваши файлы и указываете каждому namespace

    protected $webYourNamespace = 'App\Http\Controllers\Web';
    
    public function map()
        {
            $this->mapApiRoutes();
            $this->mapWebRoutes();
            //
            $this->mapYourCustomRoutes();
        }
    
    protected function mapYourCustomRoutes()
        {
            Route::middleware('web')
                 ->namespace($this->webYourNamespace)
                 ->group(base_path('routes/custom.route.php'));
        }
    Ответ написан
    Комментировать
  • Как сделать чтобы текст выпадал рандомно?

    @Div-Man
    $texts = [
      'Первый текст',
      'Второй текст',
      'Третий текст',
    ];
    
    echo array_rand($texts, 2);
    Ответ написан
    2 комментария
  • Оптимальный и быстрый путь создание нового проекта на Laravel?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    1) Зависит от проекта
    2) Зависит от проекта
    3) Зависит от проекта
    4) Делайте модули, юзайте повторно

    А как Вы оторвано от ТЗ пытаетесь ответить на подобные вопросы. Это как "на чем сделать сайт". Инструмент гибкий и подразумевает много вариантов реализации одной и той же задачи. Задача разработчика, в частности, выбрать оптимальный. А оптимальный и универсальный - это противоположные понятия.
    Ответ написан
    2 комментария
  • Нужна ли строка 'App\Model' => 'App\Policies\ModelPolicy' в списке политик или ее можно удалить?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Правильно понимаешь.
    Ответ написан
    Комментировать
  • Кто знает Админку(набор хелперов RBAC, file manager, grids, charts) для Laravel?

    amelihovv
    @amelihovv
    Фулстек веб разработчик
    Вам, как я понял, нужен backpack. В нем есть все, что вы перечислили: изначально это чисто админка с дизайном adminlte. На нее также можно поставить доп модули для работы с правами доступа, менеджер медиафайлов, просмотр логов. Все можно кастомизировать, прямо сейчас этим на проекте и занимаюсь :) Правда, он платный для коммерческого использования. Но не дорогой.
    Ответ написан
    2 комментария
  • Оптимальный и быстрый путь создание нового проекта на Laravel?

    Maksclub
    @Maksclub
    maksfedorov.ru
    1. Laravel CRUD генератор?
    Админку (в частности AdminLTE, как и CRUD в целом использую только для бекенда)

    2. Конечно все в отдельные таблицы, изучите 3 нормальную форму...
    если вы конечно не опечатались и не имели в виду не таблицы, а отдельные БД под каждую сущность (так делать не нужно в рамках обычного приложения, в микросервисах и по отдельным БД распихивают :)

    3. Используйте готовые решения, Composer вам в руки, также делайте свои пакеты и переиспользуйте и их

    4. Погуглите модуль для пользователей для Ларки, также у нее все уже есть под капотом, вот подобрал вам ответов :)
    Какой вы используете RBAC для laravel 5.3?
    Что вы используете в Laravel для авторизации и RBAC?
    Кто знает Админку(набор хелперов RBAC, file manager, grids, charts) для Laravel?

    Более конкретно подсказать не смогу -- не использовал Ларавел никогда :(
    Ответ написан
    Комментировать
  • Телефон в качестве логина - как порешать?

    @bkosun
    Пользователь должен указывать телефон в международном формате, Вам достаточно просто удалять все лишние символы при регистрации/авторизации, а проверять телефон можно так (все страны):

    function phone_number($phone)
        {
            return (bool)preg_match("/^\+?([87](?!95[4-79]|99[08]|907|94[^0]|336|986)([348]\d|9[0-6789]|7[0247])\d{8}|[1246]\d{9,13}|68\d{7}|5[1-46-9]\d{8,12}|55[1-9]\d{9}|55[12]19\d{8}|500[56]\d{4}|5016\d{6}|5068\d{7}|502[45]\d{7}|5037\d{7}|50[4567]\d{8}|50855\d{4}|509[34]\d{7}|376\d{6}|855\d{8}|856\d{10}|85[0-4789]\d{8,10}|8[68]\d{10,11}|8[14]\d{10}|82\d{9,10}|852\d{8}|90\d{10}|96(0[79]|17[01]|13)\d{6}|96[23]\d{9}|964\d{10}|96(5[69]|89)\d{7}|96(65|77)\d{8}|92[023]\d{9}|91[1879]\d{9}|9[34]7\d{8}|959\d{7}|989\d{9}|97\d{8,12}|99[^4568]\d{7,11}|994\d{9}|9955\d{8}|996[57]\d{8}|9989\d{8}|380[3-79]\d{8}|381\d{9}|385\d{8,9}|375[234]\d{8}|372\d{7,8}|37[0-4]\d{8}|37[6-9]\d{7,11}|30[69]\d{9}|34[67]\d{8}|3[12359]\d{8,12}|36\d{9}|38[1679]\d{8}|382\d{8,9}|46719\d{10})$/", $phone);
        }
    Ответ написан
    Комментировать
  • Рекурсивный вывод категорий Laravel?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Избавьтесь от меода, испольуйте связь на себя
    public function children()
    {
    return $this->hasMany('Category', 'parent_id', 'id');
    }

    При выборке для оптимизации можно использовать Category::with('children'). Для вывода лучше написать рекурсивный blade helper, или использовать рекурсивный инклуд, проверяя наличие детей.
    // template_name.blade.php
    @foreach($items as $item)
    @if ($item->children)
        @include('template_name', ['items' => $item->children])
    @endif
    @endforeach
    Ответ написан
    2 комментария
  • Online-оплата для магазина на Laravel 5.2 для Украины и России?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Используйте omnipay, под него есть множество драйверов различных систем для оплаты, от интеграции банковских мерчантов до робокассы или вебмани.
    https://github.com/ignited/laravel-omnipay
    Ответ написан
    1 комментарий
  • Как хранить деньги (баланс/цена) в БД?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Лучше всего хранить в целых, ибо с вещественными числами можно запросто поймать проблем при округлении.
    Ответ написан
    2 комментария