DiscordPHP Documentation

Option extends Component
in package

Option for select menu component.

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

Table of Contents

Constants

TYPE_ACTION_ROW  = \Discord\Builders\Components\ComponentObject::TYPE_ACTION_ROW
Container to display a row of interactive components.
TYPE_BUTTON  = \Discord\Builders\Components\ComponentObject::TYPE_BUTTON
Button object.
TYPE_CHANNEL_SELECT  = \Discord\Builders\Components\ComponentObject::TYPE_CHANNEL_SELECT
Select menu for channels.
TYPE_CHECKPOINT_CARD  = \Discord\Builders\Components\ComponentObject::TYPE_CHECKPOINT_CARD
Undocumented. Used by the client for checkpoint.
TYPE_CONTAINER  = \Discord\Builders\Components\ComponentObject::TYPE_CONTAINER
Container that visually groups a set of components.
TYPE_CONTENT_INVENTORY_ENTRY  = \Discord\Builders\Components\ComponentObject::TYPE_CONTENT_INVENTORY_ENTRY
Undocumented.
TYPE_FILE  = \Discord\Builders\Components\ComponentObject::TYPE_FILE
Displays an attached file.
TYPE_FILE_UPLOAD  = \Discord\Builders\Components\ComponentObject::TYPE_FILE_UPLOAD
Component for uploading files.
TYPE_LABEL  = \Discord\Builders\Components\ComponentObject::TYPE_LABEL
Container associating a label and description with a component.
TYPE_MEDIA_GALLERY  = \Discord\Builders\Components\ComponentObject::TYPE_MEDIA_GALLERY
Display images and other media.
TYPE_MENTIONABLE_SELECT  = \Discord\Builders\Components\ComponentObject::TYPE_MENTIONABLE_SELECT
Select menu for mentionables (users and roles).
TYPE_ROLE_SELECT  = \Discord\Builders\Components\ComponentObject::TYPE_ROLE_SELECT
Select menu for roles.
TYPE_SECTION  = \Discord\Builders\Components\ComponentObject::TYPE_SECTION
Container to display text alongside an accessory component.
TYPE_SELECT_MENU  = \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT
TYPE_SEPARATOR  = \Discord\Builders\Components\ComponentObject::TYPE_SEPARATOR
Component to add vertical padding between other components.
TYPE_STRING_SELECT  = \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT
Select menu for picking from defined text options.
TYPE_TEXT_DISPLAY  = \Discord\Builders\Components\ComponentObject::TYPE_TEXT_DISPLAY
Markdown text.
TYPE_TEXT_INPUT  = \Discord\Builders\Components\ComponentObject::TYPE_TEXT_INPUT
Text input object.
TYPE_THUMBNAIL  = \Discord\Builders\Components\ComponentObject::TYPE_THUMBNAIL
Small image that can be used as an accessory.
TYPE_USER_SELECT  = \Discord\Builders\Components\ComponentObject::TYPE_USER_SELECT
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 = \Discord\Builders\Components\ComponentObject::TYPE_ACTION_ROW

TYPE_BUTTON

Button object.

public mixed TYPE_BUTTON = \Discord\Builders\Components\ComponentObject::TYPE_BUTTON

TYPE_CHANNEL_SELECT

Select menu for channels.

public mixed TYPE_CHANNEL_SELECT = \Discord\Builders\Components\ComponentObject::TYPE_CHANNEL_SELECT

TYPE_CHECKPOINT_CARD

Undocumented. Used by the client for checkpoint.

public mixed TYPE_CHECKPOINT_CARD = \Discord\Builders\Components\ComponentObject::TYPE_CHECKPOINT_CARD

TYPE_CONTAINER

Container that visually groups a set of components.

public mixed TYPE_CONTAINER = \Discord\Builders\Components\ComponentObject::TYPE_CONTAINER

TYPE_CONTENT_INVENTORY_ENTRY

Undocumented.

public mixed TYPE_CONTENT_INVENTORY_ENTRY = \Discord\Builders\Components\ComponentObject::TYPE_CONTENT_INVENTORY_ENTRY

TYPE_FILE

Displays an attached file.

public mixed TYPE_FILE = \Discord\Builders\Components\ComponentObject::TYPE_FILE

TYPE_FILE_UPLOAD

Component for uploading files.

public mixed TYPE_FILE_UPLOAD = \Discord\Builders\Components\ComponentObject::TYPE_FILE_UPLOAD

TYPE_LABEL

Container associating a label and description with a component.

public mixed TYPE_LABEL = \Discord\Builders\Components\ComponentObject::TYPE_LABEL

Display images and other media.

public mixed TYPE_MEDIA_GALLERY = \Discord\Builders\Components\ComponentObject::TYPE_MEDIA_GALLERY

TYPE_MENTIONABLE_SELECT

Select menu for mentionables (users and roles).

public mixed TYPE_MENTIONABLE_SELECT = \Discord\Builders\Components\ComponentObject::TYPE_MENTIONABLE_SELECT

TYPE_ROLE_SELECT

Select menu for roles.

public mixed TYPE_ROLE_SELECT = \Discord\Builders\Components\ComponentObject::TYPE_ROLE_SELECT

TYPE_SECTION

Container to display text alongside an accessory component.

public mixed TYPE_SECTION = \Discord\Builders\Components\ComponentObject::TYPE_SECTION

TYPE_SELECT_MENU

Use ComponentObject::TYPE_STRING_SELECT

public mixed TYPE_SELECT_MENU = \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT

TYPE_SEPARATOR

Component to add vertical padding between other components.

public mixed TYPE_SEPARATOR = \Discord\Builders\Components\ComponentObject::TYPE_SEPARATOR

TYPE_STRING_SELECT

Select menu for picking from defined text options.

public mixed TYPE_STRING_SELECT = \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT

TYPE_TEXT_DISPLAY

Markdown text.

public mixed TYPE_TEXT_DISPLAY = \Discord\Builders\Components\ComponentObject::TYPE_TEXT_DISPLAY

TYPE_TEXT_INPUT

Text input object.

public mixed TYPE_TEXT_INPUT = \Discord\Builders\Components\ComponentObject::TYPE_TEXT_INPUT

TYPE_THUMBNAIL

Small image that can be used as an accessory.

public mixed TYPE_THUMBNAIL = \Discord\Builders\Components\ComponentObject::TYPE_THUMBNAIL

TYPE_USER_SELECT

Select menu for users.

public mixed TYPE_USER_SELECT = \Discord\Builders\Components\ComponentObject::TYPE_USER_SELECT

Properties

$default

Whether the option should be enabled as default.

protected bool $default = false

$description

Description for the option. Maximum 50 characters.

protected string|null $description

$emoji

Emoji to display alongside the option.

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

$label

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

protected string $label

$value

Developer value for the option. Maximum 100 characters.

protected 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