Задать вопрос
  • Как корректно записать данные из цикла в бд?

    @galliard
    Множественого обновления у вас сделать не получится, потому что ваша форма отправляет только данные, вставленные в последней итерации. То есть если написать

    $names = ['Вася', 'Петя', 'Коля'];
    foreach($names as $name):
        echo '<input type="text" name="name" value="' . $name . '">';
    end;


    То у тебя напечатается
    <input type="text" name="name" value="Вася">
    <input type="text" name="name" value="Петя">
    <input type="text" name="name" value="Коля">


    Проблема в том, что имя, указанное в атрибуте name должно быть уникально, а тут оно задублировано 3 раза, поэтому как только ты нажмешь кнопку "submit" будет использоваться только последнее, то есть "Коля". Именно оно отправится на сервер.

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

    $names = ['Вася', 'Петя', 'Коля'];
    foreach($names as $key => $name):
        echo '<input type="text" name="names[' . $key . ']" value="' . $name . '">';
    end;


    И таким образом будет сформирован код
    <input type="text" name="names[0]" value="Вася">
    <input type="text" name="names[1]" value="Петя">
    <input type="text" name="names[2]" value="Коля">


    И таким образом вы сможете передать весь массив данных при сабмите.
    Ответ написан
    Комментировать
  • Как правильно делать, PHP?

    @galliard
    Лучше так
    echo 'success';
    Ответ написан
    Комментировать
  • Service Result Pattern - в PHP?

    @galliard
    Вот не первый раз замечаю, что именно C# комъюнити люто бешено ненавидит эксепшны и все время пытается изобрести способы их чем-то заменить.

    Лично мое мнение - я бы так делать не стал. Вместо кучи классов-результов лучше завести такую же кучу классов-эксепшнов. Их так же можно обработать и в зависимости от ошибки вывести нужный http-статус. И ничего заново изобретать не надо.
    Ответ написан
  • Как реузать entity в symfony?

    @galliard
    В вендорных бандлах обычно не пишут аннотации. Аннотации - это по сути конфиг, а вендор обычно не знает, как конкретно вы захотите конфигурировать свое приложение (как должны называться таблици и поля в вашей конкретной базе, например).

    Для конфигурирования вендорних сущностей можно использовать xml или yaml конфиги.
    Ответ написан
    Комментировать
  • Слои приложения в Symfony?

    @galliard
    - Слой, отвечающий за атомарные операции с бд (прим. - save(), delete(), может какой-то цикл с небольшой логикой)

    save() - это flush() в энтити менеджере
    delete() есть в реаозитории
    какой-то цикл с небольшой логикой лучше реализовать в сервисе
    Если ко всему этому нужно докрутить какую-то логику - то опять же с этим отлично справится сервис

    Никаких дополнительных слоев тут не нужно.
    Ответ написан
    Комментировать
  • Что лучше для большого проекта со сложными вычислениями: Node js или PHP?

    @galliard
    Можете написать на php только часть со "сложными вычислениями", оформить как микросервис и вызывать из ноды.

    Но для начала стоило бы понять, насколько сложны ваши вычисления и какое время программа на них затрачивает. Возможно вы просто преувеличиваете масштаб проблемы и нода спокойно их переварит.
    Ответ написан
    Комментировать
  • Можно ли работать с composer без консоли?

    @galliard
    Можешь полазить по панели управления хостингом. Но если там нет - то никак.
    Ответ написан
    Комментировать
  • Создание документации Swagger в помощью Symfony?

    @galliard
    Какие именно аннотации к методам у вас описаны?
    Если стандартные аннотации компонентов symfony (включая jms и doctrine, хотя формально они не являются компонентами симфони) - то такое умеет только NelmioApiDocBundle, и то в весьма ограниченом виде.

    Есть еще вот такая приблуда: https://packagist.org/packages/zircote/swagger-php (она же входит в состав NelmioApiDocBundle, кстати), у нее есть собственные кастомные аннотации, из которых она генерит описание в json-формате.

    Иных инструментов пока нет.
    Ответ написан
    Комментировать
  • Стоит ли использовать redbean php вместо PDO?

    @galliard
    Используй Doctrine или хотя бы Eloquent. Redbean - это убогое поделие для ламеров.
    Ответ написан
    Комментировать
  • Инверсия зависимостей в ORM. Велосипед или есть решение?

    @galliard
    В конструкторе этого делать точно не стоит. Да вы и не сможете, так как в конструкторе ретурн не работает.
    Лучше посмотреть в сторону этого паттерна https://ru.wikipedia.org/wiki/Абстрактная_фабрика_...
    Ответ написан
    Комментировать
  • Как сохранить base64 картинку на сервер Symfony 4?

    @galliard
    У фреймворка ничего для этой задачи нет, но есть в стандартной библиотеке php
    php.net/manual/ru/function.base64-decode.php
    далее можешь сохранить его куда захочешь обычными функциями для работы с файлами
    Ответ написан
    Комментировать
  • Как лучше хранить много чекбоксов в бд?

    @galliard
    Таблица формата
    product_id | key | value
    Можно не только чекбоксы, но и любые динамические свойства товара так хранить
    Ответ написан
  • Структура файлов REST API backend?

    @galliard
    Ну во первых стоит отказаться от использования слова "api" в названии папок, файлов, классов, функций, etc.

    Я подобную задачу решал приблизительно так:
    ..shop
    ....users.js
    ....books.js
    ..buyer
    ....users.js
    ....books.js
    ..users.js
    ..books.js

    При этом users.js и books.js, лежащие в папках shop и buyer, наследовались от users.js и books.js, лежавшие в корневой папке.
    Ответ написан
    Комментировать
  • Как создать и сохранить уникальный идентификатор сессии?

    @galliard
    Можно. Но сильно абстрактных названий, типа 'newid', в глобальном контексте лучше избегать. Назовите его 'user_id' или может быть даже 'visitor_id'.
    Ответ написан
    Комментировать
  • Добрый день всем. Куда лучше сбежать из админов после 16го стажа. В 1С бухгалтерию или в 1С Битрикс. Знаком и с тем и с другим но поверхностно?

    @galliard
    Вообще "IT" и "регионы" - понятия не совместимые, по крайней мере в этой стране. Хотите серьезного профессионального и карьерного роста - езжайте в Москву. Иначе таки и будите утюги чинить.

    Но если отвечать на вопрос так, как он поставлен, то, наверное, 1С вам будет ближе. Хотя сам я ни того, ни другого в глаза не видел и могу ошибаться.

    Попробуйте пол годика поучить сначала одно, потом другое. Тогда сможете выбрать, что нравится именно вам.
    Ответ написан
    Комментировать
  • Может ли микросервис based on REST API вызывать другой микросервис based on SOAP API?

    @galliard
    Может ли микросервис based on REST API вызывать другой микросервис based on SOAP API?

    Да.

    1. Это возможно только если каждая сторона имеет клиента, способных к взаимодействию друг с другом.

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

    2. SOAP API это про Web Services ,а не про Microservices.
    В 99.99% да. Microservices - это про количество функционала у программы. SOAP API - это про интерфейс программы.

    Вообще SOAP - это просто правила формирования XML. То есть если ты карандашом на бумаге напишешь XML, свернешь этот листок и отдашь его своему другу, который его проглотит, и поедет, например, к твоей девушке, там просрётся, вытащит из своего говна этот листочек, и отдаст ей - то это тоже будет общение по SOAP протоколу. Главное - чтобы XML была сформирована по определенным правилам.

    Но чаще всего в качестве транспорта данных используют не желудок своего друга, а HTTP протокол.

    Это возможно только если Decoding-Encoding на обоих сторонах будет одинаковый

    Правила Decoding-Encoding регулируются стандартами, обе стороны обязаны их соблюдать.

    Это возможно только если на обеих сторонах используется одинаковая Decoding-Encoding library (например JAX API имеет для SOAP: JAXB, и для REST: JAX-RS). Но если использовать разные Decoding-Encoding library, то не сработает

    Стороны могут быть реализованы даже на разных языках программирования, на их общение это никак не повлияет.
    Ответ написан
    2 комментария
  • Совмещать ли edit и update методы контроллера?

    @galliard
    Точкой удобнее сделать один метод. А там уже в зависимости от http-метода вызовите уже конкретные обработчики. Таким образом он будет делать не много, а ровно то, что от него требуется - обрабатывать http-запрос.
    Ответ написан
    Комментировать
  • Как работать со сложной сущность, если мне нужно всего лишь отобразить данные?

    @galliard
    Используй прокси объекты при билдинге.
    Ответ написан
    Комментировать
  • В каком месте лучше закрыть соединение с БД?

    @galliard
    Обычно соединение с базой держится открытым на протяжении всего жизненного цикла приложения.
    Ответ написан
    Комментировать