Skip to content

A minimal service provider to set up and use the Mailchimp PHP library in Laravel 5.*

Notifications You must be signed in to change notification settings

krushkamx/mailchimp-laravel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

skovmand/mailchimp-laravel

A minimal service provider to set up and use the Mailchimp API v2 PHP library in Laravel v5.*

For Laravel v4 check https://packagist.org/packages/hugofirth/mailchimp

Please note that Mailchimp API v2 is deprecated from jan 1st 2017. This package uses the v2 API, because it relies on the Mailchimp PHP API Client.

How it works

This package contains a service provider, which binds an instance of an initialized Mailchimp client to the IoC-container.

You recieve the Mailchimp client through depencency injection already set up with your own API key.

Usage example

class NewsletterManager
{
	protected $mailchimp;
	protected $listId = '1234567890';        // Id of newsletter list

	/**
	 * Pull the Mailchimp-instance from the IoC-container.
	 */
	public function __construct(\Mailchimp $mailchimp)
	{
		$this->mailchimp = $mailchimp;
	}

	/**
	 * Access the mailchimp lists API
     * for more info check "https://apidocs.mailchimp.com/api/2.0/lists/subscribe.php"
	 */
	public function addEmailToList($email)
	{
		try {
			$this->mailchimp
				->lists
				->subscribe(
					$this->listId,
					['email' => $email]
				);
        } catch (\Mailchimp_List_AlreadySubscribed $e) {
        	// do something
        } catch (\Mailchimp_Error $e) {
        	// do something
        }
	}
}

Or you can manually instantiate the Mailchimp client by using:

$mailchimp = app('Mailchimp');

Setup Laravel v5.*

Step 1: Adding the dependency to composer.json

Add this to your composer.json in your Laravel folder. Note: Adding this dependency will automatically setup "mailchimp/mailchimp": "~2.0" too.

"require": {
    "skovmand/mailchimp-laravel": "1.*",
}

Step 2: Register the service provider

Register the service provider in config/app.php by inserting into the providers array

'providers' => [
	Skovmand\Mailchimp\MailchimpServiceProvider::class,
]

Step 3: From the command-line run

php artisan vendor:publish --provider="Skovmand\Mailchimp\MailchimpServiceProvider"

This will publish config/mailchimp.php to your config folder.

Setup Lumen v5.*

Step 1: Adding the dependency to composer.json

Add this to your composer.json in your Laravel folder. Note: Adding this dependency will automatically setup "mailchimp/mailchimp": "~2.0" too. Aftwards, run composer update from your command line.

"require": {
    "skovmand/mailchimp-laravel": "1.*",
}

Step 2: Register the service provider

Register the service provider in bootstrap/app.php

$app->register(Skovmand\Mailchimp\MailchimpServiceProvider::class);

# Mailchimp service must be registered before routes are included
require __DIR__ . '/../app/Http/routes.php';

Step 3: Create the Mailchimp configuration file (config/mailchimp.php):

<?php

return [
    /*
    |--------------------------------------------------------------------------
    | API Secret Key
    |--------------------------------------------------------------------------
    |
    | The api secret key to access Mailchimp. If you don't know the API key, find it here:
    | "http://kb.mailchimp.com/accounts/management/about-api-keys#Find-or-Generate-Your-API-Key"
    |
     */

    'apikey' => env('MAILCHIMP_API_KEY')
];

Setup Mailchip API key (Laravel/Lumen)

Step 4: Edit your .env file

for more info check "http://kb.mailchimp.com/accounts/management/about-api-keys#Find-or-Generate-Your-API-Key"

MAILCHIMP_API_KEY="your-api-key-here"

Good to go!

About

A minimal service provider to set up and use the Mailchimp PHP library in Laravel 5.*

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%