Closed simonberger closed 2 years ago
The model class need to be set with the tag, and not by calling setModelClass An example exists in the doc https://docs.sonata-project.org/projects/SonataAdminBundle/en/4.x/getting_started/creating_an_admin/#step-2-register-the-admin-class
@VincentLanglet This answer is not align with the deprecation message: https://github.com/sonata-project/SonataAdminBundle/blob/4.x/src/DependencyInjection/Admin/AbstractTaggedAdmin.php#L171-L177
From your compiler pass it indeed looks like this message should be adjusted.
@VincentLanglet This answer is not align with the deprecation message: https://github.com/sonata-project/SonataAdminBundle/blob/4.x/src/DependencyInjection/Admin/AbstractTaggedAdmin.php#L171-L177
From your compiler pass it indeed looks like this message should be adjusted.
I assume the the method "setCode()", "setModelClass()" and "setBaseControllerName()" instead.
part should be removed indeed, since I don't think this was ever supported. Do you want to do the PR @simonberger ?
Environment
Sonata packages
show
``` sonata-project/admin-bundle 4.10.1 4.10.1 The missing Symfony Admin Generator sonata-project/block-bundle 4.11.0 4.11.0 Symfony SonataBlockBundle sonata-project/cache 2.2.0 2.2.0 Cache library Package sonata-project/cache is abandoned, you should avoid using it. No replacement was suggested. sonata-project/doctrine-extensions 1.16.0 1.16.0 Doctrine2 behavioral extensions sonata-project/doctrine-orm-admin-bundle 4.2.8 4.2.8 Integrate Doctrine ORM into the SonataAdminBundle sonata-project/exporter 2.11.0 2.11.0 Lightweight Exporter library sonata-project/form-extensions 1.13.1 1.13.1 Symfony form extensions sonata-project/twig-extensions 1.9.1 1.9.1 Sonata twig extensions ```
Symfony packages
show
``` symfony/asset v4.4.37 v5.4.7 Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files symfony/browser-kit v4.4.37 v5.4.3 Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically symfony/cache v4.4.38 v5.4.7 Provides an extended PSR-6, PSR-16 (and tags) implementation symfony/config v4.4.37 v5.4.7 Helps you find, load, combine, autofill and validate configuration values of any kind symfony/console v4.4.38 v5.4.7 Eases the creation of beautiful and testable command line interfaces symfony/contracts v1.1.11 v2.5.1 A set of abstractions extracted out of the Symfony components symfony/css-selector v4.4.37 v5.4.3 Converts CSS selectors to XPath expressions symfony/debug v4.4.37 v4.4.37 Provides tools to ease debugging PHP code symfony/dependency-injection v4.4.39 v5.4.7 Allows you to standardize and centralize the way objects are constructed in your application symfony/deprecation-contracts v2.5.0 v2.5.1 A generic function and convention to trigger deprecation notices symfony/doctrine-bridge v4.4.39 v5.4.7 Provides integration for Doctrine with various Symfony components symfony/dom-crawler v4.4.39 v5.4.6 Eases DOM navigation for HTML and XML documents symfony/dotenv v4.4.37 v5.4.5 Registers environment variables from a .env file symfony/error-handler v4.4.37 v5.4.7 Provides tools to manage errors and ease debugging PHP code symfony/event-dispatcher v4.4.37 v5.4.3 Provides tools that allow your application components to communicate with each other by dispatching events and listening to them symfony/expression-language v4.4.37 v5.4.7 Provides an engine that can compile and evaluate expressions symfony/filesystem v4.4.39 v5.4.7 Provides basic utilities for the filesystem symfony/finder v4.4.37 v5.4.3 Finds files and directories via an intuitive fluent interface symfony/flex v1.18.5 v1.18.5 Composer plugin for Symfony symfony/form v4.4.38 v5.4.7 Allows to easily create, process and reuse HTML forms symfony/framework-bundle v4.4.39 v5.4.7 Provides a tight integration between Symfony components and the Symfony full-stack framework symfony/http-client v5.0.11 v5.4.7 Symfony HttpClient component symfony/http-foundation v4.4.39 v5.4.6 Defines an object-oriented layer for the HTTP specification symfony/http-kernel v4.4.39 v5.4.7 Provides a structured process for converting a Request into a Response symfony/intl v4.4.38 v5.4.5 Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library symfony/lock v4.4.38 v5.4.7 Creates and manages locks, a mechanism to provide exclusive access to a shared resource symfony/maker-bundle v1.38.0 v1.38.0 Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code. symfony/mime v4.4.37 v5.4.7 Allows manipulating MIME messages symfony/monolog-bridge v5.2.12 v5.4.3 Provides integration for Monolog with various Symfony components symfony/monolog-bundle v3.7.1 v3.7.1 Symfony MonologBundle symfony/options-resolver v4.4.37 v5.4.3 Provides an improved replacement for the array_replace PHP function symfony/polyfill-ctype v1.25.0 v1.25.0 Symfony polyfill for ctype functions symfony/polyfill-iconv v1.25.0 v1.25.0 Symfony polyfill for the Iconv extension symfony/polyfill-intl-grapheme v1.25.0 v1.25.0 Symfony polyfill for intl's grapheme_* functions symfony/polyfill-intl-icu v1.25.0 v1.25.0 Symfony polyfill for intl's ICU-related data and classes symfony/polyfill-intl-idn v1.25.0 v1.25.0 Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions symfony/polyfill-intl-normalizer v1.25.0 v1.25.0 Symfony polyfill for intl's Normalizer class and related functions symfony/polyfill-mbstring v1.25.0 v1.25.0 Symfony polyfill for the Mbstring extension symfony/polyfill-php72 v1.25.0 v1.25.0 Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions symfony/polyfill-php73 v1.25.0 v1.25.0 Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions symfony/polyfill-php80 v1.25.0 v1.25.0 Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions symfony/polyfill-php81 v1.25.0 v1.25.0 Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions symfony/polyfill-uuid v1.25.0 v1.25.0 Symfony polyfill for uuid functions symfony/process v5.4.5 v5.4.7 Executes commands in sub-processes symfony/property-access v5.4.5 v5.4.7 Provides functions to read and write from/to an object or array using a simple string notation symfony/property-info v5.4.3 v5.4.7 Extracts information about PHP class' properties using metadata of popular sources symfony/psr-http-message-bridge v2.1.2 v2.1.2 PSR HTTP message bridge symfony/routing v4.4.37 v5.4.3 Maps an HTTP request to a set of configuration variables symfony/security-acl v3.3.1 v3.3.1 Symfony Security Component - ACL (Access Control List) symfony/security-bundle v4.4.38 v5.4.5 Provides a tight integration of the Security component into the Symfony full-stack framework symfony/security-core v4.4.38 v5.4.7 Symfony Security Component - Core Library symfony/security-csrf v4.4.37 v5.4.3 Symfony Security Component - CSRF Library symfony/security-guard v4.4.37 v5.4.3 Symfony Security Component - Guard symfony/security-http v4.4.37 v5.4.5 Symfony Security Component - HTTP Integration symfony/serializer v4.4.39 v5.4.7 Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON. symfony/stopwatch v5.4.5 v5.4.5 Provides a way to profile code symfony/string v5.4.3 v5.4.3 Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way symfony/swiftmailer-bundle v3.4.0 v3.5.4 Symfony SwiftmailerBundle Package symfony/swiftmailer-bundle is abandoned, you should avoid using it. Use symfony/mailer instead. symfony/templating v4.4.37 v5.4.3 Provides all the tools needed to build any kind of template system symfony/translation v4.4.37 v5.4.7 Provides tools to internationalize your application symfony/twig-bridge v4.4.38 v5.4.7 Provides integration for Twig with various Symfony components symfony/twig-bundle v4.4.37 v5.4.3 Provides a tight integration of Twig into the Symfony full-stack framework symfony/uid v5.4.3 v5.4.3 Provides an object-oriented API to generate and represent UIDs symfony/validator v4.4.39 v5.4.7 Provides tools to validate values symfony/var-dumper v4.4.39 v5.4.6 Provides mechanisms for walking through any arbitrary PHP variable symfony/var-exporter v4.4.39 v5.4.7 Allows exporting any serializable PHP data structure to plain PHP code symfony/web-profiler-bundle v4.4.39 v5.4.6 Provides a development tool that gives detailed information about the execution of any request symfony/webpack-encore-bundle v1.14.0 v1.14.0 Integration with your Symfony app & Webpack Encore! symfony/workflow v4.4.37 v5.4.3 Provides tools for managing a workflow or finite state machine symfony/yaml v4.4.37 v5.4.3 Loads and dumps YAML files ```
Subject
AddDependencyCallsCompilerPass::L117-120 is unsafe code. It crashes for me currently on the
isset
check in the process of removing the constructor parameterscode
,modelClass
andbaseControllerName
. Here is an example service definition:My customer admin class extends AbstractAdmin (which extends AbstractTaggedAdmin). There I call
parent::__construct()
The code in AddDependencyCallsCompilerPass checks if a tag value for model class exists and if not it relies on the optional argument 1 which in my case is an array. It could even be undefined or not (which would not lead to an array though).Code or baseControllerClass do not have this problem. I shift to use the Tag now but the problem ist still valid.