SubscriptionBundle helps you to create and manage subscriptions services (also known as plans) for your users in your application.
The SubscriptionBundle fits perfectly in your Symfony application and your models. It don't cares about what persistence layer are you using (a http://www.doctrine-orm.org, http://www.redis.io...); it only provides an easy and solid base where start to handle this type of products in your Symfony applications.
Features
- Trying to maintain a easy, solid, well-documented and agnostic base to start to work without headaches.
- Many actions allowed on to subscriptions: active, expire, disable and renew with his appropriate events.
- Extensible: you can extend and change the out-of-the-box features creating your own strategies that determine how a subscription should be handled to fit to your requirements.
Compatible
- Symfony 3.3+/4+ applications with Doctrine
-
Strategies
-
CookBooks/Examples:
- Symfony 4 example sandbox with doctrine
$ composer require terox/subscription-bundle
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Terox\SubscriptionBundle\TeroxSubscriptionBundle(),
);
}
// ...
}
terox_subscription:
# Where is the subscription model located in your application
# Remember that your model must implement the interface
subscription_class: AppBundle\Entity\Subscription # Interface: Terox\SubscriptionBundle\Model\SubscriptionInterface
# Repository services name
# Remember that repositories must be implement the interfaces
subscription_repository: app.repository.subscription # Interface: Terox\SubscriptionBundle\Repository\SubscriptionRepositoryInterface
product_repository: app.repository.product # Interface: Terox\SubscriptionBundle\Repository\ProductRepositoryInterface
Read the complete configuration reference for more configuration options or tweaks.
This software is published under the MIT License
I will be very happy if you want to contribute fixing some issue, providing new strategies or whatever you want. Thanks!