<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
taylornetwork / laravel-username-generator example snippets
// ...
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
class User extends Authenticatable
{
// ...
use FindSimilarUsernames;
use GeneratesUsernames;
protected $fillable = [
// ...
'username',
];
// ...
}
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
// ...
$table->string('username')->unique();
// ...
});
}
}
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
class User extends Authenticatable
{
use FindSimilarUsernames;
}
use TaylorNetwork\UsernameGenerator\Generator;
$generator = new Generator();
$username = $generator->generate('Test User');
'testuser'
use TaylorNetwork\UsernameGenerator\Facades\UsernameGenerator;
$username = UsernameGenerator::generate();
'monogamousswish'
use TaylorNetwork\UsernameGenerator\Generator;
class User
{
public $name = 'Some Other User';
public function getUsername()
{
$generator = new Generator();
return $generator->generateFor($this);
}
}
'someotheruser'
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
class User
{
use FindSimilarUsernames, GeneratesUsernames;
}
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
class User
{
use FindSimilarUsernames, GeneratesUsernames;
public function generatorConfig(&$generator)
{
$generator->setConfig([ 'separator' => '_' ]);
}
}
class User
{
// ...
public function getField(): string
{
return $this->first_name . ' ' . $this->last_name;
}
// ...
}
$generator = new Generator();
$generator->setDriver('email');
$generator->generate('[email protected]');
// Returns
'testuser'
[
'stripUnwantedCharacters', // Removes all unwanted characters from the text
'convertCase', // Converts the case of the field to the set value (upper, lower, mixed)
'collapseWhitespace', // Collapses any whitespace to a single space
'addSeparator', // Converts all spaces to separator
'makeUnique', // Makes the username unique (if set)
]
public function beforeConvertCase(string $text): string
{
// --
}
public function afterStripUnwantedCharacters(string $text): string
{
// --
}
public function first(string $text): string
{
// Happens first before doing anything else
}
public function last(string $text): string
{
// Happens last just before returning
}
namespace App\Drivers;
use TaylorNetwork\UsernameGenerator\Drivers\BaseDriver;
class AppendDriver extends BaseDriver
{
public $field = 'name';
public function afterMakeUnique(string $text): string
{
return $text . '-auto';
}
}