Skip to content

Config v3#337

Merged
Blacksmoke16 merged 66 commits intomasterfrom
config-v3
Feb 4, 2024
Merged

Config v3#337
Blacksmoke16 merged 66 commits intomasterfrom
config-v3

Conversation

@Blacksmoke16
Copy link
Member

@Blacksmoke16 Blacksmoke16 commented Dec 19, 2023

Initial implementation of the next-gen way to configure/extend Athena:

  • Removes ACF::Base, ACF::Parameters, Resolvable annotation, and the load_* class methods
    • These features are being merged into the DI component
  • Revamps the DI component to leverage a more powerful implementation
    • Removes dep on the config component
    • Extract the various modules into more isolated files/modules into new "compiler pass" concept
    • More robust way to adding/customizing order of said compiler passes
    • Parameters are more statically defined and known at compile time, with placeholders being able to recursively resolve them

TODO:

  • - Integrate new concept into rest of framework Config v3 framework integration #383
  • - (follow up) Better way to handle ENV vars
    • Including processors for common ENV operations
  • - (follow up) Look into deprecating some features/replacing some with new annotations
  • - (follow up) Service call & setter DI Support service calls #384

Resolves #332

Support resolving parameter placeholder values
Add invalid parameter error handling
Start on autoconfiguration
Define getters
First pass on aliases
Support generic services
Fix factories
Support injecting tagged services
Add test coverage for error states
Remove debugging code
Handle unexpected keys in extension child namespaces with no options
@Blacksmoke16
Copy link
Member Author

This still needs a pass on docs, but going to merge as is given CI is happy and it's already a big boi PR.

@Blacksmoke16
Copy link
Member Author

So getting back to this and working on remembering where I left off. It seems I'd like to merge this to make future changes more focused. Also seems this is in a working spot, but some things still need wired up. E.g. enabling cors/format handler stuff if configured to do so.

Probably fine merging as is, then following up with a PR to get that stuff working.

end
end

module Extension
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO for a follow up PR: Register/configure CORS and format listeners based on configuration.

@Blacksmoke16 Blacksmoke16 marked this pull request as ready for review February 4, 2024 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

Configuring Athena Framework

1 participant