[6.x] Replace Yii2 Element events with Laravel events#18373
Open
riasvdv wants to merge 31 commits intofeature/element-traitsfrom
Open
[6.x] Replace Yii2 Element events with Laravel events#18373riasvdv wants to merge 31 commits intofeature/element-traitsfrom
riasvdv wants to merge 31 commits intofeature/element-traitsfrom
Conversation
…ravel events - Add RegisterSources and RegisterFieldLayouts Laravel event classes - Update HasSources concern to dispatch Laravel events - Remove EVENT_REGISTER_FIELD_LAYOUTS constant from HasCustomFields - Add backwards compatibility layer in yii2-adapter Element - Update tests to use Laravel Event::listen pattern
Converts 7 Yii2 events from DisplayedInIndex trait to Laravel events: - EVENT_REGISTER_SORT_OPTIONS -> RegisterSortOptions - EVENT_REGISTER_TABLE_ATTRIBUTES -> RegisterTableAttributes - EVENT_REGISTER_DEFAULT_TABLE_ATTRIBUTES -> RegisterDefaultTableAttributes - EVENT_REGISTER_CARD_ATTRIBUTES -> RegisterCardAttributes - EVENT_REGISTER_DEFAULT_CARD_ATTRIBUTES -> RegisterDefaultCardAttributes - EVENT_REGISTER_SEARCHABLE_ATTRIBUTES -> RegisterSearchableAttributes - EVENT_PREP_QUERY_FOR_TABLE_ATTRIBUTE -> PrepQueryForTableAttribute Also removes EVENT_REGISTER_SEARCHABLE_ATTRIBUTES constant from Searchable.php as it was defined there but used in DisplayedInIndex.
Converts 2 Yii2 events from Eagerloadable trait to Laravel events: - EVENT_DEFINE_EAGER_LOADING_MAP -> DefineEagerLoadingMap - EVENT_SET_EAGER_LOADED_ELEMENTS -> SetEagerLoadedElements
- Create BeforeSave event class in src/Element/Events/ - Update HasLifecycleHooks::beforeSave() to dispatch Laravel event - Move EVENT_BEFORE_SAVE constant to yii2-adapter for backwards compat - Add listener to bridge Laravel event to legacy Yii2 handlers - Update tests to use Laravel event pattern
- Create AfterSave event class in src/Element/Events/ - Update HasLifecycleHooks::afterSave() to dispatch Laravel event - Move EVENT_AFTER_SAVE constant to yii2-adapter for backwards compat - Add listener to bridge Laravel event to legacy Yii2 handlers - Update tests to use Laravel event pattern
…bility - Create AfterPropagate event class in src/Element/Events/ - Update HasLifecycleHooks::afterPropagate() to dispatch Laravel event - Move EVENT_AFTER_PROPAGATE constant to yii2-adapter for backwards compat - Add listener to bridge Laravel event to legacy Yii2 handlers - Update tests to use Laravel event pattern
…ompatibility Converts EVENT_BEFORE_DELETE, EVENT_AFTER_DELETE, EVENT_BEFORE_RESTORE, and EVENT_AFTER_RESTORE from Yii2 events to Laravel events in HasLifecycleHooks trait. - Add BeforeDelete, AfterDelete, BeforeRestore, AfterRestore event classes - Move EVENT_* constants to yii2-adapter Element.php for backwards compatibility - Add event listeners in registerEvents() to bridge Laravel events to Yii2 handlers - Update tests to use Laravel events
…patibility Converts 9 Control Panel UI events from Yii2 to Laravel events: - EVENT_DEFINE_ADDITIONAL_BUTTONS -> DefineAdditionalButtons - EVENT_DEFINE_ALT_ACTIONS -> DefineAltActions - EVENT_DEFINE_ACTION_MENU_ITEMS -> DefineActionMenuItems - EVENT_DEFINE_SIDEBAR_HTML -> DefineSidebarHtml - EVENT_DEFINE_META_FIELDS_HTML -> DefineMetaFieldsHtml - EVENT_DEFINE_METADATA -> DefineMetadata - EVENT_REGISTER_HTML_ATTRIBUTES -> RegisterHtmlAttributes - EVENT_DEFINE_ATTRIBUTE_HTML -> DefineAttributeHtml - EVENT_DEFINE_INLINE_ATTRIBUTE_INPUT_HTML -> DefineInlineAttributeInputHtml - Add new Laravel event classes in src/Element/Events/ - Move EVENT_* constants to yii2-adapter Element.php for backwards compatibility - Add event listeners in registerEvents() to bridge Laravel events to Yii2 handlers - Update tests to use Laravel events
…atibility Converts 3 route and URL events from Yii2 to Laravel events: - EVENT_SET_ROUTE -> SetRoute - EVENT_BEFORE_DEFINE_URL -> BeforeDefineUrl - EVENT_DEFINE_URL -> DefineUrl - Add new Laravel event classes in src/Element/Events/ - Move EVENT_* constants to yii2-adapter Element.php for backwards compatibility - Add event listeners in registerEvents() to bridge Laravel events to Yii2 handlers - Update tests to use Laravel events
…ility Converts 2 structure events from Yii2 to Laravel events: - EVENT_BEFORE_MOVE_IN_STRUCTURE -> BeforeMoveInStructure - EVENT_AFTER_MOVE_IN_STRUCTURE -> AfterMoveInStructure - Add new Laravel event classes in src/Element/Events/ - Move EVENT_* constants to yii2-adapter Element.php for backwards compatibility - Add event listeners in registerEvents() to bridge Laravel events to Yii2 handlers
Moves 6 deprecated EVENT_AUTHORIZE_* constants from src/Element/Element.php to yii2-adapter/legacy/base/Element.php for backwards compatibility: - EVENT_AUTHORIZE_VIEW - EVENT_AUTHORIZE_SAVE - EVENT_AUTHORIZE_CREATE_DRAFTS - EVENT_AUTHORIZE_DUPLICATE - EVENT_AUTHORIZE_DELETE - EVENT_AUTHORIZE_DELETE_FOR_SITE These events were already deprecated in 4.3.0 in favor of Elements service events. Also fixes Drafts.php to reference YiiElement::EVENT_AFTER_PROPAGATE correctly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Ports the events in a (mostly) backward-compatible way, listening for all the old element classes and any additional classes extending the legacy base Element class.