定制 erdmannfreunde/contao-license-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

erdmannfreunde/contao-license-bundle

Composer 安装命令:

composer require erdmannfreunde/contao-license-bundle

包简介

Zentrales Lizenz-Bundle für kommerzielle Contao-Erweiterungen von Erdmann & Freunde. Verwaltet Lizenzkeys, prüft Major-Version-Bindung und steuert Pro-Features.

README 文档

README

Zentrales Lizenz-Bundle für kommerzielle Contao-Erweiterungen von Erdmann & Freunde. Verwaltet Lizenzschlüssel, prüft Major-Version-Bindung und schaltet Pro-Features frei.

Konzept

  • Major-Bindung: Ein Schlüssel gilt für eine Major-Version (z.B. v1.x). Upgrades auf eine neue Major (v2.x) erfordern einen neuen Schlüssel.
  • Trial: Trial-Schlüssel sind normale Schlüssel mit state=trial und Ablaufdatum. Sie werden manuell vom Maintainer erzeugt.
  • Graceful degradation: Ist der Lizenzserver nicht erreichbar, gilt eine Karenzzeit von 7 Tagen.

Integration in ein Pro-Bundle

In der config/services.yaml des kommerziellen Bundles:

services:
  ErdmannFreunde\ContaoMailAutomationBundle\License\Registration:
    class: ErdmannFreunde\ContaoLicenseBundle\License\ProductRegistration
    arguments:
      $productKey: 'mail-automation'
      $productName: 'Contao Mail Automation Pro'
      $currentMajor: 1
      $vendorUrl: 'https://erdmann-freunde.de/mail-automation'
    tags:
      - { name: 'erdmannfreunde.license.product' }

Programmatischer Check im Pro-Code

public function __construct(private LicenseManager $licenses) {}

public function renderProSlider(): string
{
    if (!$this->licenses->isValid('mail-automation')) {
        return $this->renderUpgradeNotice();
    }
    return $this->renderActualSlider();
}

Deklarativer Check über Attribute

Auf Controllern oder Action-Methoden:

use ErdmannFreunde\ContaoLicenseBundle\Attribute\RequiresLicense;

#[RequiresLicense('mail-automation')]
class ProEditorController
{
    #[Route('/contao/pro-editor/save', methods: ['POST'])]
    public function save(): Response { /* ... */ }
}

Das LicenseCheckListener wertet das Attribute auf kernel.controller-Events aus und antwortet bei fehlender oder ungültiger Lizenz mit HTTP 403 plus klarer Fehlermeldung. Trials lassen sich per #[RequiresLicense('mail-automation', allowTrial: false)] ausschließen.

Backend

Im Contao-Backend erscheint unter System → Lizenzen eine tabellarische Übersicht aller registrierten Produkte mit Spalten Produkt · Lizenzschlüssel · Status · Gültig bis · Letzte Prüfung. Pro Produkt wird ein Schlüssel hinterlegt; der Status wird vom Lizenzserver synchronisiert und gecacht (24 h).

CLI

vendor/bin/contao-console erdmannfreunde:license:check

Prüft alle registrierten Produkte gegen den Server (Cache wird verworfen).

统计信息

  • 总下载量: 78
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2026-05-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固