uhin / laravel_api
Laravel 的 API 辅助库。
Requires
- ext-curl: *
- ext-json: *
- doctrine/dbal: ^3.1
- laravel/framework: >=8.0
- laravel/tinker: >=2.5
- php-amqplib/php-amqplib: ^3.0
- ramsey/uuid: ^4.1
- sendgrid/sendgrid: ^7.9
- v3.x-dev
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- v2.x-dev
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.27
- 2.0.26
- 2.0.25
- 2.0.24
- 2.0.23
- 2.0.22
- 2.0.21
- 2.0.20
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- v1.x-dev
- 1.1.20
- 1.1.19
- 1.1.18
- 1.1.17
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- dev-feature/add_or_where_in
- dev-update/testable_controller_generation
- dev-feature/shc
- dev-feature/rabbit_enhancements
This package is auto-updated.
Last update: 2024-08-30 01:23:16 UTC
README
开发者:要为 composer 创建新版本,您需要提交您的更改,添加标签(新版本号),然后推送更改和标签。
在 PHPStorm 中:提交,点击日志,右键单击提交并添加标签,推送(检查推送标签)。
开发使用
在使用此库的服务中,您需要对 composer.json 进行两个更改以进行开发。
首先,将此库的 require 版本改为以下之一:“dev-master”、“1.x-dev”或“2.x-dev”,具体取决于您正在工作的分支。
其次,将以下代码块添加到您的 composer.json 中(编辑路径)
"repositories": [
{
"type": "path",
"url": "/Users/rmclelland/Projects/laravel_api"
}
]
从您的项目目录运行 composer update。这将创建库与使用该库的项目之间的符号链接。
composer update uhin/laravel_api
升级指南
在升级版本时查看这些文档。
使用 Rabbit
Rabbit 构建者
php artisan uhin:make:rabbit-builder
构造函数为构建者提供了配置。根据需要修改构造函数。在构建器的先前版本中,更改是在构建方法中进行的。现在不再需要这样做,但如果需要,构建器仍然可以被覆盖。
public function __construct() { parent::__construct(); // You can overwrite these parent values // $this->exchange = config('uhin.rabbit.exchange'); // $this->queue = config('uhin.rabbit.queue'); // $this->routingKey = config('uhin.rabbit.routing_key'); // $this->connectionName = 'default'; }
Rabbit 发送者
单条消息
要将消息发送到 RabbitMQ,有几种方法可以实现。最基本的方法使用默认交换和来自 .env 的路由键。
(new RabbitSender)->send(json_encode([ 'job_id' => '12312312', 'source' => 'sftp', 'filename' => 'test-file.x12', 'data' => 'alskfl' ]));
另一种将消息发送到 RabbitMQ 的方法接受 RabbitBuilder 作为参数。发送者现在可以使用构建器的参数来确定交换和路由键。
$rabbit = new RabbitSender(true, new MPILookupQueueBuilder()); $rabbit->send(json_encode($message));
发送者的属性也可以被覆盖。
$rabbit->setExchange(config('uhin.workers.lookup_mpi_exchange')); $rabbit->setRoutingKey(config('uhin.workers.lookup_mpi_routing_key'));
批量发送
与单条消息发送的使用相同。sendBatch() 方法接受消息数组并将它们批量发送。对于大量消息,性能显著提高。
Rabbit 接收者
接收者也可以接受构建者并填充连接到 RabbitMQ 的属性。
启动/停止/排空工作进程
启动
php artisan uhin:workers:start
停止
php artisan uhin:workers:stop
排空
php artisan uhin:workers:drain
使用 Twilio SendGrid
首先,确保您已指定以下配置值。SendGridTemplate 类将使用这些配置
config('mail.from.address')config('mail.from.name')config('mail.sendgrid.api-key')
模板
使用 SendGrid 邮件模板和 SendGridTemplate 类发送电子邮件的示例
$templateId = config('mail.sendgrid.template.test'); $email = new SendGridTemplate($templateId); // Send the email to user1, and CC user2 and user3 $metaDataA = new \SendGrid\Mail\Personalization(); $metaDataA->addDynamicTemplateData('sendgrid_var_1', 'custom data value 1'); $metaDataA->addDynamicTemplateData('sendgrid_var_2', 'custom data value 2'); $metaDataA->addCc(new \SendGrid\Mail\Cc('user2@test.com', 'User 2')); $metaDataA->addCc(new \SendGrid\Mail\Cc('user3@test.com', 'User 3')); $email->addRecipient('user1@test.com', 'User 1', $metaDataA); // Send the email to user4, and BCC user5 $metaDataB = new \SendGrid\Mail\Personalization(); $metaDataB->addDynamicTemplateData('sendgrid_var_1', 'custom data value 3'); $metaDataB->addDynamicTemplateData('sendgrid_var_2', 'custom data value 4'); $metaDataB->addBcc(new \SendGrid\Mail\Bcc('user5@test.com', 'User 5')); $email->addRecipient('user4@test.com', 'User 4', $metaDataB); // Send out the email template with data attached to it $email->send();