Back to Blog
Dotkernel API

How to implement MailChimp in DotKernel API

This article will walk you through the process of implementing MailChimp into your instance of DotKernel API using drewm/mailchimp-api
  Step 1: Add the library to your application using the following command: composer require drewm/mailchimp-api   Step 2: Create configuration file config/autoload/mailchimp.global.php and paste the following content inside of it:
<?php

declare(strict_types=1);

return
];

  Step 3: Create factory src/App/src/MailChimp/Factory/MailChimpFactory.php which will return an instance of DrewM\MailChimp. Paste the following content inside this file:
<?php

declare(strict_types=1);

namespace Api\App\MailChimp\Factory;

use DrewM\MailChimp\MailChimp;
use Psr\Container\ContainerInterface;

/**
 * Class MailChimpFactory
 * @package Api\App\MailChimp\Factory
 */
class MailChimpFactory
{
    /**
     * @param ContainerInterface $container
     * @return MailChimp
     * @throws \Exception
     */
    public function __invoke(ContainerInterface $container) : MailChimp
    {
        $config = $container->get('config') ?? [];

        return new MailChimp($config ?? '');
    }
}

  Step 4: Let your application use this factory by adding it to the main ConfigProvider: To do this, open file src/App/src/ConfigProvider.php and locate the method called getDependencies(). Inside this method, locate the key factories which points to an array. Inside this array add the following line:
MailChimp::class => MailChimpFactory::class,
Make sure you you add the corresponding uses:
use Api\App\MailChimp\Factory\MailChimpFactory;
use DrewM\MailChimp\MailChimp;
  After this, you can start using the library by @Injecting MailChimp::class where it's needed.