swisnl / laravel-mautic
Laravel 对 Mautic API 的封装
Requires
- php: ^8.1
- graham-campbell/manager: ^5.1
- guzzlehttp/guzzle: ^7.5
- illuminate/contracts: ^10.0|^11.0
- illuminate/notifications: ^10.0|^11.0
- league/oauth2-client: ^2.6
- mautic/api-library: ^3.1
- psr/log: ^2
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.1.1|^7.10.0
- orchestra/testbench: ^9.0.0|^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
This package is auto-updated.
Last update: 2024-09-08 11:31:56 UTC
README
包含电池的 Mautic API 的 Laravel 封装。
安装
您可以通过 composer 安装此包
composer require swisnl/laravel-mautic
配置
Laravel Mautic 需要连接配置。
要开始,您需要发布所有供应商资源
php artisan vendor:publish --tag="mautic-config"
这将在您的应用程序中创建一个 config/mautic.php
文件,您可以修改该文件以设置配置。同时,请确保检查本包中原始配置文件在版本间的更改。
有两个配置选项
默认连接名称
此选项('default'
)是您指定以下哪个连接作为所有工作的默认连接的地方。当然,您可以使用管理器类同时使用许多连接。此设置的默认值是 'main'
。
Mautic 连接
此选项('connections'
)是您为应用程序设置每个连接的地方。已包含示例配置,但您可以添加尽可能多的连接。请注意,支持的两种身份验证方法是:"oauth"
和 "password"
。
使用方法
MauticManager
这是最感兴趣的类。它绑定到 ioc 容器中的 'laravel-mautic'
,可以通过 Facades\Mautic
门面访问。该类通过扩展 AbstractManager
实现了 ManagerInterface
。接口和抽象类都是我 Laravel Manager 包的一部分,因此您可能想访问 该存储库 中的文档,了解如何使用管理器类。请注意,返回的连接类始终是 Swis\Laravel\Mautic\Client
的实例。
Facades\Mautic
此门面将动态将静态方法调用传递到 ioc 容器中的 'laravel-mautic'
对象,默认情况下是 MauticManager
类。
LaravelMauticServiceProvider
此类不包含任何有意义的公共方法。此类应添加到 config/app.php
中的提供者数组。此类将设置 ioc 绑定。
实际示例
在这里,您可以看到这个包是如何简单易用的。默认情况下,默认适配器是 main
。在配置文件中输入您的身份验证详细信息后,它将正常工作
use Swis\Laravel\Mautic\Facades\Mautic; // you can alias this in config/app.php if you like Mautic::contacts()->find(1); // we're done here - how easy was that, it just works!
Mautic 管理器将表现得像 Swis\Laravel\Mautic\Client
类。如果您想调用特定的连接,可以使用 connection
方法
use Swis\Laravel\Mautic\Facades\Mautic; // writing this: Mautic::connection('main')->contacts()->find(1); // is identical to writing this: Mautic::contacts()->find(1); // and is also identical to writing this: Mautic::connection()->contacts()->find(1); // this is because the main connection is configured to be the default Mautic::getDefaultConnection(); // this will return main // we can change the default connection Mautic::setDefaultConnection('alternative'); // the default is now alternative // Get all the contacts Mautic::contacts()->getList();
如果您像我一样更喜欢使用依赖注入而不是门面,则可以轻松地像这样注入管理器
use Illuminate\Support\Facades\App; // you probably have this aliased already use Swis\Laravel\Mautic\MauticManager; class Foo { protected $mautic; public function __construct(MauticManager $mautic) { $this->mautic = $mautic; } public function bar() { $this->mautic->contacts()->find(1); } } App::make('Foo')->bar();
有关 Swis\Laravel\Mautic\Client
类上可用的功能的更多信息,请查看 Mautic 文档 https://developer.mautic.org/#endpoints,以及管理器类 https://github.com/GrahamCampbell/Laravel-Manager#usage。
通知
要使用此包内置的通知驱动程序,请确保您要通知的实体具有以下特征
class User extends Model { use Notifiable; use SynchronizesWithMauticTrait; use NotifiableViaMauticTrait; }
然后请确保向您的 Laravel 项目添加一个通知。这个通知应包含此包中的 MauticChannel
,并在 via()
方法中。确保您的通知包含一个 toMautic()
方法,该方法返回一个 MauticMessage
实例。为此,您可以使用 create()
方法。
<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Notification; use Swis\Laravel\Mautic\Notifications\MauticChannel; use Swis\Laravel\Mautic\Notifications\MauticMessage; class OrderFulfilled extends Notification { use Queueable; public function __construct( public readonly string $message, ) { } public function via(mixed $notifiable): array { return [MauticChannel::class]; } public function toMautic(mixed $notifiable): MauticMessage { return MauticMessage::create(1) // The id of the mail in Mautic ->tokens([ 'message' => $message, ]) ->to($mauticUserId); // Optional } }
在此示例中,我们在 MauticMessage
中设置了令牌和接收者。令牌用于在 Mautic 邮件模板中添加占位符。接收者是可选的,将使用 $notifiable->routeNotificationFor('mautic')
作为后备。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 变更日志。
贡献
安全性
如果您发现任何安全相关的问题,请通过电子邮件 security@swis.nl 报告,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。
此包是 Treeware。如果您在生产环境中使用它,那么我们要求您 为世界种一棵树,以感谢我们的工作。通过为 Treeware 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。
SWIS ❤️ 开源
SWIS 是一家来自荷兰莱顿的网页代理机构。我们热爱与开源软件一起工作。