sonata-project / SonataDoctrineORMAdminBundle

Integrate Doctrine ORM into the SonataAdminBundle
https://docs.sonata-project.org/projects/SonataDoctrineORMAdminBundle
MIT License
445 stars 345 forks source link

Cannot override final method Sonata\AdminBundle\Filter\Filter::isActive() #1482

Closed jderusse closed 3 years ago

jderusse commented 3 years ago

Environment

Sonata packages

show

``` $ composer show --latest 'sonata-project/*' sonata-project/admin-bundle dev-master 9115761 dev-master 9115761 The missing Symfony Admin Generator sonata-project/block-bundle 4.6.0 4.6.0 Symfony SonataBlockBundle sonata-project/cache 2.1.1 2.1.1 Cache library sonata-project/datagrid-bundle 3.3.0 3.3.0 Symfony SonataDatagridBundle sonata-project/doctrine-extensions 1.13.0 1.13.1 Doctrine2 behavioral extensions sonata-project/doctrine-orm-admin-bundle dev-master f819f4f dev-master 189f160 Integrate Doctrine ORM into the SonataAdminBundle sonata-project/exporter 2.7.0 2.7.0 Lightweight Exporter library sonata-project/form-extensions 1.9.0 1.9.0 Symfony form extensions sonata-project/twig-extensions 1.6.0 1.6.0 Sonata twig extensions ```

Symfony packages

show

``` $ composer show --latest 'symfony/*' symfony/amqp-messenger v5.3.2 v5.3.2 Symfony AMQP extension Messenger Bridge symfony/asset v5.3.2 v5.3.2 Manages URL generation and versioning of web assets such as CSS stylesheets, JavaS... symfony/browser-kit v5.3.0 v5.3.0 Simulates the behavior of a web browser, allowing you to make requests, click on l... symfony/cache v5.3.3 v5.3.3 Provides an extended PSR-6, PSR-16 (and tags) implementation symfony/cache-contracts v2.4.0 v2.4.0 Generic abstractions related to caching symfony/config v5.3.3 v5.3.3 Helps you find, load, combine, autofill and validate configuration values of any kind symfony/console v5.3.2 v5.3.2 Eases the creation of beautiful and testable command line interfaces symfony/css-selector v5.3.0 v5.3.0 Converts CSS selectors to XPath expressions symfony/debug-bundle v5.3.0 v5.3.0 Provides a tight integration of the Symfony Debug component into the Symfony full-... symfony/dependency-injection v5.3.3 v5.3.3 Allows you to standardize and centralize the way objects are constructed in your a... symfony/deprecation-contracts v2.4.0 v2.4.0 A generic function and convention to trigger deprecation notices symfony/doctrine-bridge v5.3.3 v5.3.3 Provides integration for Doctrine with various Symfony components symfony/doctrine-messenger v5.3.2 v5.3.2 Symfony Doctrine Messenger Bridge symfony/dom-crawler v5.3.0 v5.3.0 Eases DOM navigation for HTML and XML documents symfony/dotenv v5.3.0 v5.3.0 Registers environment variables from a .env file symfony/error-handler v5.3.3 v5.3.3 Provides tools to manage errors and ease debugging PHP code symfony/event-dispatcher v5.3.0 v5.3.0 Provides tools that allow your application components to communicate with each oth... symfony/event-dispatcher-contracts v2.4.0 v2.4.0 Generic abstractions related to dispatching event symfony/expression-language v5.3.0 v5.3.0 Provides an engine that can compile and evaluate expressions symfony/filesystem v5.3.3 v5.3.3 Provides basic utilities for the filesystem symfony/finder v5.3.0 v5.3.0 Finds files and directories via an intuitive fluent interface symfony/flex v1.13.3 v1.13.3 Composer plugin for Symfony symfony/form v5.3.3 v5.3.3 Allows to easily create, process and reuse HTML forms symfony/framework-bundle v5.3.3 v5.3.3 Provides a tight integration between Symfony components and the Symfony full-stack... symfony/http-client v5.3.3 v5.3.3 Provides powerful methods to fetch HTTP resources synchronously or asynchronously symfony/http-client-contracts v2.4.0 v2.4.0 Generic abstractions related to HTTP clients symfony/http-foundation v5.3.3 v5.3.3 Defines an object-oriented layer for the HTTP specification symfony/http-kernel v5.3.3 v5.3.3 Provides a structured process for converting a Request into a Response symfony/intl v5.3.0 v5.3.0 Provides a PHP replacement layer for the C intl extension that includes additional... symfony/ldap v5.3.0 v5.3.0 Provides a LDAP client for PHP on top of PHP's ldap extension symfony/lock v5.3.2 v5.3.2 Creates and manages locks, a mechanism to provide exclusive access to a shared res... symfony/maker-bundle v1.33.0 v1.33.0 Symfony Maker helps you create empty commands, controllers, form classes, tests an... symfony/messenger v5.3.3 v5.3.3 Helps applications send and receive messages to/from other applications or via mes... symfony/monolog-bridge v5.3.3 v5.3.3 Provides integration for Monolog with various Symfony components symfony/monolog-bundle v3.7.0 v3.7.0 Symfony MonologBundle symfony/options-resolver v5.3.0 v5.3.0 Provides an improved replacement for the array_replace PHP function symfony/password-hasher v5.3.3 v5.3.3 Provides password hashing utilities symfony/phpunit-bridge v5.3.3 v5.3.3 Provides utilities for PHPUnit, especially user deprecation notices management symfony/polyfill-php81 v1.23.0 v1.23.0 Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions symfony/polyfill-uuid v1.23.0 v1.23.0 Symfony polyfill for uuid functions symfony/process v5.3.2 v5.3.2 Executes commands in sub-processes symfony/property-access v5.3.0 v5.3.0 Provides functions to read and write from/to an object or array using a simple str... symfony/property-info v5.3.1 v5.3.1 Extracts information about PHP class' properties using metadata of popular sources symfony/psr-http-message-bridge v2.1.0 v2.1.0 PSR HTTP message bridge symfony/rate-limiter v5.3.0 v5.3.0 Provides a Token Bucket implementation to rate limit input and output in your appl... symfony/redis-messenger v5.3.2 v5.3.2 Symfony Redis extension Messenger Bridge symfony/routing v5.3.0 v5.3.0 Maps an HTTP request to a set of configuration variables symfony/security-acl v3.1.2 v3.1.2 Symfony Security Component - ACL (Access Control List) symfony/security-bundle v5.3.3 v5.3.3 Provides a tight integration of the Security component into the Symfony full-stack... symfony/security-core v5.3.3 v5.3.3 Symfony Security Component - Core Library symfony/security-csrf v5.3.3 v5.3.3 Symfony Security Component - CSRF Library symfony/security-guard v5.3.0 v5.3.0 Symfony Security Component - Guard symfony/security-http v5.3.3 v5.3.3 Symfony Security Component - HTTP Integration symfony/semaphore v5.3.1 v5.3.1 Symfony Semaphore Component symfony/serializer v5.3.2 v5.3.2 Handles serializing and deserializing data structures, including object graphs, in... symfony/service-contracts v2.4.0 v2.4.0 Generic abstractions related to writing services symfony/sphinx v3.0.13 v3.0.13 symfony/stopwatch v5.3.0 v5.3.0 Provides a way to profile code symfony/string v5.3.3 v5.3.3 Provides an object-oriented API to strings and deals with bytes, UTF-8 code points... symfony/swiftmailer-bundle v3.5.2 v3.5.2 Symfony SwiftmailerBundle symfony/templating v5.3.0 v5.3.0 Provides all the tools needed to build any kind of template system symfony/translation v5.3.3 v5.3.3 Provides tools to internationalize your application symfony/translation-contracts v2.4.0 v2.4.0 Generic abstractions related to translation symfony/twig-bridge v5.3.3 v5.3.3 Provides integration for Twig with various Symfony components symfony/twig-bundle v5.3.3 v5.3.3 Provides a tight integration of Twig into the Symfony full-stack framework symfony/validator v5.3.3 v5.3.3 Provides tools to validate values symfony/var-dumper v5.3.3 v5.3.3 Provides mechanisms for walking through any arbitrary PHP variable symfony/var-exporter v5.3.3 v5.3.3 Allows exporting any serializable PHP data structure to plain PHP code symfony/web-link v5.3.3 v5.3.3 Manages links between resources symfony/web-profiler-bundle v5.3.2 v5.3.2 Provides a development tool that gives detailed information about the execution of... symfony/webpack-encore-bundle v1.12.0 v1.12.0 Integration with your Symfony app & Webpack Encore! symfony/yaml v5.3.3 v5.3.3 Loads and dumps YAML files ```

