定制 visual-craft/email-types-bundle 二次开发

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

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

visual-craft/email-types-bundle

最新稳定版本:v0.6.0

Composer 安装命令:

composer require visual-craft/email-types-bundle

包简介

Symfony Bundle for structured email composing

README 文档

README

Symfony Bundle for structured email composing.

Installation and configuration

Step 1: Install the bundle

composer require visual-craft/email-types-bundle

Step 2: Enable the bundle

If you are not using Flex, you also have to enable the bundle by adding the following line in the app/AppKernel.php:

<?php // config/bundles.php return [ // ... VisualCraft\EmailTypesBundle\VisualCraftEmailTypesBundle::class => ['all' => true], // ... ];

Configure bundle (optional)

# config/packages/email_types.yaml visual_craft_email_types: # used in case of email 'from' is not explicitly set (default null)  default_email_from: 'Name <contact@example.com>'

Usage

Create email type class

<?php namespace App\EmailType; use App\Entity\User; use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Component\OptionsResolver\OptionsResolver; use VisualCraft\EmailTypesBundle\EmailTypeInterface; class UserActivationType implements EmailTypeInterface { public function configureOptions(OptionsResolver $optionsResolver): void { $optionsResolver ->setRequired(['user']) ->setAllowedTypes('user', User::class) ; } public function configureEmail(TemplatedEmail $email, array $options): void { $user = $options['user']; $email ->to($user->getEmail()) ->from('admin@example.com') // subject is automatically translated // translation parameters are populated from context (scalar values only) ->subject('Hello %fullName%') ->htmlTemplate('email/activation.html.twig') ->context([ 'user' => $user, // used as subject translation parameter %fullName% 'fullName' => $user->getFullName(), ]) ; } }

Register your email type class as a service

# config/services.yaml services: Email\Type\UserActivationType: ~

Send the email

<?php namespace App\Controller; use App\Entity\User; use App\EmailType\UserActivationType; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use VisualCraft\EmailTypesBundle\Mailer; class ActivationController extends AbstractController { private Mailer $mailer; public function __construct(Mailer $mailer) { $this->mailer = $mailer; } public function __invoke(Request $request): Response { // ...code $this->mailer->send(UserActivationType::class, [ 'user' => $this->getUser(), ]); // ...code } }

Tests

$ vendor/bin/simple-phpunit install $ vendor/bin/simple-phpunit

Additional Tools

$ composer install $ vendor/bin/php-cs-fixer fix $ composer lint

Credits

Developed by Visual Craft.

License

This bundle is under the MIT license. See the complete license in LICENSE file.

统计信息

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

GitHub 信息

  • Stars: 1
  • Watchers: 5
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固