Improve README, documentation, and discoverability#63
Merged
Conversation
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.
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.
What changed
README
config/packages/florianv_swap.yaml, container service ready to inject asSwap\Swap.symfony/http-client; the EOLphp-http/guzzle6-adaptermention is gone.config/bundles.php(Symfony 4+/5+/6+/7+/8+) instead of the pre-Symfony 4 AppKernel pattern.european_central_bank, free, no API key) and a fallback-chain example using priorities.Resources/doc/index.md## Sponsorsblock at the top and the 'we recommend the services that support our project' line in Configuration. No commercial provider is preferred.guzzle6-adapterremoved).config/bundles.phpandconfig/packages/.api_key,access_key,app_id,token,api-key) and optional flags (enterprise,paid). Public providers and thearrayfixture are documented separately.array/apcu/filesystemtypes and PSR-16 service ID injection.#[Autowire(service: 'florianv_swap.swap')]) plus the container-fetch fallback.composer.jsonhomepagefield, which still pointed at the oldFlorianvSwapBundleURL.LICENSELICENSEfile (MIT) so GitHub detects the license on the repository sidebar (the existingResources/meta/LICENSEwas not picked up by the GitHub license detector). Copyright range refreshed to 2014-2026.Why
composer require florianv/swap-bundle, registering the bundle, and dropping aflorianv_swap.yamlimmediately gets a workingSwap\Swapinjection, with no commercial-API friction.config/packages) are now in headings, the opening paragraph, and the Packagist metadata.What did NOT change
Florianv\SwapBundle\FlorianvSwapBundle,FlorianvSwapExtension, and theflorianv_swap.swap/florianv_swap.buildercontainer service IDs is unchanged.DependencyInjection/,Resources/config/,Tests/, CI, Psalm config, or php-cs-fixer config.Resources/meta/LICENSEfile is kept for backward compatibility; the new top-levelLICENSEis what GitHub now reads.