/** * Constructor * * @param string $mailChimpUser * @param string $mailChimpPassword * @param array $users */ function __construct($mcApiKey, array $users) { $this->_users = $users; unset($users); foreach ($this->_users as $i => $user) { $this->_keys[$user['EMAIL']] = $i; } parent::__construct($mcApiKey); }
/** * Constructor * * @param string $mailChimpUser * @param string $mailChimpPassword * @param array $mysqliOptions * @param array $tableOptions * @param int $batchSize */ function __construct($mcApiKey, array $mysqliOptions, $userExistsQuery = null, $query = null, array $mergeColumns = null, $batchSize = 500) { $mysqliOptionDefaults = array('host' => ini_get('mysqli.default_host'), 'username' => ini_get('mysqli.default_user'), 'passwd' => ini_get('mysqli.default_pw'), 'dbname' => '', 'port' => ini_get('mysqli.default_port'), 'socket' => ini_get('mysqli.default_socket')); $mysqliOptions = array_merge($mysqliOptionDefaults, $mysqliOptions); $this->_db = new mysqli($mysqliOptions['host'], $mysqliOptions['username'], $mysqliOptions['passwd'], $mysqliOptions['dbname'], $mysqliOptions['port'], $mysqliOptions['socket']); if ($this->_db->connect_errno) { throw new Galahad_MailChimp_Synchronizer_Exception('MySQLi Connection Error: ' . $this->_db->connect_error); } if (null !== $query) { if (empty($query)) { throw new Galahad_MailChimp_Synchronizer_Exception('Selection query cannot be empty'); } $this->_query = $query; } if (null !== $mergeColumns) { if (!is_array($mergeColumns)) { throw new Galahad_MailChimp_Synchronizer_Exception('$mergeColumns must be an array'); } if (!in_array('EMAIL', $mergeColumns)) { throw new Galahad_MailChimp_Synchronizer_Exception('$mergeColumns must at least include an EMAIL column'); } $this->_mergeColumns = $mergeColumns; } parent::__construct($mcApiKey, $batchSize); }