PHP code example of maksde / support

1. Go to this page and download the library: Download maksde/support library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

maksde / support example snippets


use Maksde\Support\Contracts\Validation\EmailValidate;

'email' => ['' => ['

use Maksde\Support\Contracts\Validation\PhoneValidate;

'phone' => ['

use Maksde\Support\Contracts\Validation\PhoneInternationalValidate;

'international_phone' => ['

use Maksde\Support\Contracts\Validation\NameValidate;

'first_name' => ['le', new NameValidate],

use Maksde\Support\Contracts\Validation\QuantityValidate;

// По умолчанию: min = 0, max = без ограничения
'quantity' => ['ое значение (от 10 и выше)
'age' => [' отрицательные числа)
'temperature' => ['

use Maksde\Support\Contracts\Validation\DateValidate;

// Любая дата (по умолчанию)
'date' => ['ew DateValidate('future')],

// Только прошлые даты (например, дата рождения)
'birth_date' => ['=> ['

use Maksde\Support\Contracts\Validation\TimeValidate;

// Любое время (по умолчанию)
'time' => [', new TimeValidate('future')],

// Только прошлое время (раньше текущего времени)
'completed_time' => ['' => ['

use Maksde\Support\Contracts\Validation\DateTimeValidate;

// Любая дата и время (по умолчанию)
'datetime' => ['' => ['ired', new DateTimeValidate('past')],

// С указанием опорной даты-времени для сравнения (вместо текущей)
'event_start' => ['

use Maksde\Support\Contracts\Validation\FileValidate;

// Тип из конфига: image, video, document (и опционально form)
'photo' => ['e', new FileValidate(
    extensions: ['pdf', 'png'],
    maxSize: 5120, // KB
)],

// Переопределение maxSize для типа
'avatar' => ['

'validate' => [
    'file' => [
        'image' => [
            'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp', 'heic', 'avif'],
            'max_size' => 10240,
        ],
        'video' => [
            'extensions' => ['mp4', 'webm', 'mov', 'mkv', 'hevc'],
            'max_size' => 20480,
        ],
        'document' => [
            'extensions' => ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'pptx'],
            'max_size' => 10240,
        ],
    ],
],

use Maksde\Support\Formation\TemporalFormat;

// Дата — только формат, timezone не используется
TemporalFormat::forStorage('2025-12-31', 'date', 'Europe/Moscow'); // '2025-12-31'

// Время и datetime — из timezone приложения в UTC
TemporalFormat::forStorage('10:00:00', 'time', config('app.timezone'));
TemporalFormat::forStorage('2025-12-31 10:00:00', 'datetime', config('app.timezone'));

use Maksde\Support\Formation\TemporalFormat;

// Дата — только формат
TemporalFormat::forOutput('2025-12-31', 'date', 'UTC', config('support.api.format.date'));

// Время и datetime — из UTC в нужную timezone и формат
TemporalFormat::forOutput($timeFromDb, 'time', 'UTC', 'H:i:s');
TemporalFormat::forOutput($datetimeFromDb, 'datetime', 'UTC', config('support.api.format.datetime'));

$imageUrl = urlFront('images/avatar.jpg');
// Вернёт полный URL: https://example.com/storage/images/avatar.jpg
bash
php artisan vendor:publish --tag="support-config"
bash
php artisan vendor:publish --tag="support-translations"
regex
/^(?!\.)(?!.*\.\.)([A-Za-zА-Яа-яЁё0-9_'+\-\.]*)([A-Za-zА-Яа-яЁё0-9_+-])@([A-Za-zА-Яа-яЁё0-9]([A-Za-zА-Яа-яЁё0-9-]*[A-Za-zА-Яа-яЁё0-9])?\.)+[A-Za-zА-Яа-яЁё]{2,}$/u

tests/
└── Unit/
    ├── EmailValidateTest.php
    ├── PhoneValidateTest.php
    ├── PhoneInternationalValidateTest.php
    ├── NameValidateTest.php
    ├── QuantityValidateTest.php
    ├── DateValidateTest.php
    ├── TimeValidateTest.php
    ├── DateTimeValidateTest.php
    ├── FileValidateTest.php
    └── FileExtensionRegistryTest.php