[WIP] feat: Property types from phpdocs#1057
Draft
chrisvanlier2005 wants to merge 2 commits intodedoc:mainfrom
Draft
[WIP] feat: Property types from phpdocs#1057chrisvanlier2005 wants to merge 2 commits intodedoc:mainfrom
chrisvanlier2005 wants to merge 2 commits intodedoc:mainfrom
Conversation
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.
Still work in progress, need to add some tests. Bit i've opened it early to gauge interest
The logic is modularized using a
PropertyExtractorinterface, allowing for distinct strategies to handle different locations where type information might be defined.Examples
Here are the specific class scenarios that are now supported with this extension:
Standard Properties with
@varTypes are now inferred from the
@varannotation above the property definition.Magic Properties (
@property)Properties defined in the class DocBlock (common in Laravel Models or fluent objects) are now recognized.
Constructor Promoted Properties
Types are inferred from the constructor's
@paramtags when using promoted properties.