File "Select.php"
Full Path: /home/fundopuh/trader.fxex.org/vendor/botman/botman/src/Messages/Outgoing/Actions/Select.php
File size: 1.75 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace BotMan\BotMan\Messages\Outgoing\Actions;
use BotMan\BotMan\Interfaces\QuestionActionInterface;
use JsonSerializable;
class Select implements JsonSerializable, QuestionActionInterface
{
/** @var string */
protected $text;
/** @var string */
protected $value;
/** @var string */
protected $name;
/** @var array */
protected $options = [];
/**
* @param string $text
*
* @return static
*/
public static function create($text)
{
return new static($text);
}
/**
* @param string $text
*/
public function __construct($text)
{
$this->text = $text;
}
/**
* Set the select value.
*
* @param string $value
* @return $this
*/
public function value($value)
{
$this->value = $value;
return $this;
}
/**
* Set the select name (defaults to select text).
*
* @param string $name
* @return $this
*/
public function name($name)
{
$this->name = $name;
return $this;
}
/**
* Set the select options parameters to pass to the service.
*
* @param array $options
* @return $this
*/
public function options(array $options)
{
$this->options = $options;
return $this;
}
/**
* @return array
*/
public function toArray()
{
return [
'name' => isset($this->name) ? $this->name : $this->text,
'text' => $this->text,
'type' => 'select',
'options' => $this->options,
];
}
/**
* @return array
*/
#[\ReturnTypeWillChange]
public function jsonSerialize()
{
return $this->toArray();
}
}