Skip to content

Improve README, documentation, and discoverability#63

Merged
florianv merged 1 commit into
masterfrom
docs/improve-readme-and-discoverability
Apr 29, 2026
Merged

Improve README, documentation, and discoverability#63
florianv merged 1 commit into
masterfrom
docs/improve-readme-and-discoverability

Conversation

@florianv

Copy link
Copy Markdown
Owner

What changed

README

  • Rewrote around a 'plug-and-play Symfony' value proposition: drop-in bundle for currency conversion, configurable via config/packages/florianv_swap.yaml, container service ready to inject as Swap\Swap.
  • New orientation sections (What is Symfony Swap?, When should you use Symfony Swap?, Why Symfony Swap and not raw Swap?, Common use cases, Which package should I use?), aligned with the rest of the ecosystem.
  • Modernized the install path: PSR-18 first via symfony/http-client; the EOL php-http/guzzle6-adapter mention is gone.
  • Modernized the registration path: register the bundle in config/bundles.php (Symfony 4+/5+/6+/7+/8+) instead of the pre-Symfony 4 AppKernel pattern.
  • Replaced the APILayer-anchored quickstart with a neutral default (european_central_bank, free, no API key) and a fallback-chain example using priorities.
  • Dropped the duplicated Services table that mirrored the Swap README. The README now points to the canonical Swap Providers table.
  • Added cross-links to Swap, Exchanger, and Laravel Swap.
  • Added a neutral Sponsorship section near the bottom.
  • Added light section emojis for visual scanning.
  • Dropped the legacy s3 logo image from the H1 for a cleaner header.

Resources/doc/index.md

  • Dropped the legacy ## Sponsors block at the top and the 'we recommend the services that support our project' line in Configuration. No commercial provider is preferred.
  • Added the same orientation sections at the top so the doc stands on its own and aligns vocabulary with the README.
  • Modernized Installation (PSR-18 first, Guzzle 7 alternative noted; guzzle6-adapter removed).
  • Modernized Setup to config/bundles.php and config/packages/.
  • Added a Provider configuration table mapping each commercial identifier to its required option (api_key, access_key, app_id, token, api-key) and optional flags (enterprise, paid). Public providers and the array fixture are documented separately.
  • Added a Cache configuration subsection covering the built-in array / apcu / filesystem types and PSR-16 service ID injection.
  • Updated Usage to modern Symfony patterns (constructor injection with #[Autowire(service: 'florianv_swap.swap')]) plus the container-fetch fallback.
  • Added a Per-query options table.
  • Replaced the legacy Supported Services code dump with a pointer to the Swap README Providers table.
  • Added a short FAQ at the end.

composer.json

  • Updated description and Packagist keywords for discoverability.
  • Fixed the homepage field, which still pointed at the old FlorianvSwapBundle URL.

LICENSE

  • Added a top-level LICENSE file (MIT) so GitHub detects the license on the repository sidebar (the existing Resources/meta/LICENSE was not picked up by the GitHub license detector). Copyright range refreshed to 2014-2026.

Why

  • A new Symfony developer running composer require florianv/swap-bundle, registering the bundle, and dropping a florianv_swap.yaml immediately gets a working Swap\Swap injection, with no commercial-API friction.
  • High-intent terms (Symfony currency conversion, Symfony exchange rates, drop-in bundle, container service, config/packages) are now in headings, the opening paragraph, and the Packagist metadata.
  • The README is a value-proposition page, not a duplicate of the Swap README. The Providers table lives in one place.
  • GitHub now recognizes the MIT license on the repository, restoring a trust signal that was missing.

What did NOT change

  • No runtime code changes. Public API of Florianv\SwapBundle\FlorianvSwapBundle, FlorianvSwapExtension, and the florianv_swap.swap / florianv_swap.builder container service IDs is unchanged.
  • No changes to DependencyInjection/, Resources/config/, Tests/, CI, Psalm config, or php-cs-fixer config.
  • The Resources/meta/LICENSE file is kept for backward compatibility; the new top-level LICENSE is what GitHub now reads.
  • The CHANGELOG was not touched (this is doc work, not a release).

README

- Rewrite around a 'plug-and-play Symfony' value proposition: drop-in
  bundle for currency conversion, configurable via
  config/packages/florianv_swap.yaml, container service ready to
  inject as Swap\Swap.
- New orientation sections (What is Symfony Swap?, When should you
  use it?, Why Symfony Swap and not raw Swap?, Common use cases,
  Which package should I use?), aligned with the rest of the
  ecosystem READMEs.
- Modernize the install path: PSR-18 first via symfony/http-client;
  drop the EOL php-http/guzzle6-adapter mention.
- Modernize the registration path: register the bundle in
  config/bundles.php (Symfony 4+/5+/6+/7+/8+) instead of the
  pre-Symfony 4 AppKernel pattern.
- Replace the APILayer-anchored quickstart with a neutral default
  (european_central_bank, free, no API key) and a fallback chain
  example using priorities.
- Drop the duplicated Services table that mirrored the Swap README;
  Symfony Swap now points to the canonical Swap Providers table.
- Add cross-links to Swap, Exchanger, and Laravel Swap.
- Add a neutral Sponsorship section near the bottom.
- Add light section emojis for visual scanning.
- Drop the s3 logo image from the H1 for a cleaner header.

Resources/doc/index.md

- Drop the legacy Sponsors block at the top and the
  'we recommend the services that support our project' line.
  No commercial provider is preferred.
- Add the same orientation sections at the top so the doc stands on
  its own and aligns vocabulary with the README.
- Modernize Installation (PSR-18 first, Guzzle 7 alternative noted;
  guzzle6-adapter removed).
- Modernize Setup to config/bundles.php and config/packages/.
- Add a Provider configuration table mapping each commercial
  identifier to its required option (api_key, access_key, app_id,
  token, api-key) and optional flags (enterprise, paid). Public
  providers and the array fixture are documented separately.
- Add a Cache configuration subsection covering the built-in
  array / apcu / filesystem types and PSR-16 service ID injection.
- Update Usage to use modern Symfony patterns (constructor injection
  with #[Autowire(service: 'florianv_swap.swap')]) plus the
  container-fetch fallback.
- Add a Per-query options table.
- Replace the legacy Supported Services code dump with a pointer to
  the README's Providers table, which is the canonical list.
- Add a short FAQ at the end.

composer.json

- Update description and Packagist keywords for discoverability.
- Fix the homepage field, which still pointed at the old
  FlorianvSwapBundle URL.

LICENSE

- Add a top-level LICENSE file (MIT) so GitHub detects the license
  on the repository sidebar; the existing Resources/meta/LICENSE was
  not picked up by the GitHub license detector. Copyright range
  refreshed to 2014-2026.

No runtime changes; public API of the bundle, the
FlorianvSwapBundle class, and the container service IDs is
unchanged.
@florianv
florianv merged commit 6622cb3 into master Apr 29, 2026
5 of 6 checks passed
@alies-dev
alies-dev deleted the docs/improve-readme-and-discoverability branch April 29, 2026 20:55
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.

1 participant