safeLoad(); $pdo = new PDO( sprintf( 'mysql:host=%s;port=%d;dbname=%s;charset=utf8mb4', getenv('DB_HOST') ?: 'db', getenv('DB_PORT') ?: 3306, getenv('DB_DATABASE') ?: 'domovoy' ), getenv('DB_USERNAME') ?: 'domovoy', getenv('DB_PASSWORD') ?: 'domovoy', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ] ); $authService = new AuthService(new UserRepository($pdo)); $command = $argv[1] ?? 'help'; switch ($command) { case 'setup:user': if ($argv[2] ?? false) { // CLI mode: bin/console setup:user username password $username = $argv[2]; $password = $argv[3] ?? 'password123'; } else { // Interactive mode echo "Username: "; $username = trim(fgets(STDIN)); echo "Password: "; $password = trim(fgets(STDIN)); } $user = $authService->createUser($username, $password); echo "User '{$user->username}' created successfully.\n"; break; case 'help': default: echo "Domovoy CLI\n\n"; echo "Commands:\n"; echo " setup:user [username] [password] Create first admin user\n"; echo " help Show this help\n"; break; }