PHP version

$ php -v
PHP 8.0.8 (cli) (built: Jul  1 2021 22:40:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.8, Copyright (c), by Zend Technologies
    with blackfire v1.64.0~linux-x64-non_zts80, https://blackfire.io, by Blackfire

Subject

The class \Sonata\DoctrineORMAdminBundle\Filter\Filter extends Sonata\AdminBundle\Filter\Filter but in version 4.0 the methods isActive is final and DoctrineOrmAdminBundle override it. As the result, compilation fails

  -error: array:4 [
    "type" => 64
    "message" => "Cannot override final method Sonata\AdminBundle\Filter\Filter::isActive()"
    "file" => "/srv/app.blackfire.io/vendor/sonata-project/doctrine-orm-admin-bundle/src/Filter/Filter.php"
    "line" => 67
  ]

Minimal repository with the bug

Steps to reproduce

composer.json
        "sonata-project/admin-bundle": "dev-master,
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",

Expected results

Actual results

Cannot override final method Sonata\AdminBundle\Filter\Filter::isActive()

VincentLanglet commented 3 years ago

I don't find the commit f819f4f Are you up to date ?

Cause isActive is not overriden in dev-master @jderusse ? https://github.com/sonata-project/SonataDoctrineORMAdminBundle/blob/master/src/Filter/Filter.php

VincentLanglet commented 3 years ago

You're using a 3.x commit hash: https://github.com/sonata-project/SonataDoctrineORMAdminBundle/commits/3.x

jderusse commented 3 years ago

:facepalm: I picked the wrong commit...