• Мониторинг серверных логов nginx, php-fpm, mysql?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    https://www.elastic.co/elk-stack
    Самый популярный стэк для логинга наверно.
    Ответ написан
    2 комментария
  • Проверять ли массив для foreach?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    $this->orderRepository->getList();

    Если getList вернул null вместо пустого итерируемого объекта, то это имхо неправильный дизайн самого getList
    Ответ написан
    1 комментарий
  • Какую CMS выбрать для создания сайтов на заказ?

    Я тоже хочу порекомендовать October CMS. Она на сегодня лучшая, построенная на компонентах Laravel. Но обманываться не стоит, разработка на October не то же самое. Но разрабатывая на October вы получите:
    • отличный DX, нужно просто попробовать;
    • CLI для автоматизации решения задач;
    • самый популярный PHP-шаблонизатор Twig;
    • действительно исчерпывающую документацию;
    • возможность удобного совместеного использования с Laravel (кпример комплексного проекта - 2doc.by - October CMS, api.2doc.by - Lumen, medcrm.by - Laravel);
    • аскетичность из коробки, следование философии Unix, что позволяет не быть изначально заточенной под конкретный тип проекта и не содержать в себе неиспользуемую проектом функциональность;
    • отличный скафолдер для разработки кастомной функциональности под нужды проекта;
    • непрерывно растущую базу плагинов с августа 2015 до мая 2017 росто составил 75% со 130 до 515;
    • непрерывный рост интереса сообщества к платформе, выраженный в приросте звезд на гитхабе с 3000 в июне 2015 до 6950 в мае 2018;


    Можно продолжать долго, если будет желание и необходимость. =) Из минусов можно отметить слабый рост количества готовых шаблонов, не такое большое количество дополнений в сравнении с динозаврами рынка CMS. Не минус, но важный момент, что на October вы будете именно программировать, это как порог входа для неквалифицированных разработчиков, так и дополнительные возможности для квалифицированных.

    Что касается важной темы E-Commerce, есть несколько готовых дополнений разной степени качества и функциональных возможностей. Я порекомендую Shopaholic, т.к. имею непосредственное отношение к проекту и головой могу отвечать за его качество. Проект пока очень молодой, меньше полугода после релиза и тем не менее, отзывы наилучшие от сообщества (1, 2, 3, 4, 5, 6, 7 и т.д.). Вот неболшая статья в нашем блоге про Shopaholic.

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

    Единственной в некоторой степени проблемой выбора не самой известной платформы может стать ее "продажа" клиентам. Но мы успешно с этим справлялись, работая 7 лет с MODX в мире, где правили Wordpress (весь мир) и Bitrix (СНГ). А последние 2,5 года также успешно справляемся с October в мире, где правят Wordpress и Bitrix и это еще теперь пытается делать MODX (СНГ).

    Надеюсь, был полезен. =)
    Ответ написан
    Комментировать
  • Как избавиться от быдлокодинга на PHP?

    Stalker_RED
    @Stalker_RED
    phptherightway, psr (переводы есть, если что)
    Laravel, Symfony, Yii
    Ответ написан
    Комментировать
  • Как правильно передать model в layout в yii2?

    @myphpscript
    public function run() {
    		
    		
    		return $this->render('callbackform', [
    			'model' => new Callback(),
    		]);
    	}


    в frontend/widgets/views делаете вьюшку с формой callbackform.php типа такой
    <?php
    use yii\helpers\Url;
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    ?>
    
    <div id="callback">
        <?php $form = ActiveForm::begin([
    	    'id' => 'callback-form',
    	    'enableAjaxValidation' => true,
    	    'action' => Url::to(['site/callback']),
    	    'validationUrl' => Url::to(['site/callback']),
    	]); ?>
    	
            <?= $form->field($model, 'name')->textInput([
    			'placeholder' => 'Имя',
    		])->label(''); ?>
    		
    		<?= $form->field($model, 'phone')->textInput([
    			'placeholder' => 'Телефон',
    		])->label(''); ?>
    		
    		 <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    
        <?php $form->end(); ?>
    </div>


    в контроллере site/callback валидацию и отправку
    Ответ написан
    1 комментарий
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Какой смысл преподавать в вузах жутчайшую математику?

    Zifix
    @Zifix
    Barbatum
    Как говорил наш преподаватель по матану — вы, конечно, все это забудете, но человек который это осилил, и который нет — это два разных человека по уровню развития мышления.
    Ответ написан
    Комментировать
  • Как загрузить и вывести из базы данных файл?

    Зачем загружать в БД файл, нагрузка будет очень высокой. Лучше храни файл обычным образом, а в БД храни только информацию о нём.
    Ответ написан
    3 комментария
  • Народ, м. б. у кого возникала такая ситуация: На работе у одного компа постоянно в обед пропадает инет?

    Stalker_RED
    @Stalker_RED
    Главбух выдергивает роутер из розетки и включает в нее чайник. Если хватит смелости - отберите чайник у главбуха!
    Ответ написан
    Комментировать
  • Что делать веб разработчику, если уже всё придумано?

    Stalker_RED
    @Stalker_RED
    Идеи приложений: https://www.reddit.com/r/AppIdeas/
    Идеи вообще: https://www.reddit.com/r/Lightbulb/
    Подобных списков десятки. Бесплатно, без СМС.
    Ответ написан
    9 комментариев
  • Как обычно проводятся тесты на фронтенде?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Основа по тестированию есть у Кантора: learn.javascript.ru/testing
    По реакту есть хороший курс на udemy (EN) https://www.udemy.com/react-tdd (10$)
    По redux текстом в доках - https://redux.js.org/recipes/writing-tests
    На хабре полно информации. Ну и как вам уже написали - в гугле миллион ссылок.
    Ответ написан
    3 комментария
  • Как стать Junior Java Developer, имея немалый опыт разработки на этом же языке?

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

    Пишешь резюме, указываешь свой опыт, идешь на собеседование:

    1) Либо тебя берут
    2) Либо тебе говорят, что бы безрукий мудак (уточняешь почему).

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

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

    Привет.

    Всегда использую модель боли:

    1) Смотришь задачу
    2) Пытаешься её решить
    3) Понимаешь, что ты тупой идиот, который ничего не может.
    4) Поднимаешь в помощь гугл
    5) Поднимаешь в помощь литературу
    6) Спрашиваешь ребят на тему: "почему так, а не иначе".
    7) Выполняешь задание, осознавая, что ты тупой, раз на решение этой задачи тебе пришлось потратить столько времени.

    Повторить до бесконечности, и ты станешь профи.
    Ответ написан
    7 комментариев
  • Практическое изучение PHP. C чего начать? Где брать материал?

    @sidni
    Php Developer
    Классическое начало всех начинающих PHP девелоперов
    написать простой блог (чистый или с помощью фреймверка)
    простая админка (в основном служит для тренировки регистрации, может быть разграничения прав, и сервисы по редактированию создания категорий и статей, может быть комментарии)
    простой фронтенд (для отработки всяких выводов данных (пагинации, аяксовых запросов (к примеру подгузки этих самых комментов или статей) и т. д.)
    Ответ написан
    4 комментария
  • Какие есть книги для новичков в PHP? Самоучители?

    Сначала https://www.ozon.ru/context/detail/id/137538198/
    Потом выбираете фреймоврк, пишите несколько проектов, читаете мануалы
    В процессе https://www.ozon.ru/context/detail/id/33506422/
    Потом только практика
    Ну и сопутствующее - сети, базы данных, unix
    Ответ написан
    6 комментариев
  • Где найти хороший мануал по regexp?

    @iluwa
    https://habrahabr.ru/post/349860/

    лучшая статья по регуляркам(из мною прочитанных офк). И даже тесты в коробке.
    Ответ написан
    Комментировать
  • Почему 0 == null // false?

    @bormor Автор вопроса
    "Значения null и undefined равны == друг другу и не равны чему бы то ни было ещё. Это жёсткое правило буквально прописано в спецификации языка." И.Кантор
    Ответ написан
    Комментировать
  • Как найти номер в массиве по шаблону?

    @eternalfire
    <?php
    $mask = 'abab';
    
    $rgPattern = array(
        'aaaa'   => '/(\d)\1{3}/',
        'aabb'   => array(
            '/(\d)\1(?!\1)([^\1])\2/',
            '/(\d)\1([^\1])\2([^\1\2])\3/'
        ),
        'abab'   => array(
            '/(\d)([^\1])(?:\1(?!\1)\2){1}/',
            '/(\d)([^\1])\1\2\1\2/'
        ),
        'aabbcc' => '/(\d)\1([^\1])\2([^\1\2])\3/',
        'ababab' => '/(\d)([^\1])\1\2\1\2/',
        'abcabc' => '/(\d)([^\1])([^\1\2])\1\2\3/'
    );
    
    $rgNum = array(9096223434, 9096660865, 9096225151);
    
    $pattern = $rgPattern[$mask];
    
    $result = array_filter($rgNum, function($num) use ($pattern) {
       
        $num = preg_replace('/\D/', '', $num);
       
        if(is_array($pattern)) {
            return (preg_match($pattern[0], $num) && !preg_match($pattern[1], $num));    
        }
       
        return !!preg_match($pattern, $num);
    });
    
    print_r($result);
    Ответ написан
    1 комментарий