Open Kaaly opened 1 week ago
The Loggable extension isn't compatible with DBAL 4 right now, see https://github.com/doctrine-extensions/DoctrineExtensions/issues/2502 and https://github.com/doctrine-extensions/DoctrineExtensions/pull/2825 for the progress on that.
If you need the loggable extension, you'll need to stick with DBAL 3 for the time being (I guess you could also try copying the old array type from the DBAL 3 codebase and registering it as a custom type in your application, but that's not a great long term solution, either).
Thanks for answer.
I think README need an alert on that. Official version (no alpha or beta) is published mentionning compability with doctrine/dbal v4 which is not totally true.
I will stick to DBAL 3 then
I think README need an alert on that. Official version (no alpha or beta) is published mentionning compability with doctrine/dbal v4 which is not totally true.
I totally agree. See #2886.
Only one change is enough. In a single file, AbstractLogEntry @ line 90 :
namespace Gedmo\Loggable\Entity\MappedSuperclass;
abstract class AbstractLogEntry implements LogEntryInterface
// at line 90
/**
* @var array<string>|null
*/
#[ORM\Column(type: Types::JSON, nullable: true)]
protected $data;
Changing it from an array type to a JSON type like that works if you have no intention on using the old data in that table. The two field types aren't compatible when they're transformed to a database value by the DBAL (the array type makes a VARCHAR field that stores the result of serialize()
, the JSON type makes a JSON column).
Package
show
``` $ composer show --latest gedmo/doctrine-extensions name : gedmo/doctrine-extensions descrip. : Doctrine behavioral extensions keywords : Blameable, behaviors, doctrine, extensions, gedmo, loggable, nestedset, odm, orm, sluggable, sortable, timestampable, translatable, tree, uploadable versions : * 3.17.0 released : 2024-10-06, this week latest : 3.17.0 released 2024-10-06, this week type : library license : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText homepage : http://gediminasm.org/ source : [git] https://github.com/doctrine-extensions/DoctrineExtensions.git 38b3737997ce58c1187807d18abc49d0f416b4c4 dist : [zip] https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/38b3737997ce58c1187807d18abc49d0f416b4c4 38b3737997ce58c1187807d18abc49d0f416b4c4 path : C:\laragon\www\www.tente.local\vendor\gedmo\doctrine-extensions names : gedmo/doctrine-extensions support email : gediminas.morkevicius@gmail.com issues : https://github.com/doctrine-extensions/DoctrineExtensions/issues source : https://github.com/doctrine-extensions/DoctrineExtensions/tree/3.17.0 wiki : https://github.com/Atlantic18/DoctrineExtensions/tree/main/doc autoload psr-4 Gedmo\ => src/ requires behat/transliterator ^1.2 doctrine/collections ^1.2 || ^2.0 doctrine/common ^2.13 || ^3.0 doctrine/deprecations ^1.0 doctrine/event-manager ^1.2 || ^2.0 doctrine/persistence ^2.2 || ^3.0 php ^7.4 || ^8.0 psr/cache ^1 || ^2 || ^3 psr/clock ^1 symfony/cache ^5.4 || ^6.0 || ^7.0 requires (dev) doctrine/annotations ^1.13 || ^2.0 doctrine/cache ^1.11 || ^2.0 doctrine/dbal ^3.7 || ^4.0 doctrine/doctrine-bundle ^2.3 doctrine/mongodb-odm ^2.3 doctrine/orm ^2.14.0 || ^3.0 friendsofphp/php-cs-fixer ^3.14.0 nesbot/carbon ^2.71 || ^3.0 phpstan/phpstan ^1.11 phpstan/phpstan-doctrine ^1.4 phpstan/phpstan-phpunit ^1.4 phpunit/phpunit ^9.6 rector/rector ^1.1 symfony/console ^5.4 || ^6.0 || ^7.0 symfony/doctrine-bridge ^5.4 || ^6.0 || ^7.0 symfony/phpunit-bridge ^6.0 || ^7.0 symfony/uid ^5.4 || ^6.0 || ^7.0 symfony/yaml ^5.4 || ^6.0 || ^7.0 suggests doctrine/mongodb-odm to use the extensions with the MongoDB ODM doctrine/orm to use the extensions with the ORM conflicts doctrine/annotations <1.13 || >=3.0 doctrine/dbal <3.7 || >=5.0 doctrine/mongodb-odm <2.3 || >=3.0 doctrine/orm <2.14.0 || 2.16.0 || 2.16.1 || >=4.0 ```
Doctrine packages
show
``` $ composer show --latest 'doctrine/*' Color legend: - patch or minor release available - update recommended - major release available - update possible - up to date version Direct dependencies required in composer.json: doctrine/doctrine-migrations-bundle 3.3.1 3.3.1 Symfony DoctrineMigrationsBundle Transitive dependencies not required in composer.json: doctrine/cache 2.2.0 2.2.0 PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others. doctrine/collections 2.2.2 2.2.2 PHP Doctrine Collections library that adds additional functionality on top of PHP arrays. doctrine/common 3.4.4 3.4.4 PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more. doctrine/dbal 4.1.1 4.1.1 Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management. doctrine/deprecations 1.1.3 1.1.3 A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages. doctrine/doctrine-bundle 2.13.0 2.13.0 Symfony DoctrineBundle doctrine/event-manager 2.0.1 2.0.1 The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects. doctrine/inflector 2.0.10 2.0.10 PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words. doctrine/instantiator 2.0.0 2.0.0 A small, lightweight utility to instantiate objects in PHP without invoking their constructors doctrine/lexer 3.0.1 3.0.1 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers. doctrine/migrations 3.8.1 3.8.1 PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. ... doctrine/orm 3.2.2 3.2.2 Object-Relational-Mapper for PHP doctrine/persistence 3.3.3 3.3.3 The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share. doctrine/sql-formatter 1.5.0 1.5.0 a PHP SQL highlighting library ```
PHP version
Subject
Since v3.17.0 and bump doctrine/dbal to 4.0, i got this error on doctrine :
Unknown column type "array" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this er ror occurs during database introspection then you might have forgotten to register all database types for a Doctrine Type. Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMappedDatabaseT ypes(). If the type name is empty you might have a problem with the cache or forgot some mapping information.