Задать вопрос
  • Как в symfony 3.4 вывести и отправить форму для сущности в списке сущностей?

    mad_maximus
    @mad_maximus
    Какой ужас. Вы ничего хуже не придумали? По поводу вопроса: посмотрите в вёрстку и на названия форм, которые у вас получились. Если что, все формы, которые вы отрендерили, с одинаковыми именами, поэтому отправляется только одна из них. Чтобы было понятно, какая форма обрабатывается, если таких форм на странице много, у FormType перегружается метод getBlockPrefix(), где просто возвращается строка с названием формы. Это первое. Второе. Поля сущности не равны полям в форме. Не надо использовать сущность для маппинга на форму. И добавлять в сущность поле FormInterface - это как вообще? Вы просто выводите в цикле данные о сущностях, у каждой из которых делаете блок с действиями. При любом действии отправляете id этой сущности. Таким образом, форма одна, а редактировать можно любую сущность.
    Ответ написан
    8 комментариев
  • Можно ли рассчитать стоимость системы без ТЗ?

    В похожей известной мне ситуации заказчик, заказав оценку стоимости у десятка различных исполнителей, получил разброс стоимости проекта от 400 тысяч до 32 млн рублей. (Заказчик в итоге отказался от проекта вообще).

    Не знаю, есть ли в такой ситуации вообще какое-то единственно правильное решение, но помочь вам могут методы оценки стоимости проекта, тот же самый PERT. В двух словах:
    Декомпозируйте задачи настолько, насколько это необходимо для того, чтобы их оценить хотя бы предварительно.
    Выполните, исходя из имеющегося опыта, оценку сроков получившихся задач по трём точкам: оптимистическую, наиболее вероятную, пессимистическую. В этих оценках постарайтесь учесть возможные риски.
    Вычислите ожидаемое время проекта на основании получившихся оценок, накиньте пару стандартных отклонений в плюс и минус: получите достаточно широкую вилку суммарного времени работы над проектом, но с высокой вероятностью включающей в себя то время, которое может получиться по факту.
    Умножьте получившиеся оценки на стоимость работы вашей команды (в час/день -- какую единицу при оценке сроков использовали), таким образом получите оценку стоимости проекта сверху и снизу. Презентуйте получившуюся вилку и скоуп проекта, который лёг в её основу, заказчику. Сужайте вилку на свой страх и риск.

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

    Высокая неопределённость на начальных этапах проекта -- явление нормальное, но брать на себя какие-то обязательства в таких условиях -- ваш риск. Оцените, готовы ли вы пойти на него.
    Ответ написан
    1 комментарий
  • Как прописать location nginx чтобы использовать одну папку для всех сайтов?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Что мешает сделать symlink с именем images в каждую директорию сайта с реальной директории?
    Никакие дополнительные движения со стороны nginx не нужны будут.
    Ответ написан
    Комментировать
  • Процедура по изменению данных в SQL Oracle?

    idShura
    @idShura
    UPDATE BONUS_FOR_AGENT SET STATUS = 1 WHERE NTYPE = 1 AND STATUS = 0;
    Ответ написан
    5 комментариев
  • Как сделать чтобы не было инфы?

    Chefranov
    @Chefranov
    Новичок
    Добавить атрибут к форме или полям autocomplete="off"
    Ответ написан
    Комментировать
  • С чего начать делать сайт если никогда не писал для web?

    @rPman
    Для изучения WEB вам нужно начинать с HTML.

    Затем изучение разделяется на минимум три направления - бакэнд (то что крутится на сервере), фронтэнд (то что работает у клиента в браузере) и верстка (изучение HTML и CSS чтобы страница в браузере, причем на всех, включая мобильные и десктопные разных ОС, выглядела как хочется а не как получится). Бакэнд и фронтэнд фактически преследуют одну цель - формировать HTML (в т.ч. динамически изменяемый от действий пользователя).

    Есть устаревший (но еще актуальный, иногда) принцип разработки, когда клиентская сторона не использует javascript а применение шаблонов HTML страниц происходит на серверной стороне, в этом случае фронтэнда нет.

    Есть узкая область веб-разработки - статические веб-приложения, когда бакэнд представляет из себя готовый веб-сервер, просто раздающий файлы и больше ничего, и вся обработки и кодинг происходит в браузере у пользователя (т.е. получается только фронтэнд).

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. В начале каждого PHP-скрипта (глобально - не работает!): declare(strict_types=1);
    2. Читаем тут и ставим свою перегрузку:
    public function __get(string $var) : ?string {
        if (property_exists($this, $var)) {
            return $this->$var;
        }
        
        throw new Exception('property doesn’t exist');
      }
    
      public function __set(string $var, string $value) {
        if (property_exists($this, $var)) {
            $this->$var = $value;
            return;
        }
        
        throw new Exception('property ' . $var . ' doesn’t exist');
      }

    3. В php.ini добавить (дополнить):
    display_errors = On
    error_reporting = E_ALL | E_STRICT

    4. В начало PHP-скрипта добавить:
    error_reporting(E_ALL | E_STRICT);
    error_reporting(-1);
    ini_set('error_reporting', E_ALL | E_STRICT);

    5.В .htaccess:
    php_flag display_startup_errors on
    php_flag display_errors on

    6. "Контрольный в голову": https://xdebug.org/docs/basic

    7. PHPStan - проверка PHP-кода на ошибки без запуска.

    PS: ещё есть также prepend/append скриптов в php.ini для установки любых значений (исполняется php-код внутри них) до/после загрузки любых скриптов, соответственно.
    Ответ написан
  • С чего начать делать сайт если никогда не писал для web?

    artur_kudaev
    @artur_kudaev
    Frontend Developer
    Попробуйте Wordpress, самый простой вариант. А если хотите сами создать с нуля, то до изучения php нужно освоить html и css
    Ответ написан
    Комментировать
  • Перенос сайта с конструктора LPmotor?

    Sanes
    @Sanes
    Вам не переносить надо, а сделать с нуля по образу и подобию.
    Ответ написан
    Комментировать
  • Java и PHP хороший союз?

    Adamos
    @Adamos
    У бэкенда должно быть API, которое можно дергать запросами из любого языка и из любой системы.
    Если оно есть - с любым клиентом будет "хороший союз".
    Если нет - выкиньте и перепишите.
    Ответ написан
    Комментировать
  • Можно ли формировать sql запрос таким образом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В целом подход правильный, но главное здесь не пропустить SQL инъекцию.

    В пхп скрипте надо один раз надо записать в массив все имена полей.
    Потом пробегать по этому массиву и смотреть, заполнено ли соответствующее поле в массиве, пришедшем с клиента. Если заполнено - добавляем в запрос поле с плейсхолдером, а значение - в массив значений.
    Последним пунктом добавляем в массив значений id
    потом подготавливаем запрос и исполняем его
    Пример кода можно посмотреть здесь
    Ответ написан
    Комментировать
  • Как редактировать сайт через OpenServer?

    martin74ua
    @martin74ua Куратор тега MySQL
    Linux administrator
    ответ - никак.

    А вообще - средствами сайта или среды разработки
    Ответ написан
    3 комментария
  • Какую литературу посоветуете по тестированию?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    TDD Кента Бека - помогает понять, откуда взялась популярная архитектура фреймворков тестирования (ссылка) - читала, мне частично помогла.
    xUnit test patterns - не читала, но все советуют - тоже объясняет принципы написания тестов без четкой привязки к технологии (ссылка).
    По разнице в подходах тестирования - существует пирамида тестирования, но на практике мне не всегда понятно, где границы - приемочные и UI тесты ориентированы на use cases - т.е. на путь - в какой последовательности юзер проходит фичу и какой результат ожидает на каждом шаге (заходит на страницу, заполняет данные, ждет ответа; программа-клиент получает токен, шлет запрос, ждет респонс), а модульные тесты ориентированы на проверку кода как изолированных элементов - т.е. тестирование происходит отдельно от общего процесса, в котором этот код используется, чтобы можно было локализовать проблему с максимальной точностью.
    PHPUnit я изучала только по документации, просто прошлась по всем примерам, считаю приемлемым вариантом изучения. Лучше сначала хорошо понять PHPUnit, а потом учить Codeception. Учиться, как мокать и стабать, можно уже на конкретных задачах, по мере надобности.
    Ответ написан
    1 комментарий
  • Как сложить значения столбца mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    $row = $conn->query("SELECT group_concat(age), sum(age) FROM table")->fetch_row();
    echo $row[0];
    echo "<br>";
    echo $row[1];
    Ответ написан
    2 комментария
  • Какое решение лучше выбрать для создания собственного сайта с заметками?

    @Camaro67
    Помог? - жми "Отметить решением"
    То которым вы владеете.
    Ответ написан
    Комментировать
  • Как спарсить страницу с кодировкой windows-1251 и перекодируя ее в UTF-8?

    @iproman
    Пишу на всём что движется.
    $html_utf8 = mb_convert_encoding($html, "utf-8", "windows-1251");
    Ответ написан
    1 комментарий
  • Как сложить числа между символами?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const sum = str.match(/\d+/g).reduce((acc, n) => acc + +n, 0);
    
    // или
    
    let sum = 0;
    for (const n of str.split(/\D+/)) {
      sum += Number(n);
    }

    preg_match_all('/\d+/', $str, $matches);
    $sum = array_sum($matches[0]);
    
    // или
    
    $sum = 0;
    foreach (preg_split('/\D+/', $str) as $n) {
      $sum += intval($n);
    }
    Ответ написан
    Комментировать
  • Что нужно для создания электронного дневник на php+mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Js на начальном этапе не нужен, музчина из соседнего ответа не в теме.
    Ну точнее он живёт видимо в прошлом веке и подключен к интернету через модем по телефонной линии. Учителя же подключены по 4g, и "ждать" перезагрузки будут миллисекунд 50.

    По срокам же вынужден огорчить. Полгода упорных занятий дадут тебе первую кривую версию которую ещё года два допиливать и ужасаться своим решениям принятым на начальном этапе.
    Ответ написан
    5 комментариев