Skip to content

Added Config object #65

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 12, 2024
Merged

Added Config object #65

merged 1 commit into from
Sep 12, 2024

Conversation

bobkorinek
Copy link
Contributor

Hello,

I don't know if this might be needed, but I've added a Config class to the project that can be passed instead of an array when initializing some of the library's objects. This offers several advantages over using an array as a configuration format:

  • Users can immediately see which options are available without needing to consult the documentation.
  • All options are type-checked (either by the IDE or PHPStan).
  • The class reduces the likelihood of incorrectly typing an option's name.
  • If options are added or renamed in future updates, static analyzers will flag these changes.

Originally, I had planned to change the internal config variable used by all classes in this library to the Config class, but this could cause a breaking change due to the getConfig($key) method (since some users might use arrays for more options than this library provides). For now, this PR doesn't alter any existing behavior and simply adds the option of passing configuration values as a Config instance. If you like this change I could alter the code to use this class instead of array in the future (of course this change can still support passing the config as an array).

@geeshta geeshta merged commit 51b882f into gopaycommunity:master Sep 12, 2024
6 checks passed
@geeshta
Copy link
Contributor

geeshta commented Sep 12, 2024

@bobkorinek Thank you for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants