PHPackages                             tourze/wechat-work-group-welcome-template-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tourze/wechat-work-group-welcome-template-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

tourze/wechat-work-group-welcome-template-bundle
================================================

客户联系-入群欢迎语素材

0.0.2(6mo ago)00MITPHPCI passing

Since Jun 4Pushed 4mo agoCompare

[ Source](https://github.com/tourze/wechat-work-group-welcome-template-bundle)[ Packagist](https://packagist.org/packages/tourze/wechat-work-group-welcome-template-bundle)[ RSS](/packages/tourze-wechat-work-group-welcome-template-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (43)Versions (3)Used By (0)

WechatWork Group Welcome Template Bundle
========================================

[](#wechatwork-group-welcome-template-bundle)

[![PHP Version](https://camo.githubusercontent.com/7663c9d53dc13cedaf0660a8745a7e77d2dd711257f36aa86ebce12a0600ef42/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e312d626c75652e737667)](https://php.net/)[![License](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](LICENSE)[![Symfony](https://camo.githubusercontent.com/d3a4b4f2bd81442128a85ff8ae5d1350d721e19c98ee865a08ef361d511225bd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73796d666f6e792d253345253344362e342d626c61636b2e737667)](https://symfony.com/)[![Build Status](https://camo.githubusercontent.com/c27a457659b89ee4f1f80f7995c559dd37f2051bde7167ad25791e5c5c92cc8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d70617373696e672d627269676874677265656e2e737667)](https://github.com/tourze/php-monorepo)[![Code Coverage](https://camo.githubusercontent.com/d8dbb2f38bef2f9c30655f9e7a3e650970ccf79d919bb348d7017f42a79fdd38/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d39382532352d627269676874677265656e2e737667)](https://github.com/tourze/php-monorepo)

[English](README.md) | [中文](README.zh-CN.md)

A Symfony bundle for managing WeChat Work group welcome templates. This bundle provides entities, repositories, and API requests for creating, editing, and managing welcome messages that are sent to new group members.

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [API Requests](#api-requests)
- [Entity Properties](#entity-properties)
- [Event Listeners](#event-listeners)
- [Advanced Usage](#advanced-usage)
- [Testing](#testing)
- [Requirements](#requirements)
- [License](#license)
- [References](#references)

Features
--------

[](#features)

- **Entity Management**: Doctrine ORM entities for group welcome templates
- **API Integration**: Request classes for WeChat Work external contact API
- **Rich Content Support**: Support for text, images, links, mini-programs, files, and videos
- **Automatic Sync**: Event listeners for automatic synchronization with WeChat Work
- **Comprehensive Testing**: Full test coverage with PHPUnit

Installation
------------

[](#installation)

Install the bundle via Composer:

```
composer require tourze/wechat-work-group-welcome-template-bundle
```

Quick Start
-----------

[](#quick-start)

### 1. Create a Group Welcome Template

[](#1-create-a-group-welcome-template)

```
use WechatWorkGroupWelcomeTemplateBundle\Entity\GroupWelcomeTemplate;
use WechatWorkGroupWelcomeTemplateBundle\Request\AddGroupWelcomeTemplateRequest;

// Create a new template entity
$template = new GroupWelcomeTemplate();
$template->setAgent($agent); // Your WeChat Work agent
$template->setNotify(true);
$template->setTextContent('Welcome to our group!');
$template->setSync(true); // Enable automatic sync

// Save to database (will automatically sync to WeChat Work)
$entityManager->persist($template);
$entityManager->flush();
```

### 2. Create API Request Manually

[](#2-create-api-request-manually)

```
use WechatWorkGroupWelcomeTemplateBundle\Request\AddGroupWelcomeTemplateRequest;

$request = new AddGroupWelcomeTemplateRequest();
$request->setAgent($agent);
$request->setNotify(true);
$request->setTextContent('Welcome to our team!');
$request->setLinkTitle('Learn More');
$request->setLinkUrl('https://example.com');
$request->setLinkDesc('Click to learn more about our company');

// Use with WorkService
$response = $workService->request($request);
```

### 3. Rich Content Templates

[](#3-rich-content-templates)

```
$template = new GroupWelcomeTemplate();
$template->setAgent($agent);
$template->setNotify(true);

// Text content
$template->setTextContent('Welcome! Here are some resources:');

// Image
$template->setImageMedia($imageMedia); // TempMedia entity
// or
$template->setImagePicUrl('https://example.com/welcome.jpg');

// Link
$template->setLinkTitle('Company Website');
$template->setLinkUrl('https://company.com');
$template->setLinkDesc('Visit our website');
$template->setLinkPicUrl('https://company.com/logo.jpg');

// Mini-program
$template->setMiniprogramTitle('Team Tool');
$template->setMiniprogramAppId('wxabcd1234');
$template->setMiniprogramPage('pages/welcome');
$template->setMiniprogramMedia($miniprogramMedia);

// File
$template->setFileMedia($fileMedia);

// Video
$template->setVideoMedia($videoMedia);
```

Configuration
-------------

[](#configuration)

The bundle automatically configures services. No additional configuration is required.

### Service Configuration

[](#service-configuration)

Services are automatically registered:

- `WechatWorkGroupWelcomeTemplateBundle\Repository\GroupWelcomeTemplateRepository`
- `WechatWorkGroupWelcomeTemplateBundle\EventSubscriber\GroupWelcomeTemplateListener`

API Requests
------------

[](#api-requests)

The bundle provides several request classes for WeChat Work API:

### AddGroupWelcomeTemplateRequest

[](#addgroupwelcometemplaterequest)

```
$request = AddGroupWelcomeTemplateRequest::createFromEntity($template);
$response = $workService->request($request);
```

### EditGroupWelcomeTemplateRequest

[](#editgroupwelcometemplaterequest)

```
$request = EditGroupWelcomeTemplateRequest::createFromEntity($template);
$request->setTemplateId($templateId);
$response = $workService->request($request);
```

### DeleteGroupWelcomeTemplateRequest

[](#deletegroupwelcometemplaterequest)

```
$request = new DeleteGroupWelcomeTemplateRequest();
$request->setTemplateId($templateId);
$request->setAgent($agent);
$response = $workService->request($request);
```

### GetGroupWelcomeTemplateRequest

[](#getgroupwelcometemplaterequest)

```
$request = new GetGroupWelcomeTemplateRequest();
$request->setTemplateId($templateId);
$request->setAgent($agent);
$response = $workService->request($request);
```

Entity Properties
-----------------

[](#entity-properties)

The `GroupWelcomeTemplate` entity includes:

- **Basic Properties**: `agent`, `templateId`, `notify`
- **Text Content**: `textContent`
- **Image**: `imageMedia`, `imagePicUrl`
- **Link**: `linkTitle`, `linkUrl`, `linkDesc`, `linkPicUrl`
- **Mini-program**: `miniprogramTitle`, `miniprogramAppId`, `miniprogramPage`, `miniprogramMedia`
- **File**: `fileMedia`
- **Video**: `videoMedia`
- **Tracking**: Created/updated timestamps, user blame, IP tracking

Event Listeners
---------------

[](#event-listeners)

The bundle includes automatic event listeners:

- **prePersist**: Creates template in WeChat Work when saving new entities
- **preUpdate**: Updates template in WeChat Work when modifying entities
- **postRemove**: Deletes template from WeChat Work when removing entities

Advanced Usage
--------------

[](#advanced-usage)

### Custom Event Listeners

[](#custom-event-listeners)

You can create custom event listeners for additional functionality:

```
use Doctrine\Bundle\DoctrineBundle\Attribute\AsEntityListener;
use Doctrine\ORM\Events;
use WechatWorkGroupWelcomeTemplateBundle\Entity\GroupWelcomeTemplate;

 #[AsEntityListener(event: Events::postPersist, method: 'postPersist')]
class CustomGroupWelcomeTemplateListener
{
    public function postPersist(GroupWelcomeTemplate $template): void
    {
        // Custom logic after template creation
    }
}
```

### Repository Extensions

[](#repository-extensions)

Extend the repository for custom queries:

```
use WechatWorkGroupWelcomeTemplateBundle\Repository\GroupWelcomeTemplateRepository;

class CustomGroupWelcomeTemplateRepository extends GroupWelcomeTemplateRepository
{
    public function findActiveTemplates(): array
    {
        return $this->createQueryBuilder('t')
            ->where('t.sync = :sync')
            ->setParameter('sync', true)
            ->getQuery()
            ->getResult();
    }
}
```

### Batch Operations

[](#batch-operations)

For bulk operations, you can disable automatic sync:

```
// Process multiple templates without individual sync
foreach ($templates as $template) {
    $template->setSync(false); // Disable auto-sync
    $entityManager->persist($template);
}
$entityManager->flush();

// Manually sync all at once
$syncRequest = new BatchSyncGroupWelcomeTemplatesRequest();
// ... configure and execute
```

Testing
-------

[](#testing)

Run the test suite:

```
./vendor/bin/phpunit packages/wechat-work-group-welcome-template-bundle/tests
```

### Test Coverage

[](#test-coverage)

The bundle includes comprehensive test coverage:

- **Entity Tests**: Test GroupWelcomeTemplate entity properties and methods
- **Repository Tests**: Test repository construction and basic functionality
- **Request Tests**: Test API request classes and data transformation
- **Event Listener Tests**: Test automatic synchronization with WeChat Work
- **Dependency Injection Tests**: Test bundle configuration and service registration

Requirements
------------

[](#requirements)

- PHP 8.1+
- Symfony 6.4+
- Doctrine ORM 3.0+
- tourze/wechat-work-bundle
- tourze/wechat-work-media-bundle

License
-------

[](#license)

This bundle is released under the MIT License. See the bundled LICENSE file for details.

References
----------

[](#references)

- [WeChat Work Group Welcome Template API Documentation](https://developer.work.weixin.qq.com/document/path/92366)
- [WeChat Work External Contact API](https://developer.work.weixin.qq.com/document/path/92366#%E6%B7%BB%E5%8A%A0%E5%85%A5%E7%BE%A4%E6%AC%A2%E8%BF%8E%E8%AF%AD%E7%B4%A0%E6%9D%90)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance72

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity28

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~161 days

Total

2

Last Release

180d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e354fdb316da535dfa8ba2e9193a473c403b6bc6fb9170778d1dc50e304c6e9d?d=identicon)[tourze](/maintainers/tourze)

---

Top Contributors

[![tourze](https://avatars.githubusercontent.com/u/13899502?v=4)](https://github.com/tourze "tourze (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/tourze-wechat-work-group-welcome-template-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/tourze-wechat-work-group-welcome-template-bundle/health.svg)](https://phpackages.com/packages/tourze-wechat-work-group-welcome-template-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
