DiscordPHP Documentation

Option extends Component
in package

Option for select menu component.

Tags
link
https://discord.com/developers/docs/interactions/message-components#select-menu-object-select-option-structure
since
7.0.0

Table of Contents

Constants

TYPE_ACTION_ROW  = 1
Container to display a row of interactive components.
TYPE_BUTTON  = 2
Button object.
TYPE_CHANNEL_SELECT  = 8
Select menu for channels.
TYPE_CHECKPOINT_CARD  = 20
Undocumented.
TYPE_CONTAINER  = 17
Container that visually groups a set of components.
TYPE_CONTENT_INVENTORY_ENTRY  = 16
Undocumented.
TYPE_FILE  = 13
Displays an attached file.
TYPE_FILE_UPLOAD  = 19
Component for uploading files.
TYPE_LABEL  = 18
Container associating a label and description with a component.
TYPE_MEDIA_GALLERY  = 12
Display images and other media.
TYPE_MENTIONABLE_SELECT  = 7
Select menu for mentionables (users and roles).
TYPE_ROLE_SELECT  = 6
Select menu for roles.
TYPE_SECTION  = 9
Container to display text alongside an accessory component.
TYPE_SELECT_MENU  = 3
TYPE_SEPARATOR  = 14
Component to add vertical padding between other components.
TYPE_STRING_SELECT  = 3
Select menu for picking from defined text options.
TYPE_TEXT_DISPLAY  = 10
Markdown text.
TYPE_TEXT_INPUT  = 4
Text input object.
TYPE_THUMBNAIL  = 11
Small image that can be used as an accessory.
TYPE_USER_SELECT  = 5
Select menu for users.

Properties

$default  : bool
Whether the option should be enabled as default.
$description  : string|null
Description for the option. Maximum 50 characters.
$emoji  : array<string|int, mixed>|null
Emoji to display alongside the option.
$label  : string
User-visible label of the option. Maximum 25 characters.
$value  : string
Developer value for the option. Maximum 100 characters.

Methods

__construct()  : mixed
Creates a new select menu option.
__get()  : mixed
Handles dynamic get calls onto the part.
__set()  : void
Handles dynamic set calls onto the part.
fromPart()  : self
Creates a new instance of the builder from a given Part.
getCustomId()  : string|null
Returns the custom ID of the button.
getDescription()  : string|null
Returns the description for the option.
getEmoji()  : array<string|int, mixed>|null
Returns the emoji display alongside the option.
getLabel()  : string
Returns the user-visible label for the option.
getValue()  : string
Returns the developer value for the option.
isDefault()  : bool
Returns whether the option is default.
jsonSerialize()  : array<string|int, mixed>
new()  : self
Creates a new select menu option.
setDefault()  : $this
Sets the option as default. Pass false to set as non-default.
setDescription()  : $this
Sets the description of the option.
setEmoji()  : $this
Sets the emoji of the option.
checkForGetMutator()  : string|false
Checks if there is a get mutator present.
checkForSetMutator()  : string|false
Checks if there is a set mutator present.
generateUuid()  : string
Generates a UUID which can be used for component custom IDs.
getId()  : int|null
The id field is optional and is used to identify components in the response from an interaction that aren't interactive components.
getProperty()  : mixed
Gets a property on the parent part.
getType()  : int|null
Retrieves the type of the component.
setProperty()  : void
Sets an property on the parent part.
studly()  : string
Converts a string to studlyCase.

Constants

TYPE_ACTION_ROW

Container to display a row of interactive components.

public mixed TYPE_ACTION_ROW = 1

TYPE_BUTTON

Button object.

public mixed TYPE_BUTTON = 2

TYPE_CHANNEL_SELECT

Select menu for channels.

public mixed TYPE_CHANNEL_SELECT = 8

TYPE_CHECKPOINT_CARD

Undocumented.

public mixed TYPE_CHECKPOINT_CARD = 20

TYPE_CONTAINER

Container that visually groups a set of components.

public mixed TYPE_CONTAINER = 17

TYPE_CONTENT_INVENTORY_ENTRY

Undocumented.

public mixed TYPE_CONTENT_INVENTORY_ENTRY = 16

TYPE_FILE

Displays an attached file.

public mixed TYPE_FILE = 13

TYPE_FILE_UPLOAD

Component for uploading files.

public mixed TYPE_FILE_UPLOAD = 19

TYPE_LABEL

Container associating a label and description with a component.

public mixed TYPE_LABEL = 18

Display images and other media.

public mixed TYPE_MEDIA_GALLERY = 12

TYPE_MENTIONABLE_SELECT

Select menu for mentionables (users and roles).

public mixed TYPE_MENTIONABLE_SELECT = 7

TYPE_ROLE_SELECT

Select menu for roles.

public mixed TYPE_ROLE_SELECT = 6

TYPE_SECTION

Container to display text alongside an accessory component.

public mixed TYPE_SECTION = 9

TYPE_SELECT_MENU

Use Component::TYPE_STRING_SELECT

public mixed TYPE_SELECT_MENU = 3

TYPE_SEPARATOR

Component to add vertical padding between other components.

