parameter é uma biblioteca em torno de parameter -argumento que fornece funcionalidade adicional com regras de validação e introspecção de esquema.
parameter está disponível através do Packagist e a fonte do repositório está em chevere/ parameter .
composer require chevere/ parameter parameter permite gerar parameter dinâmicos de qualquer tipo com regras extras.
Por exemplo, um número inteiro de valor mínimo 10.
use function Chevere parameter int ;
$ int = int (min: 10 );
$ int ( $ var ); // exception if $var < 10Em parameter de função ou método, você pode usar atributos para definir regras de validação para parameter e valor de retorno.
use Chevere parameter Attributes FloatAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
use function Chevere parameter validated ;
#[ReturnAttr(
new FloatAttr (min: 0 , max: 2400 )
)]
function wageWeekWA (
#[IntAttr(min: 1628 )]
int $ cents ,
#[FloatAttr(min: 0 , max: 40 )]
float $ hours
) {
return $ cents * $ hours / 100 ;
}
validated ( ' wageWeekWA ' , $ cents , $ hours ); A validação pode ser acionada usando validated (exemplo acima), embutido e/ou delegado a um wrapper de chamada. parameter fornece auxiliares para acessar regras para parameter e valor de retorno para facilitar o processo de fiação.
As regras definidas por cada parameter fornecem um esquema legível que permite expor os critérios de validação.
parameter fornece uma API que pode ser usada para criar parameter usando funções e/ou atributos. objetos parameter podem ser usados diretamente na lógica, enquanto atributos requerem uma etapa de leitura.
Use a validação in-line para partir disto:
if ( $ var > 10 || $ var < 1 ) {
throw new InvalidArgumentException ();
}Para isso:
use function Chevere parameter int ;
int (min: 1 , max: 10 )( $ var );Use atributos para definir regras para parameter e valores de retorno.
Use a validação delegada de atributos com a função validated() para partir disto:
function myFunction ( int $ var ): string
{
if ( $ var > 10 || $ var < 1 ) {
throw new InvalidArgumentException ();
}
$ return = ' done ok ' ;
return preg_match ( ' /ok$/ ' , $ return )
? $ return
: throw new InvalidArgumentException ();
}
$ result = myFunction ( $ var );Para isso:
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use Chevere parameter Attributes StringAttr ;
use function Chevere parameter validated ;
#[ReturnAttr(
new StringAttr ( ' /ok$/ ' )
)]
function myFunction (
#[IntAttr(min: 1 , max: 10 )]
int $ var
): string
{
return ' done ok ' ;
}
$ result = validated ( ' myFunction ' , $ var ); Use reflectionTo parameter s e funções reflectionToReturn para validação manual de argumentos e valor de retorno:
use ReflectionFunction ;
use function Chevere parameter reflectionTo parameter s ;
use function Chevere parameter reflectionToReturn ;
$ reflection = new ReflectionFunction ( ' myFunction ' );
$ parameter s = reflectionTo parameter s ( $ reflection );
$ return = reflectionToReturn ( $ reflection );
$ parameter s (... $ args ); // valid $args
$ result = myFunction (... $ args ); // myFunction call
$ return ( $ result ); // valid $resultUse a validação in-line de atributos para validação manual no corpo da função:
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use Chevere parameter Attributes StringAttr ;
use function Chevere parameter valid ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new StringAttr ( ' /ok$/ ' )
)]
function myFunction (
#[IntAttr(min: 1 , max: 10 )]
int $ var
): string
{
valid (); // valid $var
$ return = ' ok ' ;
return returnAttr ()( $ return ); // valid $return
}Os atributos em PHP suportam apenas expressões que você pode usar em constantes de classe. Não é possível definir parameter dinâmicos diretamente usando atributos.
Para evitar essa limitação, você pode usar o atributo CallableAttr que permite encaminhar a resolução parameter para um callable retornando uma instância parameter Interface .
use Chevere parameter Interfaces parameter Interface ;
use Chevere parameter Attributes CallableAttr ;
function myCallable (): parameter Interface
{
return arrayp (
email: string (),
)-> withOptional (
name: string (),
);
}
#[CallableAttr( ' myCallable ' )] Um parameter é um objeto que implementa parameter Interface . Cada parameter pode definir uma description e um valor default , além de regras de validação adicionais dependendo do tipo.
Um parameter pode ser definido usando funções e/ou atributos, requer os mesmos argumentos para ambos.
Ao invocar um parameter $param('value') ele acionará a validação do argumento passado.
Use string de função para criar um String parameter . Passe um regex para correspondência de strings.
use function Chevere parameter string ;
// Any string
$ string = string ();
// String matching bin-<digits>
$ string = string ( ' /^bin-[d]+$/ ' );
$ string ( ' bin-123 ' ); Use o atributo StringAttr para definir um parameter de string.
use Chevere parameter Attributes StringAttr ;
#[StringAttr( ' /^bin-[d]+$/ ' )]Os parameter a seguir são baseados em String.
Use a função enum para criar um String parameter que corresponda a uma lista de strings.
use function Chevere parameter enum ;
$ enum = enum ( ' on ' , ' off ' );
$ enum ( ' on ' );
$ enum ( ' off ' ); Use o atributo EnumAttr para definir um parameter de string enum.
use Chevere parameter Attributes EnumAttr ;
#[EnumAttr( ' on ' , ' off ' )] Use a função intString para criar um String parameter correspondente a números inteiros de string.
use function Chevere parameter intString ;
$ int = intString ();
$ int ( ' 100 ' ); Use a função boolString para criar um String parameter que corresponda às strings 0 e 1 .
use function Chevere parameter boolString ;
$ bool = boolString ();
$ bool ( ' 0 ' );
$ bool ( ' 1 ' ); Use a função date para criar um String parameter que corresponda às strings YYYY-MM-DD .
use function Chevere parameter date ;
$ date = date ();
$ date ( ' 2021-01-01 ' ); Use a função time para criar um String parameter que corresponda às strings hh:mm:ss .
use function Chevere parameter time ;
$ time = time ();
$ time ( ' 12:00:00 ' ); Use a função datetime para criar um String parameter que corresponda às strings YYYY-MM-DD hh:mm:ss .
use function Chevere parameter datetime ;
$ datetime = datetime ();
$ datetime ( ' 2024-01-09 10:53:00 ' ); Use a função int para criar um Int parameter . Passe os valores min e max para o intervalo de inteiros, accept para uma lista de inteiros aceitos e reject para uma lista de inteiros rejeitados.
use function Chevere parameter int ;
// Any int
$ int = int ();
$ int ( 1 );
// Integer between 0 and 100
$ int = int (min: 0 , max: 100 );
$ int ( 50 );
// Integer matching 1, 2 or 3
$ int = int (accept: [ 1 , 2 , 3 ]);
$ int ( 2 );
// Integer not-matching 1, 2 or 3
$ int = int (reject: [ 1 , 2 , 3 ]);
$ int ( 4 ); Use o atributo IntAttr para definir um parameter inteiro.
use Chevere parameter Attributes IntAttr ;
#[IntAttr(min: 0 , max: 100 )]Os seguintes parameter são baseados em Int.
Use a função boolInt para criar um Int parameter que corresponda a números inteiros 0 e 1 .
use function Chevere parameter boolInt ;
$ bool = boolInt ();
$ bool ( 0 );
$ bool ( 1 ); Use a função float para criar um Float parameter . Passe os valores min e max para o intervalo de flutuações, accept para uma lista de flutuações aceitas e reject para uma lista de flutuações rejeitadas.
use function Chevere parameter float ;
// Any float
$ float = float ();
$ float ( 1.5 );
// Float between 0 and 100
$ float = float (min: 0 , max: 100 );
$ float ( 50.5 );
// Float matching 1.5, 2.5 or 3.5
$ float = float (accept: [ 1.5 , 2.5 , 3.5 ]);
$ float ( 2.5 );
// Float not-matching 1.5, 2.5 or 3.5
$ float = float (reject: [ 1.5 , 2.5 , 3.5 ]);
$ float ( 4.5 ); Use o atributo FloatAttr para definir um parameter float.
use Chevere parameter Attributes FloatAttr ;
#[FloatAttr(min: 0 , max: 100 )] Use a função bool para criar um Bool parameter .
use function Chevere parameter bool ;
$ bool = bool ();
$ bool ( true );
$ bool ( false ); Use o atributo BoolAttr para definir um parameter bool.
use Chevere parameter Attributes BoolAttr ;
#[BoolAttr] Use a função null para criar um Null parameter .
use function Chevere parameter null ;
$ null = null ();
$ null ( null ); Use o atributo NullAttr para definir um parameter nulo.
use Chevere parameter Attributes NullAttr ;
#[NullAttr] Use object de função para criar um Object parameter . Passe um className para o nome da classe do objeto.
use function Chevere parameter object ;
$ object = object (stdClass::class);
$ object ( new stdClass ()); Use o atributo ObjectAttr para definir um parameter de objeto.
use Chevere parameter Attributes ObjectAttr ;
#[ObjectAttr(stdClass::class)] Use a função mixed para criar um Mixed parameter .
use function Chevere parameter mixed ;
$ mixed = mixed ();
$ mixed ( 1 );
$ mixed ( ' 1 ' );
$ mixed ( true );
$ mixed ( null ); Use a função union para criar um Union parameter . Passe uma lista de parameter para corresponder, o valor alvo deve corresponder a pelo menos um.
use function Chevere parameter union ;
// Any string or null
$ union = union ( string (), null());
$ union ( ' abc ' );
$ union ( null );
// Any digit string or any integer
$ union = union (
intString (),
integer ()
);
$ union ( ' 100 ' );
$ union ( 100 ); parameter para o tipo array é tratado como um parameter composto que contém a definição de parameter para cada um de seus membros.
Use a função arrayp para criar um Array parameter para argumentos nomeados como chaves de array necessárias.
use function Chevere parameter arrayp ;
// Empty array
$ array = arrayp ();
$ array ([]);
// Required 'a' => <string>
$ array = arrayp (a: string ());
$ array ([ ' a ' => ' Hello world ' ]);parameter suporta matrizes aninhadas de qualquer profundidade:
use function Chevere parameter arrayp ;
use function Chevere parameter float ;
use function Chevere parameter int ;
$ array = arrayp (
id: int (min: 0 ),
items: arrayp (
id: int (min: 0 ),
price: float (min: 0 ),
),
);
$ array ([
' id ' => 1 ,
' items ' => [
' id ' => 25 ,
' price ' => 16.5 ,
]
]); Use o atributo ArrayAttr para definir um parameter de array.
use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes FloatAttr ;
use Chevere parameter Attributes IntAttr ;
#[ArrayAttr(
id: new IntAttr (),
items: new ArrayAttr (
id: new IntAttr (),
price: new FloatAttr (),
),
)] use o método withRequired para definir parameter necessários.
$ array = $ array
-> withRequired (
username: string (),
email: string ()
); use o método withOptional para definir parameter opcionais.
$ array = $ array
-> withOptional (address: string ());Nota: Os parameter opcionais serão validados somente se uma chave correspondente for fornecida.
use o método withModify para definir parameter de modificação.
$ array = $ array
-> withModify (
username: string ( ' /w+/ ' ),
); use o método withMakeOptional para tornar parameter obrigatórios opcionais.
$ array = $ array
-> withMakeOptional ( ' username ' ); use o método withMakeRequired para tornar obrigatórios parameter opcionais.
$ array = $ array
-> withMakeRequired ( ' email ' ); use o método without remover parameter .
$ array = $ array
-> without ( ' a ' ); use o método withOptionalMinimum para definir um número mínimo de parameter opcionais. Útil se todos parameter forem opcionais, exceto 1.
$ array = $ array
-> withOptionalMinimum ( 1 );Os parameter a seguir são baseados em Array.
Use a função arrayString para criar uma ArrayString parameter Interface para valores de string. Ele suporta apenas parameter de string.
use function Chevere parameter arrayString ;
use function Chevere parameter string ;
$ array = arrayString (
test: string (),
);
$ array ([ ' test ' => ' foo ' ]); Use file de função para criar um Array parameter para uploads de arquivos.
use function Chevere parameter file ;
$ array = file ();
$ file = [
' name ' => ' foo.txt ' ,
' type ' => ' text/plain ' ,
' tmp_name ' => ' /tmp/phpYzdqkD ' ,
' error ' => 0 ,
' size ' => 123 ,
];
$ array ( $ file ); Por padrão, ele fornece validação para o formato $_FILES , mas você pode definir suas próprias regras de validação. Por exemplo, para validar nome e conteúdo:
use function Chevere parameter file ;
$ array = file (
name: string ( ' /^.txt$/ ' ),
contents: string ( ' /wage-/ ' ),
);
$ array (
' name ' => ' wage-2024.txt ' ,
' type ' => ' text/plain ' ,
' tmp_name ' => ' /tmp/phpYzdqkD ' ,
' error ' => 0 ,
' size ' => 27 ,
' contents ' => ' yada yada wage-2024 bla bla ' ,
); O tipo iterável Traversable|array é considerado um parameter composto que contém uma definição genérica para chave e valor. parameter permite descrever esta coleção de itens que compartilham a mesma forma.
Use a função iterable para criar um Iterable parameter . Passe parameter V e K para chave e valor genéricos.
use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ iterable = iterable ( int (min: 0 ));
$ iterable ([ 0 , 1 , 2 , 3 ]);Também funciona com chaves nomeadas:
use function Chevere parameter int ;
use function Chevere parameter iterable ;
use function Chevere parameter string ;
$ iterable = iterable (
V: arrayp (
id: int (min: 0 ),
name: string ( ' ^[w]{1,255} ' ),
)
K: string (),
);
$ iterable ([
' based ' => [
' id ' => 1 ,
' name ' => ' OscarGangas '
],
' fome ' => [
' id ' => 2 ,
' name ' => ' BomboFica '
],
]); Use parameter s de função para criar uma instância parameter s .
use function Chevere parameter s parameter s ;
use function Chevere parameter s string ;
$ parameter s = parameter s (foo: string ()); Use arguments de função para criar uma instância Arguments .
use function Chevere parameter s arguments ;
use function Chevere parameter s string ;
$ arguments = arguments ( $ parameter s , [ ' foo ' => ' bar ' ]); Use a função assertNamedArgument para afirmar um argumento nomeado.
use function Chevere parameter s assertNamedArgument ;
use function Chevere parameter s int ;
use function Chevere parameter s parameter s ;
$ parameter = int (min: 10 );
assertNamedArgument (
name: ' foo ' ,
parameter : $ parameter ,
argument: 20
); Use função to parameter para criar uma instância parameter Interface a partir de uma string de tipo. No exemplo abaixo o $ parameter resultante será um Int parameter .
use function Chevere parameter s to parameter ;
$ parameter = to parameter ( ' int ' ); Use a função arrayFrom para criar um parameter Array a partir de outro parameter array. No exemplo abaixo, o $array resultante conterá apenas as chaves name e id conforme definido em $source .
use function Chevere parameter s arrayFrom ;
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
$ source = arrayp (
id: int (),
name: string (),
email: string (),
age: int (),
);
$ array = arrayFrom ( $ source , ' name ' , ' id ' ); Use a função takeKeys para recuperar um array com as chaves de um parameter . No exemplo abaixo, $keys conterá id e size .
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s takeKeys ;
$ array = arrayp (
id: int (),
size: int (),
);
$ keys = takeKeys ( $ array ); Use a função takeFrom para recuperar um iterador com as chaves desejadas de um parameter . No exemplo abaixo, $iterator produzirá chaves size e name .
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
use function Chevere parameter s takeFrom ;
$ array = arrayp (
id: int (min: 0 ),
size: int (min: 100 ),
name: string (),
);
$ iterator = takeFrom ( $ array , ' size ' , ' name ' ); Use parameter sFrom para criar um parameter s com as chaves desejadas de um parameter . No exemplo abaixo, $ parameter s conterá chaves size e name .
use function Chevere parameter s arrayp ;
use function Chevere parameter s int ;
use function Chevere parameter s string ;
use function Chevere parameter s parameter sFrom ;
$ array = arrayp (
id: int (min: 0 ),
size: int (min: 100 ),
name: string (),
);
$ parameter s = parameter sFrom ( $ array , ' size ' , ' name ' ); Use a função get parameter s para recuperar a instância de um parameter s de um objeto que implementa parameter AccessInterface ou parameter sInterface .
use function Chevere parameter s get parameter s ;
$ parameter s = get parameter s ( $ object ); Use a função getType para recuperar o tipo conhecido por esta biblioteca.
use function Chevere parameter s getType ;
$ type = getType ( 1 ); // int Use parameter Attr para recuperar um parameter AttributeInterface de uma função ou parameter de método de classe.
use function Chevere parameter s parameter Attr ;
use Chevere parameter Attributes StringAttr ;
function myFunction (
#[StringAttr( ' /^bin-[d]+$/ ' )]
string $ foo
): void {
// ...
}
$ stringAttr = parameter Attr ( ' foo ' , ' myFunction ' );
$ stringAttr ( ' bin-123 ' ); Use reflectionTo parameter s para recuperar a instância parameter s de uma instância ReflectionFunction ou ReflectionMethod .
use function Chevere parameter reflectionTo parameter s ;
$ parameter s = reflectionTo parameter s ( $ reflection ); Use a função reflectionToReturn para recuperar uma instância parameter Interface de uma instância ReflectionFunction ou ReflectionMethod .
use function Chevere parameter reflectionToReturn ;
$ parameter = reflectionToReturn ( $ reflection ); Use reflected parameter Attribute para recuperar um objeto que implementa parameter AttributeInterface de uma instância Reflection parameter .
use function Chevere parameter reflected parameter Attribute ;
$ parameter Attribute = reflected parameter Attribute ( $ reflection parameter ); Use função validated para validar argumentos de função ou método.
use function Chevere parameter validated ;
$ result = validated ( ' myFunction ' , $ arg1 , $ arg2 ,); use function Chevere parameter string ;
$ value = ' ahhh ' ;
string ( ' /^a.+/ ' )( $ value );100 : use function Chevere parameter int ;
$ value = 100 ;
int (min: 100 )( $ value ); use function Chevere parameter int ;
$ value = 1 ;
int (accept: [ 1 , 2 , 3 ])( $ value ); use function Chevere parameter float ;
$ value = 3.1 ;
float (reject: [ 1.1 , 2.1 ])( $ value ); use function Chevere parameter arrayp ;
use function Chevere parameter int ;
use function Chevere parameter string ;
$ value = [
' id ' => 1 ,
' name ' => ' Pepe '
];
arrayp (
id: int (min: 1 ),
name: string ( ' /^[A-Z]{1}w+$/ ' )
)( $ value );int iterável: use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ value = [ 1 , 2 , 3 ];
iterable ( int ())( $ value ); use function Chevere parameter int ;
use function Chevere parameter iterable ;
$ value = [
' unila ' => 1 ,
' dorila ' => 2 ,
' tirifila ' => 3 ,
];
iterable (
K: string ( ' /ila$/ ' ),
V: int (min: 1 )
)( $ value ); use function Chevere parameter int ;
use function Chevere parameter null ;
$ value = 1 ;
union ( int (), null())( $ value );validated() para obter um retorno validado em relação a todas as regras. use function Chevere parameter validated ;
$ result = validated ( ' myFunction ' , $ var );reflectionTo parameter s() para obter regras para validar argumentos. use ReflectionMethod ;
use Chevere parameter Attributes IntAttr ;
use function Chevere parameter arguments ;
use function Chevere parameter reflectionTo parameter s ;
$ class = new class () {
public function wea (
#[IntAttr(accept: [ 1 , 10 , 100 ])]
int $ base
): void {
}
};
$ object = new $ class ();
$ reflection = new ReflectionMethod ( $ object , ' wea ' );
$ parameter s = reflectionTo parameter s ( $ reflection );
$ args = [ ' base ' => 10 ];
$ parameter s (... $ args ); // valid $args
$ result = $ object -> wea (... $ args );reflectionToReturn() para obter regras para validar o valor de retorno da função/método: use ReflectionFunction ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter reflectionToReturn ;
$ function =
#[ReturnAttr(
new IntAttr (min: 1000 )
)]
function ( int $ base ): int {
return 10 * $ base ;
};
$ reflection = new ReflectionFunction ( $ function );
$ return = reflectionToReturn ( $ reflection );
$ base = 10 ;
$ result = $ function ( $ base );
$ result = $ return ( $ result ); // Validates result Use valid() no corpo da função/método para acionar a validação dos argumentos.
Hugo , Paco , Luis :1000 : use Chevere parameter Attributes EnumAttr ;
use function Chevere parameter validate ;
function myEnum (
#[EnumAttr( ' Hugo ' , ' Paco ' , ' Luis ' )]
string $ name ,
#[FloatAttr(min: 1000 )]
float $ money
): void
{
valid ();
// Or single...
valid ( ' name ' );
valid ( ' money ' );
}
$ arg1 = ' Paco ' ;
$ arg2 = 1000.50 ;
myEnum ( $ arg1 , $ arg2 );0 e 100 : use Chevere parameter Attributes IntAttr ;
use function Chevere parameter validate ;
function myInt (
#[IntAttr(reject: [ 0 , 100 ])]
int $ id
): void
{
valid ();
}
$ value = 50 ;
myInt ( $ value ); use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes StringAttr ;
use Chevere parameter Attributes IterableAttr ;
use function Chevere parameter validate ;
function myArray (
#[ArrayAttr(
id: new IntAttr (min: 1 ),
role: new ArrayAttr (
mask: new IntAttr (accept: [ 64 , 128 , 256 ]),
name: new StringAttr ( ' /[a-z]+/ ' ),
tenants: new IterableAttr (
new IntAttr (min: 1 )
)
),
)]
array $ spooky
): void
{
valid ();
}
$ value = [
' id ' => 10 ,
' role ' => [
' mask ' => 128 ,
' name ' => ' admin ' ,
' tenants ' => [ 1 , 2 , 3 , 4 , 5 ]
],
];
myArray ( $ value ); use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes IterableAttr ;
use function Chevere parameter validate ;
function myIterable (
#[IterableAttr(
new IntAttr (),
)]
array $ list = [ 0 , 1 , 2 ]
): void
{
valid ();
} Use a função returnAttr() no corpo da função/método.
min: 0, max: 5 retorno: use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new IntAttr (min: 0 , max: 5 )
)]
public function myReturnInt (): int
{
$ result = 1 ;
return returnAttr ()( $ result );
} use Chevere parameter Attributes ArrayAttr ;
use Chevere parameter Attributes IntAttr ;
use Chevere parameter Attributes StringAttr ;
use Chevere parameter Attributes ReturnAttr ;
use function Chevere parameter returnAttr ;
#[ReturnAttr(
new ArrayAttr (
id: new IntAttr (min: 0 ),
name: new StringAttr ()
)
)]
public function myReturnArray (): array
{
$ result = [
' id ' => 1 ,
' name ' => ' Peoples Hernandez '
];
return returnAttr ()( $ result );
} Por convenção, ao omitir ReturnAttr o método public static function return(): parameter Interface (se houver) será usado para determinar regras de validação de retorno.
A documentação está disponível em chevere.org.
Copyright Rodolfo Berrios A.
Chevere está licenciado sob a Licença Apache, Versão 2.0. Consulte LICENÇA para obter o texto completo da licença.
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.