symfony Ошибка при запуске composer update на localhost-е

Проблема

При развороте проекта на localhost-е ошибка появляется после первого composer install, и в дальнейшем при composer update.

Текст ошибки

В браузере:

codeception modules & helpers Новые методы для $I -- независимые модули тестирования (хэлперы)

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

codeception build Перстроить (заново сгенерировать) методы trait-а из модулей

С учетом настроенного псевдонима можно так:

 cept build

-- полезно, если вы реализовали собственный модуль, и хотите сразу увидеть в IDE подсказки для новых функций (из всех модулей, добавленных в конфигурацию).

При этом кодэсепшн сам перестроить этот трайт при очередном запуске теста.

composer update Выполняется слишком медленно

Для начала можно выяснить какой вообще используется объём памяти (запустим выполнение с флагом):

composer update --profile

symfony4 Не работает автозаполнение даты в БД -- gedmo timestampable

Текст ошибки

Not null violation: 7 ERROR: null value in column "created_at" violates not-null constraint

Решение

Symfony4 теперь сам добавляет объявление объектов подключаемых зависимостей, и это расхолаживает). Возможно, вы, как и я, забыли настроить конфигурации stof/doctrine-extensions-bundle?

В файл /config/packages/stof_doctrine_extensions.yaml добавляем:

Транзакция -- что это в программировании

Транзакция -- это набор операций, которые выполняются как единое целое ("как единая операция").

На практике смысл в том, что:

  • или состояние системы меняется всеми операциями транзакции
  • или не меняется вообще (т.е. в случае сбоя одной из операций, все возвращается к состоянию до начала выполнения транзакции --
    это называется откатом транзакции)

-- подобная возможность в программной системе называется "поддержкой механизма транзакций".

php PDO Транзакция -- как создать. Пример кода.

Объявить какой-то участок кода, работающий с БД транзакцией с помощью PDO можно так:

  
$pdo->beginTransaction(); // объявлем начало транзации


 /* ...........
тут ваш код, который  выполняет sql запросы средствами pdo 
и должен выполняться как единое целое 
-- т.е. если произойдёт сбой, до того как транзакция завершит 
- всё вернётся на свои места
..........
*/

$pdo->commit(); // закрываем транзкцию

где $pdo создано как $pdo = new PDO(...);

symfony4 Ошибка конфигурации БД (postgresql) -- invalid value for parameter "client_encoding": "utf8mb4"

Текст ошибки

SQLSTATE[22023]: Invalid parameter value: 7 ERROR: invalid value for parameter "client_encoding": "utf8mb4"

Решение

Ошибка появляется при попытке подключения к БД из-за неверно настроенной конфигурации (symfony 4). Реально установленный client_encoding - UTF8, а в конфиге остался стандартный utf8mb4.

Чтобы исправить ошибку, настройте конфигурации корректно.

symfony 4 -- Конфигурация базы данных (Configurate Database)

Настройка подключения к БД

  1. В файле .env указываем данные подключения в таком формате:
    DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"
  2. В файле config/packages/doctrine.yaml настраиваем подключение:
    doctrine:
        dbal:
            # configure these for your database server
            driver: 'pdo_postgresql'
            server_version: '9.4.15'
            charset: utf8

Источник

Pages

Subscribe to fkn+antitotal RSS