kinoba / coupon-bundle
Symfony 的优惠券组合
Requires
- php: >=5.6
- doctrine/doctrine-bundle: ^1.6.10|^2.0
- doctrine/orm: ^2.5.11
- stof/doctrine-extensions-bundle: ^1.3
- symfony/framework-bundle: ~3.4 || ~4.1
Requires (Dev)
- pdepend/pdepend: ^2.5
- phploc/phploc: ^4.0
- phpmd/phpmd: ^2.6
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: 3.*
- symfony/phpunit-bridge: ~5.2
This package is not auto-updated.
Last update: 2024-09-27 17:16:33 UTC
README
此包正在建设中,请勿在生产环境中使用
安装
使用 Symfony Flex 的应用程序
打开命令行,进入您的项目目录并执行
$ composer require kinoba/coupon-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载包
打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本
$ composer require kinoba/coupon-bundle
此命令要求您全局安装 Composer,如 Composer 文档中的 安装章节 所述。
步骤 2:启用包
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的包列表中,启用此包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Kinoba\CouponBundle\KinobaCouponBundle(), // ... ); } }
步骤 3:配置您的应用
您必须将 2 个实体:Coupon 和 GeneratedCoupon 添加到您的项目中
namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Kinoba\CouponBundle\Model\Coupon as BaseCoupon; /** * @ORM\Table(name="coupons") * @ORM\Entity */ class Coupon extends BaseCoupon { }
namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Kinoba\CouponBundle\Model\GeneratedCoupon as BaseGeneratedCoupon; /** * @ORM\Table(name="generated_coupons") * @ORM\Entity */ class GeneratedCoupon extends BaseGeneratedCoupon { }
您需要将实体映射到我们的接口。在 doctrine.yaml
或 config.yml
中添加
doctrine: orm: resolve_target_entities: Kinoba\CouponBundle\Model\CouponUserInterface: App\Entity\User Kinoba\CouponBundle\Model\BillableInterface: App\Entity\Offer
您可以添加一个包含 3 个参数的新文件 kinoba_coupon.yaml
kinoba_coupon: default_mask: KIN***** characters: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ coupon_class: App\Entity\Coupon generated_coupon_class: App\Entity\GeneratedCoupon
步骤 4:使用方法
通过 CouponProvider
创建数据库中的新代码:create($amount = 1, $type = Coupon::TYPE_FIXED, $maxNumber = 1, $expiredAt = null, $mask = null)
$type
:TYPE_FIXED 用于货币折扣或 TYPE_PERCENTAGE 用于百分比
$maxNumber
:优惠券失效后的最大生成优惠券数
$expiredAt
:优惠券的有效期结束
$mask
:创建一个新的掩码优惠券(非默认掩码)
如果您想检查代码是否存在且可用:check($code)
如果有效则返回 Coupon
对象,如果无效则返回 false
如果您想检查用户是否第二次尝试使用代码,您可以调用 isSecondUsageAttempt
并传递 Coupon 对象和 CouponUserInterface 作为参数。返回一个布尔值
应用代码:apply($code, $user, $bill = null)
$bill
:如果您想将生成的优惠券与支付/账单/优惠连接
应用将检查代码是否可用