定制 jlchassaing/cdn-purger 二次开发

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

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

jlchassaing/cdn-purger

Composer 安装命令:

composer require jlchassaing/cdn-purger

包简介

Symfony bundle to send purge requests to CDN APIs

README 文档

README

Symfony 7 bundle pour envoyer des requêtes de purge à des APIs CDN.

Installation

composer require jlchassaing/cdn-purger

Enregistrer le bundle dans config/bundles.php :

return [
    // ...
    CdnPurge\CdnPurgeBundle::class => ['all' => true],
];

Configuration

Créer config/packages/cdn_purge.yaml :

cdn_purge:
    default_connector: cloudflare  # null = tous les connecteurs actifs

    connectors:
        cloudflare:
            enabled: true
            zone_id: '%env(CLOUDFLARE_ZONE_ID)%'
            api_token: '%env(CLOUDFLARE_API_TOKEN)%'   # recommandé
            # email: '%env(CLOUDFLARE_EMAIL)%'          # alternative
            # api_key: '%env(CLOUDFLARE_API_KEY)%'      # alternative

Variables d'environnement dans .env :

CLOUDFLARE_ZONE_ID=abc123def456
CLOUDFLARE_API_TOKEN=your_token_here

Utilisation

Via le service PurgeManager

use CdnPurge\Service\PurgeManager;

class MyController
{
    public function __construct(private PurgeManager $purgeManager) {}

    public function clearCache(): void
    {
        // Purger des URLs spécifiques
        $this->purgeManager->purge([
            'https://example.com/page-1',
            'https://example.com/page-2',
        ]);

        // Purger tout le cache
        $this->purgeManager->purgeAll();

        // Cibler un connecteur précis
        $this->purgeManager->purge(['https://example.com/'], 'cloudflare');
    }
}

Via la commande CLI

# Purger des URLs
php bin/console cdn:purge https://example.com/page-1 https://example.com/page-2

# Purger tout le cache
php bin/console cdn:purge --all

# Cibler un connecteur précis
php bin/console cdn:purge --connector=cloudflare --all

Ajouter un connecteur personnalisé

Implémenter ConnectorInterface :

use CdnPurge\Connector\ConnectorInterface;
use CdnPurge\Exception\PurgeException;

class AkamaiConnector implements ConnectorInterface
{
    public function getName(): string
    {
        return 'akamai';
    }

    public function purge(array $urls): void
    {
        // ... appel API Akamai
    }

    public function purgeAll(): void
    {
        // ... appel API Akamai
    }
}

Déclarer le service (avec autowiring activé, le tag est ajouté automatiquement) :

# config/services.yaml
services:
    App\Cdn\AkamaiConnector:
        arguments:
            $apiUrl: '%env(AKAMAI_API_URL)%'
            $clientToken: '%env(AKAMAI_CLIENT_TOKEN)%'

Le connecteur est détecté automatiquement grâce à l'autoconfiguration.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固