• Cms или фреймворк?

    1421,
    Извини, не хочется сидеть на гавнокоде 3 года.
    а я вообще работать не хочу, хочу жить на берегу океана, иметь горем из кучи девок и иметь много денег.

    Дальше то что? Не хочешь на говнокоде сидеть - иди на стойплощадку. У тебя много выбора?

    Все мы сидим на говнокоде, все. В той или иной степени он присутствует всегда.

    То, что тебя на этих говнокурсах обучили тривиальным вещам из трех строчек на фреймворке вообще ни о чем не говорит. Этому можно даже обезьянку научить. Что будет, когда тебе понадобится составить SQL на 3 экрана? Или написать иерархию классов каких-нибудь сервисов? Знания HTMl, CSS, JS должны быть на уровне.

    Твои хотелки сейчас - устроиться в автосервис по ремонту БМВ при одном умении менять лампочки на ТАЗике. Ты сначала ТАЗик научись чинить.
  • Можете привести пример, когда использовать private, а когда protected?

    Дмитрий,
    1. Ты не можешь твердо знать, особенно на этапе разработки, что нужно будет наследнику, а что - нет.
    2. Бессмысленное сокрытие свойств класса потянет за собой кучу геттеров и усложнит код.
    3. PRIVATE, по сути, это способ защиты от выстрела в ногу, когда это приведёт к фатальным последствиям. Нужно скрывать действительно то, что жизненно необходимо скрывать.
  • Можете привести пример, когда использовать private, а когда protected?

    Роман Сарваров, это не только моё мнение, это мнение выразил однажды преподаватель из какого-то минского университета, который приехал к нам в компанию в 2013 году, когда команда переучивалась с PHP на Java.

    Можете привести пример, когда лучше использовать private у функций и свойств класса, а когда лучше использовать protected?


    В данном примере я использовал статические методы и свойства, но не суть.
    Хранилище счётчиков $data доступно только через методы абстрактного класса-родителя и никак иначе к этому свойству ты не подлезешь.
    abstract class Car
    {
        private static $data = [];
    
        protected static function setCounter()
        {
            if (!isset(self::$data[static::class])) {
                self::$data[static::class] = 0;
            }
    
            self::$data[static::class]++;
        }
    
        public static function getCounter()
        {
            return self::$data[static::class] ?: 0;
        }
    }
    
    class VAZ extends Car
    {
        public function __construct()
        {
            parent::setCounter();
        }
    }
    
    class BMV extends Car
    {
        public function __construct()
        {
            parent::setCounter();
        }
    }
    
    new VAZ(); new VAZ(); new VAZ(); new VAZ(); new VAZ();
    new BMV();
    
    echo "Класс VAZ вызывался " . (VAZ::getCounter()) . ", BMV вызывался " . (BMV::getCounter());
  • С чего начать изучение программирования?

    Adakond,
    Так подождите, вроде спокойно же можно работать удаленно
    не можно и не спокойно
    уделенную работу программистом крайне сложно найти
    а без тыканья друг-друга в монитор и без очных консультаций с коллегами эта работа превратится в тягучее болото
    ты вообще представляешь, что значит поддерживать большой командный проект, когда для того, что бы что-то спросить или ответить - надо не голосом обсуждать, а писать текста писем? это ад
  • С чего начать изучение программирования?

    Kyanda,
    Не надумали ещё уходить из IT? Вы как-то писали об этом.
    каждый день об этом думаю, только куда? Свой бизес сейчас не начнешь в нынешних условиях, да и денег нет.
  • На каких сайтах есть вакансии работы модератором дискорд/телеграм и прочих каналов?

    vrazrabotchik, привет
    - мы больше вместе не работаем уже как 2 года
    - не пересекаемся практически
    - это трудозатратно и нет желания становится видеоблогерами
  • Разработка web-сайта для компании. Что выбрать?

    Adamos,
    Писать на фреймворках с нулевыми знаниями имеет смысл только проект, идущий в корзину - потому что ничего другого вначале и не получится.
    +++

    Я примерно полгода назад получил задачу - написать систему одну. Выбрал Ларавел. При всем том, что у меня был довольно солидный багаж понимания ООП и свои костыльные наработки, на изучение Ларавела пришлось потратить довольно много времени. Потом кучу времени потратил на то, что бы переписать за коллегами, которые подключились к проекту и наговнокодили изрядно, тк впервые столкнулись с хорошими практиками и о современных тенденциях в разработке ПО мало понимали. Потом бесконечный рефакторинг уже написанного кода.

    Так что да - все советы "возьми фреймворк и пиши" они непрактичны, если человек не понимает суть этих решений.
  • Как создать домен не вводя паспортные данные?

    Sanes,
    Еще один мамкин революционер.
    еще один ватник, живущий в самой распрекрасной стране мира?
  • Почему перестали работать очереди в консоле?

    Антон Шелестов,
    очереди в базе есть, названия очереди совпадает
    Очередь просто напросто не запускается, такое ощущение что просто ждет чего-то
    ошибка в коде

    Таблица failed_jobs есть? Я ларавел не из коробки юзаю, а boilerplate, там таблица с фейлами из коробки идет. В нее надо смотреть. Если её нет - создай оную.
  • Что такое mvc-паттерн на самом деле?

    kafkiansky,
    зачем тебе читать доку по ларе, лучше задать 50 вопросов на форуме о том, какой ларавел непонятный
    ты меня с кем-то попутал, вопросы о Ларавел я задаю раз в два месяца. Кстати, никто из вас правильно на вопрос и не ответил тот, программистишки.

    Так какое отношение UI development имеет к php?
    рукалицо, это еще откуда?
  • Что такое mvc-паттерн на самом деле?

    Model - это БД, возможно с проверками валидности.
    не верно

    Модель - это суть программы. Это не БД, БД к Модели вообще не имеет отношения, БД вообще может не быть в программе. Факт того, что паттерн ActiveRecord впихнули во все фрейморки, сделав неявно их частью модели, не дает право говорить, что Модель===БД.

    Модель - это ДАННЫЕ и ЛОГИКА, фактически классы приложения, сущности, отожествляемые с объектами реального мира или абстракциями и имеющие механизмы для работы с этими данными.
  • Что такое mvc-паттерн на самом деле?

    kafkiansky,
    Давай ты просто почитаешь, что такое mvc и какая ему есть замена в вебе?
    давай ты не будешь всё-же считать себя самым умным и учить жизни человека, который МВС-фреймворк написал еще когда ты в школу ходил, ок?

    Все современные фреймворки построены по паттерну МВС. Если ты прочел на Хабре про то, что "в вебе нет МВС он только в тру-языках!!!1111" то это твои проблемы, твой академический снобизм тут никого не волнует.
  • Что такое mvc-паттерн на самом деле?

    topuserman,
    По поводу - laravel, думаю это плохая идея начинать с фреймворка
    Это очень хорошая идея.

    Ты задаешь вопрос:
    и какая взаимосвязь между этими

    у тебя непонятки идут от того, что что ты пытаешься разобраться в ЧАСТНОМ случае реализации МВС-модели, которую где-то откопал.
    МВС не является паттерном, это парадигма.
    Фактически, оперируя тремя понятиями как Модель Вид Контроллер, автор фреймворка (каркаса, решения) может создать некую архитектуру, где, возможно, будет 1000 различных слоёв системы, которые будут взаимодействовать между собой, но это приложение не перестанет быть построено по схеме МВС.

    Грубо говоря, представь парадигму - АВТОМОБИЛЬ на ДВС.
    Реализация может быть любая, от Жигулей до БМВ и КАМАЗа. Реализация может отличаться в некоторых моментах, но концепция одна и тажа.

    Поэтому что бы понять концепцию, возьми решение по ссылке выше и просто посмотри, как это сделано.
  • Что такое mvc-паттерн на самом деле?

    kafkiansky,
    а mvc не существует (для веба)
    короновируса тоже не существует?
    Статья дрянь
    аргументы в стиле "сам дурак", ожидаемо от программистишек. Давай ты закроешь лучше свой рот и помолчишь, ок?

    Этот бред откуда? MVC никак не завязан на ООП.
    У нас недавно на собеседовании был человек. На вопрос, куда вы денете метод, оперирующий данными (подразумевалось, модели), он ответил, что напишет его в контроллере. И да. Человек не знал, что такое даже абстрактный класс.

    MVC не завязан на ООП, но что бы писать правильный код надо понимать суть ООП и уметь мыслить объектами, понимать в чем смысл разделения системы на слои и куда какой функционал надо девать.
  • Зачем нужен namespace в группе роутов?

    php666
    @php666 Автор вопроса
    kafkiansky, автор вопроса ПРЕКРАСНО знает как работает пространство имен и что такое автозагрузка.

    Вопрос внимательно читаем, прежде чем давать свои ответы и считать себя самыми умными.

    Еще раз - какую цель несет в себе параметр namespace в группе роутов? Его можно смело убрать и код будет рабочим.
  • Зачем нужен namespace в группе роутов?

    php666
    @php666 Автор вопроса
    JhaoDa, Я прекрасно знаю, что такое пространство имён и автозагрузка.
    Я спрашиваю про данную ситуацию.
    Как использовать namespace в группировке?
  • Как задать произвольную последовательность элементов массива?

    denism300,
    Один из них - junior, другой - middle. Оба отказались работать там после получения оффера.
    порядок вывода данных не должен зависеть от способа расположения их в массиве. Никогда. Потому, что твои данные сегодня были получены с помощью одного механизма, завтра - с помощью другого. Даже одни и теже данные можно получить с помощью одного SQL-запроса, но порядок следования может различаться. На это полагаться нельзя. Массив - это просто способ хранения хаотичных данных, а не чётко определенная структура, полагаться на массив нельзя.

    Должен быть некий шаблон, желательно с проверками, что бы исключить возможность ошибок.

    $keys = [
        'first_name',
        'last_name',
        'phone',
        'postcode',
        'country',
        'state',
        'city',
        'address_1',
    ];
    
    $data = [
        'first_name' => 'aaa',
        'last_name' => 'bbb',
        'phone' => '+4 (324) 243-20-00',
        'postcode' => '603000',
        'country' => 'RU',
        'state' => 'Санкт-Петербург',
        'city' => 'Санкт-Петербург',
        'address_1' => 'Невский пр-кт, д.1',
    ];
    
    foreach ($keys as $key) {
        if (!isset($data[$key])) {
            $data[$key] = ''; // как вариант
        }
    }
    
    // сам шаблон с данными в том порядке, в каком мы хотим
    $a = "$data[first_name] | $data[last_name] | $data[state] | $data[city] | ....";