• Как с помощью JS или PHP обрезать последнюю часть url?

    0xD34F
    @0xD34F Куратор тега JavaScript
    url.match(/.+\//)[0]
    
    // или
    
    url.replace(/[^\/]+$/, '')
    
    // или
    
    url.slice(0, url.lastIndexOf('/') + 1)
    
    // или
    
    url.split(/(?<=\/)/).slice(0, -1).join('')
    
    // или
    
    [...url].reduceRight((acc, n) => (acc || n === '/') ? n + acc : acc, '')
    Ответ написан
    2 комментария
  • Трудно ли будет перенести сайт с yii2 на yii3?

    Decadal
    @Decadal
    Сначала вы подождете stable yii3, потом php 8, а потом ИИ будет писать программы вместо нас. Делайте на том что есть сейчас. Оно рабочее.
    Ответ написан
    Комментировать
  • Какие есть рабочие решения для работы с websockets в PHP кроме Ratchet?

    @krypt3r
    Пункт 4 https://github.com/morozovsk/yii2-websocket вполне работает уже несколько месяцев в связке с nginx.
    дебаггер Yii показывает что в нём есть ошибка

    Не знаю, при чём тут дебаггер Yii, если WS-сервер — это консольное приложение.
    Ответ написан
    Комментировать
  • Bootstrap-Vue - В чём фишка данного симбиоза?

    copist
    @copist
    Empower people to give
    Расскажите плиз о технологии, и чем развёрнутей, тем лучше.

    Вот захотел ты сделать сайт SPA или PWA с любимой тебе вёрсткой на базе Twitter Bootstrap и любимой библиотеки Vue. Сверстал. Поповеры не появляются, дропдауны не выпадают, модалки не открыватся, формы не валидируются, клики не работают.

    Оригинальный Twitter Bootstrap имеет поддержку интерактивных элементов на Javascript. Реализовано это на библиотеке jQuery. Если делаешь на Vue, придётся подключать ещё и jQuery, что лишняя библиотека на 100+ килобайт, что, конечно, не катастрофа (пока ты не на мобилке).

    Vue работает с состояниями привязывает данные к отображению, а jQuery работает с DOM и событиями. Это вопрос производительности. Работа JQuery начитается когда загружен и распарсен JS и HTML. Работа Vue начинается в тот момент, когда загружен и распарсен JS, то есть чуть раньше. jQuery модифицирует DOM на лету, перестраивая текущий документ. Vue работает с shadow DOM, а затем подсовывает уже готовую интерактивную страницу в пустой документ, что быстрее (разница в секунды на десктопе, десятки секунд на м...).

    Vue реализует компонентную парадигму. Куски страницы являются изолированными кусочками кода (HTML CSS JS), которые цепляются между собой динамически, а обмениваются данными через аттрибуты и события. Предположим, что вы решили следовать компонентной парадигме, тогда согласно вот такому примеру нужно будет увязать самостоятельно все интерактивные компоненты. Компонента-кнопка. Компонента-поле ввода. Компонента-форма. Компонента-контейнер. Получается около 50 компонент. Для некоторых надо будет написать логику на jQuery. Если посмотреть на код jQuery этих микрокомпонент, то он окажется несложный, его вполне можно переписать на Vue. Ну там класс заменить или клик отработать. Когда от кода jQuery не останется следа, его можно будет из проекта удалить.

    И вот получается Bootstrap-Vue

    На компоненты побили. От Jquery избавились. Написано в единой парадигме. Работает быстрее.

    Добавляем тот факт, что в Vue можно не импортировать компоненты, которые не нужны (например, я не работаю с дропдаунами и модальным окнами) и код становится меньше, грузится быстрее, работает быстрее.

    Так же будет Не лишним оценить технологию: плюсы, минусы, стоит ли вообще с этим работать ...

    Это сам изучай и сравнивай. Навыки и опыт воздушно-капельным и через Internet не передаётся
    Ответ написан
    4 комментария
  • Yii2 или Laravel?

    hrhr99
    @hrhr99
    Отведал и Yii и Laravel

    На мой взгляд Laravel проще, так как очень похож на Codeigniter.

    Но в Yii очень много из коробки. Gii, CRUD.

    И вот сейчас делаю проект на laravel и очень лениво ручками писать то, что в Yii генерируется за пару минут.
    Ответ написан
    2 комментария
  • В чём отличие supervisorctl reread и update?

    miraage
    @miraage
    Старый прогер

    supervisorctl reread

    This command only updates the changes. It does not restart any of the managed applications, even if their configuration has changed. New application configurations cannot be started, neither. (See the “update” command below)



    supervisorctl update

    Restarts the applications whose configuration has changed.
    Note: After the update command, new application configurations becomes available to start, but do not start automatically until the supervisor service restarts or system reboots (even if autostart option is not disabled). In order to start new application, e.g app2, simply use the following command:
    supervisorctl start app2


    // EDIT

    Ну разжуем.)

    Поменяли код воркеров - restart.
    Поменяли конфигурацию (кол-во процессов, логи, итд) - reread (дает супервизору инфу, что поменялся конфиг) + update (перезапускаем только те воркеры, для которых поменялась конфигурация) .

    Если есть вопросы - пишите еще.
    Ответ написан
    2 комментария
  • Как исправить ошибку nginx 403 forbidden?

    Murmurianez
    @Murmurianez
    JavaScript Developer
    Сейчас дам хреновый ответ, но он поможет двинуться в правильном направлении.

    В самом начале nginx.conf есть строчка user www-data;
    www-data это группа пользователей с чьими правами будет запускаться nginx.
    Хреновая часть ответа: чтобы не мучаться можно прописать: user your_root_user_name;
    Оно заработает, но это конечно не для продакшена, но для какого-нибудь тестового чтобы голову не морочить может быть и ОК. А по хорошему, конечно, сделайте нормальную группу пользователей с нормальным правами для запуска.
    Ответ написан
    2 комментария
  • Как правильно использовать twig в laravel?

    finnish
    @finnish
    Советую Вам использовать этот инструмент: https://github.com/rcrowe/TwigBridge
    Он отлично интегрируется с Laravel, даже "композеры" работают на пять с плюсом.
    Что касается jquery и bootstrap, то Вам нужно подтянуть знания HTML, в частности информацию про теги head, script и link.
    Ответ написан
  • Сайт на docker медленно работает?

    @metajiji
    Есть такое да, если делаете паблишинг портов, то на голом докере по умолчанию это произойдет через docker-proxy у которого катастрофически низкая производительность + огромный аппетит к Cpu, выход крайне простой - при создании контейнеров, которые будут взаимодействовать с внешним миром используйте --net host. Например у вас есть php-fpm, nginx и любая бд, в таком случае делаете --net host для nginx, остальные могут оставаться в сети docker, конечно же вам понадобится icc(inter container communication) и для этого нужно создать так называемую user-defined network. Для упрощения жизни создавайте контейнеры через docker-compose.
    Ответ написан
    1 комментарий
  • Архитектура приложения. Как сделать независимые модули (сервисы)?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    По этому вопросу очень долго искал ответа))
    Вам уже скинули статью по независимым модулям, но этого мало. Что вам нужно:

    1. Независимый слой MODEL.
    В этой папке находятся Use Case (Service), Сама сущность Entity (AR), Желательно иметь репозитории для изоляции от базы данных ну и другой доменный слой логики, который не зависит ни от чего. Ни от фреймворка, ни от других модулей и пакетов. Ваша задача написать код в этой части так, чтобы его можно было скопировать в любую папку, настроить зависимости и чтобы этот код заработал хоть на чистом PHP. Если не планируете менять фреймворк, то можно зависить от фреймворка.

    2. Зависимости
    Все зависимости модуля реализовать либо через Interface либо через события, но события лучше. А дальше уже синхронизируйте через приложение или отдельный модуль. Можно и по api.

    3. UI (пользовательский интерфейс)
    Он может быть зависимым от других модулей. В него входят: контроллеры, view, формы, vue.js и так далее. В общем то, с чем взаимодействует пользователь.

    Тем самым получается такая система если опираться на MVC:
    VC - могут быть зависимы от других модулей
    M - не может быть зависима ни от чего, кроме PHP. Желательно и отделять слой базы данных с помощью Repository. Тогда ваш пакет будет очень сильно независим даже от базы. И вам вообще будет без разницы куда вы это храните в user или employee.

    Если будет такой слой, то можно спокойно переносить хоть на будущий Yii3. Однако На Yii1 и Yii2 такое сделать сложно. Надо изворачиваться и займет это больше времени. Так как сам Фреймворк вставляет нам палки и приходится делать костыли из-за его монолитности. К такому подходу не привыкли Yii1 и Yii2 разработчики. Обычно на Yii такое понимание «фигак, фигак и в продакшн».

    Такую архитектуру удобно будет строить на Symfony ну и будущем Yii3.

    Рекомендую к прочтению:
    Ответ написан
    7 комментариев
  • Yii2 Как правильно реализовать pjax всего сайта?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Yii2 Как правильно реализовать pjax всего сайта?

    правильно такого не делать
    Ответ написан
    Комментировать
  • Почему все серверы ставят на Linux?

    @danyboro
    Во-первых, это бесплатно и при этом совершенно легально.

    Во-вторых, Linux потребляет гораздо меньше аппаратных ресурсов.

    В-третьих, хорошо настроенный Linux практически не нуждается во вмешательстве системного администратора, эксплуатируются по принципу «настроил и забыл».
    Ответ написан
    Комментировать
  • Как правильно спроектировать репозиторий для использования с необязательными параметрами?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Изящно решает паттерн Criteria/Specification.
    Doctrine Specification Pattern или ваш реюзабельны...

    Он может быть сложным, но вашу задачу решает элегантно. Благо он уже упакован в библиотечку, которую вы найдете по ссылке выше.
    Ответ написан
    1 комментарий
  • Какую выбрать базу данных: SQLite или mySQL?

    spirik
    @spirik Автор вопроса
    Инженер по ремонту компьютерной техники
    Всем спасибо за ответы! Решил выбрать mysql
    Ответ написан
    Комментировать
  • Laravel vs WordPress?

    zorca
    @zorca
    Всё начинается с ТЗ. Если его нет, или нет понимания что это, нет времени на проработку ТЗ, то быстрее взять и сделать первую версию на коленке и WordPress. После обкатки уже осознать, взлетит ли проект и насколько он будет нагружен, во что может упереться в дальнейшем при продолжении разработки на WordPress. Вот тогда снова приходите с этим вопросом. На него как минимум уже можно будет более менее адекватно ответить.
    Ответ написан
    Комментировать
  • Как сэмулировать включенный js для file_get_contents или curl?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Headless браузер.
    Например, phantom.js
    Ответ написан
    Комментировать
  • PHP не могу занести данные в БД, в чем ошибка?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    всё дело в неправильном использовании кавычек
    $sql = "SELECT * FROM 'messages' ORDER BY 'date'";

    надо так
    $sql = "SELECT * FROM `messages` ORDER BY `date`";

    или вообще уберите их
    $sql = "SELECT * FROM messages ORDER BY date";
    Ответ написан
    3 комментария
  • Как вывести самое удаленное от среднего значения?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    SELECT id, 
    MAX(
        ABS(
            ( price - (SELECT AVG(Price) FROM services) )
        )
    ) AS max_avg_price FROM services
    Ответ написан
    Комментировать