public mixed TYPE_SEPARATOR = 14

TYPE_STRING_SELECT

Select menu for picking from defined text options.

public mixed TYPE_STRING_SELECT = 3

TYPE_TEXT_DISPLAY

Markdown text.

public mixed TYPE_TEXT_DISPLAY = 10

TYPE_TEXT_INPUT

Text input object.

public mixed TYPE_TEXT_INPUT = 4

TYPE_THUMBNAIL

Small image that can be used as an accessory.

public mixed TYPE_THUMBNAIL = 11

TYPE_USER_SELECT

Select menu for users.

public mixed TYPE_USER_SELECT = 5

Properties

$default

Whether the option should be enabled as default.

private bool $default = false

$description

Description for the option. Maximum 50 characters.

private string|null $description

$emoji

Emoji to display alongside the option.

private array<string|int, mixed>|null $emoji

$label

User-visible label of the option. Maximum 25 characters.

private string $label

$value

Developer value for the option. Maximum 100 characters.

private string $value

Methods

__construct()

Creates a new select menu option.

public __construct(string $label, string|null $value) : mixed
Parameters
$label : string

User-visible label for the option. Maximum 100 characters.

$value : string|null

Developer value for the option. Maximum 100 characters. Leave as null to automatically generate a UUID.

Tags
throws
LengthException

__get()

Handles dynamic get calls onto the part.

public __get(string $key) : mixed
Parameters
$key : string

The attributes key.

Tags
throws
Exception
see
self::getAttribute()

This function forwards onto getAttribute.

Return values
mixed

The value of the attribute.

__set()

Handles dynamic set calls onto the part.

public __set(string $key, mixed $value) : void
Parameters
$key : string

The attributes key.

$value : mixed

The attributes value.

Tags
see
self::setAttribute()

This function forwards onto setAttribute.

fromPart()

Creates a new instance of the builder from a given Part.

public static fromPart(Part $part) : self
Parameters
$part : Part
Return values
self

getCustomId()

Returns the custom ID of the button.

public getCustomId() : string|null
Return values
string|null

getDescription()

Returns the description for the option.

public getDescription() : string|null
Return values
string|null

getEmoji()

Returns the emoji display alongside the option.

public getEmoji() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|null

getLabel()

Returns the user-visible label for the option.

public getLabel() : string
Return values
string

getValue()

Returns the developer value for the option.

public getValue() : string
Return values
string

isDefault()

Returns whether the option is default.

public isDefault() : bool
Return values
bool

jsonSerialize()

public jsonSerialize() : array<string|int, mixed>
Tags
inheritDoc
Return values
array<string|int, mixed>

new()

Creates a new select menu option.

public static new(string $label[, string|null $value = null ]) : self
Parameters
$label : string

User-visible label for the option. Maximum 25 characters.

$value : string|null = null

Developer value for the option. Maximum 100 characters. Leave as null to automatically generate a UUID.

Return values
self

setDefault()

Sets the option as default. Pass false to set as non-default.

public setDefault([bool $default = true ]) : $this
Parameters
$default : bool = true
Return values
$this

setDescription()

Sets the description of the option.

public setDescription(string|null $description) : $this
Parameters
$description : string|null

Description of the option. Maximum 100 characters. null to clear.

Tags
throws
LengthException
Return values
$this

setEmoji()

Sets the emoji of the option.

public setEmoji(Emoji|string|null $emoji) : $this
Parameters
$emoji : Emoji|string|null

Emoji to set. null to clear.

Return values
$this

checkForGetMutator()

Checks if there is a get mutator present.

protected checkForGetMutator(string $key) : string|false
Parameters
$key : string

The property name to check.

Return values
string|false

Either a string if it is a method or false.

checkForSetMutator()

Checks if there is a set mutator present.

protected checkForSetMutator(string $key) : string|false
Parameters
$key : string

The property name to check.

Return values
string|false

Either a string if it is a method or false.

generateUuid()

Generates a UUID which can be used for component custom IDs.

protected static generateUuid() : string
Return values
string

getId()

The id field is optional and is used to identify components in the response from an interaction that aren't interactive components.

protected getId() : int|null

The id must be unique within the message and is generated sequentially if left empty. Generation of ids won't use another id that exists in the message if you have one defined for another component.

Return values
int|null

getProperty()

Gets a property on the parent part.

protected getProperty(string $key) : mixed
Parameters
$key : string

The name of the property.

Tags
throws
Exception
Return values
mixed

Either the property if it exists or void.

getType()

Retrieves the type of the component.

protected getType() : int|null

Only ComponentObjects will have this property set.

Tags
see
ComponentObject
Return values
int|null

setProperty()

Sets an property on the parent part.

protected setProperty(string $key, mixed $value) : void
Parameters
$key : string

The name of the property.

$value : mixed

The value of the property.

studly()

Converts a string to studlyCase.

private static studly(string $string) : string

This is a port of updated Laravel's implementation, a non-regex with static cache. This method is private static as we may move it outside this class in future.

Parameters
$string : string

The string to convert.

Tags
since
10.0.0
Return values
string

        
On this page

Search results