ergosarapu / donation-bundle
Donation Bundle allows creating developer friendly donation websites easily
Installs: 41
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.2
- doctrine/dbal: ^3
- doctrine/doctrine-bundle: ^2.13
- doctrine/doctrine-migrations-bundle: ^3.3
- doctrine/orm: ^3.2
- easycorp/easyadmin-bundle: ^4.10
- moneyphp/money: ^4.5
- payum/payum-bundle: ^2.6
- stof/doctrine-extensions-bundle: ^1.10
- symfony/asset: ^6.4|^7.0
- symfony/asset-mapper: ^6.4|^7.0
- symfony/expression-language: ^6.4|^7.0
- symfony/form: ^6.4|^7.0
- symfony/http-client: ^6.4|^7.0
- symfony/stimulus-bundle: ^2.17
- symfony/ux-chartjs: ^2.17
- symfony/ux-live-component: ^2.17
- symfony/ux-twig-component: ^2.17
- symfonycasts/dynamic-forms: ^0.1.2
- symfonycasts/tailwind-bundle: ^0.5.1
- tales-from-a-dev/flowbite-bundle: ^0.6.0
Requires (Dev)
- dama/doctrine-test-bundle: ^8.2
- symfony/browser-kit: ^6.4|^7.0
- symfony/dependency-injection: ^6.4|^7.0
- symfony/phpunit-bridge: ^7.1
- symfony/yaml: ^6.4|^7.0
This package is auto-updated.
Last update: 2024-10-15 13:50:00 UTC
README
Donation Bundle allows creating Symfony based donation websites easily
Installation
Open a command console, enter your project directory and execute:
composer require ergosarapu/donation-bundle
To initialize database, first generate migrations files ...
bin/console doctrine:migrations:diff
... then run migrations to create database tables:
bin/console doctrine:migrations:migrate
Register bundle routes:
// config/routes.yaml donation_bundle_routes: # loads routes from the given routing file stored in bundle resource: '@DonationBundle/config/routes.xml' # Define or override your routes here donation_bundle_routes_campaign: # loads rest of loosely matching routes as last so they will not match before the ones defined before resource: '@DonationBundle/config/routes_campaign.xml'
Create admin user:
php bin/console donation:add-user [email] [givenname] [familyname] --admin
If you run your app in localhost, then the admin panel can be accessed at http://localhost/admin.
Register Payum gateway factories
The bundle uses Payum for payment gateway abstraction. In order to use a gateway, register Payum gateway factory, e.g:
// config/services.yaml app.montonio_gateway_factory: class: Payum\Core\Bridge\Symfony\Builder\GatewayFactoryBuilder arguments: [ErgoSarapu\PayumMontonio\MontonioGatewayFactory] tags: - { name: payum.gateway_factory_builder, factory: montonio }
Then configure PayumBundle and gateways.
Configuration
The following configuration options are available for the Donation Bundle:
# config/packages/donation.yaml donation: # Payments configuration. payments: onetime: bank: # Prototype country_code: gateways: # Prototype: Name of a Payum gateway name: # Payment method label as shown to the end user label: ~ # Required # Payment method icon shown to the end user image: ~ card: gateways: # Prototype: Name of a Payum gateway name: # Payment method label as shown to the end user label: ~ # Required # Payment method icon shown to the end user image: ~ monthly: bank: # Prototype country_code: gateways: # Prototype: Name of a Payum gateway name: # Payment method label as shown to the end user label: ~ # Required # Payment method icon shown to the end user image: ~ card: gateways: # Prototype: Name of a Payum gateway name: # Payment method label as shown to the end user label: ~ # Required # Payment method icon shown to the end user image: ~
Reset password feature
The password reset feature uses SymfonyCastsResetPasswordBundle, check its configuration to modify its behavior.
In order to use reset password feature, install Mailer component in your application and configure sender globally:
# config/packages/mailer.yaml mailer: envelope: sender: 'donations@example.com' headers: From: 'Donations <donations@example.com>'
Development
Set up dev environment using DDEV
ddev start
Install dependencies
To restrict packages install to specific Symfony version, install symfony/flex globally and specify your desired Symfony version:
composer global config --no-plugins allow-plugins.symfony/flex true composer global require --no-interaction --no-progress symfony/flex:^2.4 composer config extra.symfony.require "7.1"
Testing
Use following script to run database migrations and tests:
./run_tests.sh
Set up app integrated dev environment
TODO: Describe how to set up dev environment with Symfony app using this bundle. While it is possible to develop bundle without setting up app itself, it is useful to verify things work properly as expected.