1. Go to this page and download the library: Download slashid/symfony library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
slashid / symfony example snippets
// src/Controller/MyCustomController.php
namespace App\Controller;
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class TestController extends AbstractController
{
#[Route('/my-test-route')]
public function testRoute(): Response
{
/** @var \SlashId\Symfony\SlashIdUser */
$user = $this->getUser();
if ($user->hasGroup('Editor')) {
// Do things that only an "Editor" user can do.
}
if ($user->hasAnyGroup(['Admin', 'Editor', 'Reviewer'])) {
// Do things that someone in the group "Admin", OR in the group
// "Editor", OR in the group "Reviewer" can do.
}
if ($user->hasAllGroups(['Admin', 'Editor'])) {
// Do things that only someone that is in *both* "Admin" and
// "Editor" groups can do.
}
// Shows the user groups as a list of strings.
dd($user->getGroups());
}
}
// src/EventListener/WebhookEventListener.php
namespace App\EventListener;
use SlashId\Symfony\Event\WebhookEvent;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
#[AsEventListener]
class WebhookEventListener
{
public function __invoke(WebhookEvent $event): void
{
print_r([
$event->getEventName(),
$event->getEventId(),
$event->getTriggerContent(),
]);
}
}
use App\Entity\User;
use Doctrine\ORM\EntityManagerInterface;
use SlashId\Php\PersonInterface;
use SlashId\Symfony\SlashIdUser;
return static function (EntityManagerInterface $entityManager): array {
/** @var array<User> */
$doctrineUsers = $entityManager->getRepository(User::class)->findAll();
$slashIdUsers = [];
foreach ($doctrineUsers as $doctrineUser) {
$roles = $doctrineUser->getRoles();
unset($roles[array_search('ROLE_USER', $roles)]);
// Converts "ROLE_ADMIN" into "Admin".
$roles = array_map(fn (string $role) => ucwords(strtolower(str_replace('_', ' ', str_replace('ROLE_', '', $role)))), $roles);
$slashIdUser = new SlashIdUser();
$slashIdUser
->addEmailAddress($doctrineUser->getEmail())
->setLegacyPasswordToMigrate($doctrineUser->getPassword())
// Uncomment if you want to set the phone number.
// ->addPhoneNumber($doctrineUser->getPhoneNumber())
->setGroups($roles)
// Uncomment if you want to specify a region for the user.
// ->setRegion('us-iowa')
->setBucketAttributes(PersonInterface::BUCKET_ORGANIZATION_END_USER_NO_ACCESS, [
// List the user attributes you want to migrate, grouped by bucket.
'old_id' => $doctrineUser->getUserIdentifier(),
// 'first_name' => $doctrineUser->getFirstName(),
// 'last_name' => $doctrineUser->getLastName(),
])
;
$slashIdUsers[] = $slashIdUser;
}
return $slashIdUsers;
};
$ php bin/console slashid:import:create-script
Please inform the class of the user model [\App\Entity\User]:
>
[OK] The Slash ID migration script has been created at
/var/www/symfony/migrations/slashid/user-migration.php. Please open the file and modify it
according to the instructions in it.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.