Skip to content

Instantly share code, notes, and snippets.

@benjamin-smith
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benjamin-smith/f292c17e435bd43b12e5 to your computer and use it in GitHub Desktop.
Save benjamin-smith/f292c17e435bd43b12e5 to your computer and use it in GitHub Desktop.
Seed EE Member Data

Tested with ExpressionEngine 2.9.0

From your project root, update your composer.json file to include the following.

{
    "require": {
        "eecli/bootstrap": "1.3",
        "fzaninotto/faker": "dev-master"
    }
}

Then visit http://yoursite.dev/seed-members.php to add members to the database.

<?php
include_once 'vendor/autoload.php';
// error handling
ini_set('display_errors', '1');
error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));
// bootstrap ee
$system_path = 'system';
include 'vendor/eecli/bootstrap/bootstrap-ee2.php';
ee()->load->model('member_model');
ee()->load->library('auth');
// config
$member_count = 100;
// init faker
$faker = Faker\Factory::create();
// generate members
for ($i=0; $i<$member_count; $i++) {
// generate password
$pass = $faker->password;
$hashed_password = ee()->auth->hash_password($pass);
// build member array
$cust_fields = FALSE;
$data = array(
'group_id' => 1,
'username' => $faker->username,
'screen_name' => $faker->name,
'password' => $hashed_password['password'],
'salt' => $hashed_password['salt'],
'unique_id' => random_string('encrypt'),
'crypt_key' => ee()->functions->random('encrypt', 16),
'email' => $faker->email,
'ip_address' => $faker->ipv4,
'join_date' => ee()->localize->now,
'language' => ee()->config->item('deft_lang'),
'timezone' => ee()->config->item('default_site_timezone'),
'date_format' => ee()->config->item('date_format') ? ee()->config->item('date_format') : '%n/%j/%y',
'time_format' => ee()->config->item('time_format') ? ee()->config->item('time_format') : '12',
'include_seconds' => ee()->config->item('include_seconds') ? ee()->config->item('include_seconds') : 'n',
);
// create member
$member_id = ee()->member_model->create_member($data, $cust_fields);
// show member data in browser for convenience
var_dump(array_merge($data, array('raw_pass' => $pass)));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment