terox/subscription-bundle

Symfony Bundle for manage user subscriptions

Installs: 2 832

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 3

Forks: 7

Open Issues: 2

Type:symfony-bundle

0.2.0 2018-03-27 22:49 UTC

This package is not auto-updated.

Last update: 2024-05-12 02:41:05 UTC


README

SubscriptionBundleLogo

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

Documentation

Quick start

1. Download the bundle:

$ composer require terox/subscription-bundle

2. Enable the bundle in Symfony Application (only Symfony 3+):

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Terox\SubscriptionBundle\TeroxSubscriptionBundle(),
        );
    }

    // ...
}

3. Configure the bundle:

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.

License

This software is published under the MIT License

Contributing

I will be very happy if you want to contribute fixing some issue, providing new strategies or whatever you want. Thanks!