fourlabs/gmail-doctrine-bundle

fourlabs/gmail-bundle 的 Doctrine 实现

0.1.0 2017-02-23 15:37 UTC

This package is auto-updated.

Last update: 2024-09-22 07:18:28 UTC


README

GmailDoctrineBundle 为您提供了 GmailBundle 的 Doctrine 实现。

StyleCI SensioLabsInsight

安装

    $ composer require fourlabs/gmail-doctrine-bundle

配置

// app/config/config.yml
    
fl_gmail_doctrine:
  sync_setting_class: TriprHqBundle\Entity\GmailSyncSetting

设置

  • 在您的实体文件夹中创建 doctrine 实体,例如 AppBundle\Entity
  • 这些实体必须扩展此捆绑包 Entity 文件夹中的所有 MappedSuperClasses。
  • 请确保您使用提供的存储库(来自实体文件夹)。或者扩展存储库。
<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use FL\GmailDoctrineBundle\Entity\SyncSetting;

/**
 * @ORM\Entity(repositoryClass="FL\GmailDoctrineBundle\Entity\SyncSettingRepository")
 */
class GmailSyncSetting extends SyncSetting
{
}

为什么选择 GmailDoctrineBundle?

  • 一个同步命令,让您同步 gmailIds、gmailMessages 或两者。即有两个选项
    • 示例 php bin/console fl:gmail_doctrine:sync --mode=both --limit_messages_per_user=100
    • 必选选项 mode:可以是 gmail_idsgmail_messagesboth
    • 选项 limit_messages_per_user:对于 mode=gmail_idsmode=both 是必需的。必须是一个正整数。
    • 建议:在同步之间留出足够的空间,以免重复同步相同的消息。消息不会被保存到数据库中两次,但您可能会遇到限制。
    • 注意:每次请求的消息是分批的,每次45条。每个批次请求大约需要2秒。
    • 建议:将每个用户的消息限制设置为315条。 7 批次 * 每批次的2秒 = 14秒。这意味着您必须在请求之间至少留下 14 * 用户数量 秒。
    • 注意:在运行 both 的同步之前,请确保至少运行一次 gmail_ids 的同步。
  • 事件监听器,将我们从 Google 获取的内容保存到数据库中。请参阅 EventListener 文件夹中的更多内容。
  • FL\GmailDoctrineBundle\Entity\SyncSetting 实体
    • 允许您选择要同步哪些电子邮件收件箱以及发送电子邮件。
    • 请参阅相应的表单,FL\GmailDoctrineBundle\Form\Type\SyncSettingType
  • FL\GmailDoctrineBundle\Model\OutgoingEmail 模型类
    • 表示一个发件电子邮件。
    • 请参阅相应的表单,FL\GmailDoctrineBundle\Form\Type\OutgoingEmailType
    • 发件人字段,根据您通过 FL\GmailDoctrineBundle\Entity\SyncSetting 启用的内容。
  • FL\GmailDoctrineBundle\Services\GoogleClientStatusWrapperFL\GmailBundle\Services\GoogleClientStatus 的包装器。
    • 复制身份验证方法,GoogleClientStatusWrapper::isAuthenticated
    • 还有两个其他方法 GoogleClientStatusWrapper::isSetupForDomain(string $domain)GoogleClientStatusWrapper::isSetupForAtLeastOneDomain()

许可证

GmailDoctrineBundle 在 MIT 许可证下授权。