• С чего начать админку на symfony?

    @ArtemioVegas
    php developer
    Можно попробовать EasyAdminBundle
    Полегче чем Соната будет.
    + Есть туториал от KNPUniversity
    Ответ написан
    Комментировать
  • Расположение кода при работе с Doctrine?

    Обычно, бизенс-логику выносят в отдельный слой. Напишите классы-сервисы, куда и поместите свою бизнес-логику. Где они будут лежать и как называться - это, по сути, ваше дело уже. А сами сервисы потом уже инжектите в контроллеры и вызывайте нужные вам методы.
    Ответ написан
    6 комментариев
  • Расположение кода при работе с Doctrine?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Работа с БД идет в репозиториях.

    То есть иерархия такая:

    - простейшие операции с БД делаются через ORM в Entity.
    - сложные зпросы, группировка данных из нескольких запросов, квери билдеры - в репозитории
    - весь остальной код бизнес-логики, который работает с полученными из БД данными - в хелпере.

    При этом надо обязательно помнить, что кроме работы с БД из контроллера надо убрать и всю остальную бизнес-логику. В сервис/хелпер.

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

    PQR
    @PQR
    Один человек уже написал боокчейн на PHP: https://habrahabr.ru/company/dcoin/blog/272695/ - посмотрите, может там где-то ссылка на исходники есть или спросите у автора. Правда, потом его бросила девушка и он переписал всё на Go.
    Ответ написан
    1 комментарий
  • Существуют ли в природе реализации блокчейн на PHP от и до?

    @EverOne
    R&D Management since 2011
    procode: PHP - серверный язык (за незначительными исключениями), BlockChain - технология распределенных данных (баз) на клиенте(*ах). Вашими клиентами будут серверные машины?
    Если же хранить на уже готовом BlockChain'e, то уточните какой именно вас интересует - BitCoin, Etherium или еще что-то?
    Тот же Etherium вполне позволяет создавать смарт-контракты.
    Вот вам API для PHP. Дальше думайте сами.
    Ответ написан
    Комментировать
  • Какой синонимайзер самый лучший?

    ort
    @ort
    веб-разработчик
    Есть еще такой seo-builder.ru - это продвинутая версия seogenerator'a
    Ответ написан
    1 комментарий
  • Что вы думаете о хранении некоторых метаданных в комментарии к столбцу БД, например в виде JSON?

    zoroda
    @zoroda
    Необычный Fullstack
    Почему бы и нет? Комментарии на то и придуманы.
    Однако, стоит продумать ряд вопросов, например:
    - не уткнётесь ли в размер комментария;
    - как будете получать комментарии;
    - как работать с полями, содержащими ссылки на другие сущности;
    - а что, если понадобится в комментарии указать ссылку на другую сущность;
    - а что делать, если надо будет перевести приложение на другой язык;
    - и т.д.
    Ответ написан
    Комментировать
  • Как скрыть ip делая запрос через CURL (PHP)?

    @Kirill-Gorelov
    С ума с IT
    https://gist.github.com/Kirill-Gorelov/
    ВОт тут я записываю свои наработки по работе с curl.
    Может пригодиться.
    Но конкретно что тебе нужно смотри в строке с 55 по 85.
    У меня там пример по скачиванию файла, но легко переделать под любое другое.
    Но это по работе через прокси. Прокси как писали выше это hidemy.
    У меня даже где-то была связка hidemy + мой curl, но уже не помню где.
    Ответ написан
    Комментировать
  • Как скрыть ip делая запрос через CURL (PHP)?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Интересует в основном можно ли замаскировать не используя proxy?

    Чтоб пакет вернулся, нужно отправлять через какой-то шлюз, который знает, кому его возвращать, это может быть прокси, vpn или какой-либо ещё туннель, хоть ssh.
    Может изменение хеадера или еще как.

    можно поменять X-Forwarded-For и некоторые неправльно написанные веб приложения будут учитывать именно этот IP, но это скорее исключение, обычно этот баг пихают в CTF'ы, но на практике ни разу не встречал
    Ну а если нельзя то можно ли при запросе использовать какие-то постоянные proxy, желательно конечно бесплатные,

    Да, есть сайты, которые предоставляют такие прокси, а у меня есть программа для сбора проксей по таким сайтам https://github.com/DevAlone/proxy_py много проксей мрут, но есть такие, которые работают стабильно, самая надёжная работает уже 42 дня.
    так же интересует можно ли сделать запрос через сервера tor.

    Да, на ubuntu установить тор `sudo apt install tor`, запустить `sudo service tor start` и использовать его как socks прокси с адресом `localhost:9050`, адрес можно поменять в настройках, также можно поднять несколько таких проксей и у каждой будет свой IP адрес.
    Ответ написан
    Комментировать
  • Как заполнить столбец в mysql случайными цифрами от 1 до 10?

    qonand
    @qonand
    Software Engineer
    UPDATE tablename SET filed_name = FLOOR(1 + (RAND() * 10));
    Ответ написан
    Комментировать
  • С чего начать при изучении symfony с нуля?

    Официальная документация Symfony очень хорошая.
    Если на английском сложно читать, вот перевод на русский
    https://symfony.com.ua
    Ответ написан
    Комментировать
  • Почему не стартует php7.2-fpm после ребута?

    kotomyava
    @kotomyava
    Системный администратор
    Что-то не так с конфигурацией, вероятнее всего.
    Попробуйте запустить из консоли /usr/sbin/php-fpm7.2 --nodaemonize --fpm-config /etc/php/7.2/fpm/php-fpm.conf и посмотреть, на что он будет ругаться.
    Ответ написан
    6 комментариев
  • Можно ли подключать только отдельные элементы bootstrap?

    OKyJIucT
    @OKyJIucT
    Sunshine reggae
    В разделе "Customize" можете галочками выбрать нужные элементы и скачать только их
    Ответ написан
    7 комментариев
  • Почему не стартует php7.2-fpm после ребута?

    scukokot
    @scukokot
    Работаю в netangels.ru
    Александр Владимирович, давайте поясню, раз не только у вас такая штука, как наблюдаю в комментариях.

    Более полное описание ситуации: проблема есть только при старте системы. Если перезапустить сервис на работающей машине все достаточно быстро поднимается.

    Пример как отлавливать баги в случае старта сервисов из под systemd:

    Для понимания причины добавляем в вызов запуска сервиса слежение за ним через strace с записью лога в файл. Для этого достаточно добавить полный путь до этой утилиты и набор ключей в строку запуска сервиса, например:

    ExecStart=/usr/bin/strace -f -ff -tt -o /tmp/strace.log <Оригинальная команда запуска сервиса>

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

    Далее конкретно про наш случай.

    Выполнение команды запуска ломается на запросе getrandom. Если выставить задержку старта процесса, то данный запрос отрабатывает. При этом, чем дальше отложить старт сервиса, тем быстрее он работает.

    Данный вызов напрямую связан с системными вызовами random/urandom и количеством энтропии в системе. Очевидно, что от времени старта работа системных вызовов не должна меняться, хотя и стоит проверить последовательность старта сервисов в systemd. Значит это энтропия.
    На старте смотрим количество

    # cat /proc/sys/kernel/random/entropy_avail

    и получаем бодрый нолик в момент первого запроса getrandom, что и является причиной сбоя. Энтропия нарастает медленно, а она нужна веб-серверу для осуществления криптографических функций. В установленный таймаут вызов не успевает набрать необходимого числа случайных данных из-за низкой энтропии. Как решение можно использовать пакет haveged. Более того, мы приняли решение добавить его в наш образ по молчанию и проблема в ближайшее время перестанет возникать на новых виртуальных серверах.

    Выдержка из статьи на тему энтропии:
    Linux уже предоставляет довольно качественные случайные данные при помощи вышеописанного ПО, но поскольку автономные компьютеры обычно не имеют клавиатуры или мыши, генерируемая на них энтропия гораздо ниже, поскольку создаётся диском или I/O сети. Очень немногие автономные машины имеют специальное аппаратное обеспечение для ГСЧ, поэтому существует несколько пользовательских решений для создания дополнительной энтропии при помощи аппаратных прерываний, т.к. некоторые устройства (например, звуковые и видеокарты) создают больше так называемого «шума», чем жёсткий диск. К сожалению, даже это не решает проблему виртуальных серверов, т.к. там генерировать энтропию практически нечему. Но тут на помощь приходит инструмент haveged. Основанный на алгоритме HAVEGE (а ранее – на его библиотеке), haveged позволяет генерировать случайные данные, руководствуясь изменениями во времени выполнения кода на процессоре.
    Ответ написан
    Комментировать
  • Как с помощью gulp сконвертировать из ttf в woff, woff2, eot и svg?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Заработало, урааааааааааааа!!!
    Вот решение
    var fontfacegen = require('fontfacegen');
    var map = require('map-stream');
    
    gulp.task('fontgen', function() {
      return gulp.src("./assets/*.{ttf,otf}")
        .pipe(map(function(file, cb) {
          fontfacegen({
            source: file.path,
            dest: './dest/'
          });
          cb(null, file);
        }));
    });
    Ответ написан
    Комментировать
  • Как исправить такие рекомендации PageSpeed Insights?

    @ddem
    Создаю сайты и web-сервисы
    Скачивать к себе по крону и подключать, хотя этот метод не рекоммендуется. Могу помочь, занимаюсь оптимизацией скорости сайтов dsay.ru
    Ответ написан
    Комментировать
  • ФИАС SQL, от куда взять?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Не знаю кто такие эти ваши basicdata.ru, есть официальный сайт:
    fias.nalog.ru/Public/DownloadPage.aspx
    1. Скачайте полную версию в dbf.
    2. Любым конвертером например https://github.com/xtranophilist/dbf2sql сконвертируйте в sql.
    3. ????
    4. PROFIT
    Ответ написан
    Комментировать
  • Свои проекты vs Основная работа и как между ними не разорваться?

    @AnneSmith
    самая ленивая
    для 21-го года вы исключительно целеустремленны, особенно на фоне местных "профи", которые торгуются учить или не учить им очередной CSS фреймворк и ждут, что их будут нянчить на каждой строчке

    при вашем раскладе и возрасте вы всегда успеете в офис, но, если вы поставили себе целью финансовую независимость, а не профессиональный рост как программиста, то офис никак не приблизит вас к этой цели, и через год вы будете понимать, что вы потратили время на чужой бизнес, а не на свой

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

    не получится - пойдете в офис :) тут дело не в том, что тяжело совмещать, а в том, что вы уже приняли решение о том, чего вы на самом деле хотите

    программирование само по себе довольно примитивное занятие, если не развлекать себя сложными проектами и хорошей зарплатой, далеко не все находят в этом удовольствие :)

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

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Жуткий боян, но как нельзя кстати подходит под такого рода нытье.

    kak-zastavit-sebya-chto-to-sdelat.jpg
    Ответ написан
    6 комментариев
  • Как определить объём работ и цену если в ТЗ одни общие фразы?

    Предлагайте клиенту "вилку" с разницей, соответствующей детализации заказа. Если заказ описан несуразно, кое-как, вилка, соответственно, будет большой (например, от 100 до 1000 чего-нибудь). Если заказ описан хорошим языком и Вам всё в нём понятно - разрыв можно уменьшать до нуля.

    В этом случае у вас будет объяснение, которое, возможно, мотивирует заказчика переписать техзадание более понятно для исполнителя.

    Ну, или найти другого исполнителя.
    Ответ написан
    Комментировать