????JFIF??x?x????'
| Server IP : 172.67.174.47  /  Your IP : 216.73.216.113 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/tempvsty/./pontiacques.org/wp-content/plugins/give/src/FormAPI/ | 
| Upload File : | 
<?php
namespace Give\FormAPI;
use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
/**
 * Class Options
 *
 * @package Give\Form\Theme
 * @since   2.7.0
 */
final class Section
{
    /**
     * Group id.
     *
     * @since 2.7.0
     * @var string
     */
    public $id;
    /**
     * Name of group
     *
     * @since 2.7.0
     * @var string
     */
    public $name;
    /**
     * Description og group.
     *
     * @since 2.7.0
     * @var string
     */
    public $desc;
    /**
     * Array fo fields
     *
     * @since 2.7.0
     * @var Fields[]
     */
    public $fields = [];
    /**
     * Convert array into Group class object.
     *
     * @since 2.7.0
     *
     * @param array $array
     *
     * @return static
     */
    public static function fromArray($array)
    {
        $group = new static();
        $group->validate($array);
        $group->id = $array['id'];
        $group->name = $array['name'];
        $group->desc = isset($array['desc']) ? $array['desc'] : null;
        foreach ($array['fields'] as $field) {
            $group->fields[] = Fields::fromArray($field);
        }
        return $group;
    }
    /**
     * Validate group arguments
     *
     * @since 2.7.0
     *
     * @param $array
     */
    private function validate($array)
    {
        $required = ['id', 'name', 'fields'];
        if (array_diff($required, array_keys($array))) {
            throw new InvalidArgumentException(
                __('To create a Group object, please provide id, name and fields.', 'give')
            );
        }
    }
}