InputCatcher

Subsystém slouží k zachycení vstupních dat a především k jejich převedení na správnou hodnotu - tedy správný datový typ, případně objekt, či jejich escapování.

Subsystém byl dříve součástí subsystému formulářů, ale od poloviny roku 2026 se stal samostatným a plně samostatně použitelným subsystémem, stejně jako subsystém validátorů.

Ukázky použití

Samostatné použití zachytávačů

namespace JetApplication;

use 
Jet\Factory_InputCatcher;
use 
Jet\Http_Request;
use 
Jet\InputCatcher;


$catcher_date_time Factory_InputCatcher::getInputCatcherInstance
    
typeInputCatcher::TYPE_DATE_TIME,
    
name'date_and_time',
    
default_valuenull
);

$catcher_date_time->catchInputHttp_Request::POST()->getRawData() );

$date_and_time $catcher_date_time->getValue(); //Instance of Data_DateTime or null


$catcher_secure_string Factory_InputCatcher::getInputCatcherInstance(
    
typeInputCatcher::TYPE_STRING,
    
name'secure_string',
    
default_value''
);

$catcher_secure_string->catchInputHttp_Request::POST()->getRawData() );

$secure_string $catcher_secure_string->getValue(); //escaped string or empty string

Zachytávač namapovaný na třídu

Představte si situaci, kdy máte libovolná data v podobě asociativního pole (či instance Jet\Data_Array) a hodnoty z těchto surových dat potřebujete dostat do vlastností objektu. To je otravná práce, ale s PHP Jet to lze vyřešit elegantně například takto:

namespace JetApplication;

use 
Jet\Data_DateTime;
use 
Jet\Entity_InputCatcher_Definition;
use 
Jet\Entity_InputCatcher_Interface;
use 
Jet\Entity_InputCatcher_Trait;
use 
Jet\InputCatcher;


class 
ExampleClass implements Entity_InputCatcher_Interface
{
    use 
Entity_InputCatcher_Trait;
    
    #[
Entity_InputCatcher_Definition(
        
typeInputCatcher::TYPE_DATE_TIME
    
)]
    protected ?
Data_DateTime $date_and_time null;
    
    #[
Entity_InputCatcher_Definition(
        
typeInputCatcher::TYPE_STRING
    
)]
    protected 
string $secure_string '';
}

$example_object = new ExampleClass();

$config_data = require 'some/config/file.php';

$example_object->catchInput$config_data );
Další kapitola
Jet\InputCatcher