Nette Documentation Preview

syntax
PHP Tipi
********

.[perex]
[api:Nette\Utils\Type], PHP veri tipleriyle çalışmak için bir sınıftır.


Kurulum:

```shell
composer require nette/utils
```

Tüm örnekler, bir takma ad oluşturulduğunu varsayar:

```php
use Nette\Utils\Type;
```


fromReflection($reflection): ?Type .[method]
--------------------------------------------

Statik metot, yansımaya dayalı olarak bir Type nesnesi oluşturur. Parametre `ReflectionMethod` veya `ReflectionFunction` nesnesi (dönüş değerinin türünü döndürür) veya `ReflectionParameter` ya da `ReflectionProperty` olabilir. `self`, `static` ve `parent`'ı gerçek sınıf adına çevirir. Konunun bir türü yoksa `null` döndürür.

```php
class DemoClass
{
	public self $foo;
}

$prop = new ReflectionProperty(DemoClass::class, 'foo');
echo Type::fromReflection($prop); // 'DemoClass'
```


fromString(string $type): Type .[method]
----------------------------------------

Statik metot, metin gösterimine göre bir Type nesnesi oluşturur.

```php
$type = Type::fromString('Foo|Bar');
echo $type;      // 'Foo|Bar'
```


getNames(): (string|array)[] .[method]
--------------------------------------

Bileşik türü oluşturan alt türlerin dizisini karakter dizileri olarak döndürür.

```php
$type = Type::fromString('string|null'); // veya '?string'
$type->getNames();  // ['string', 'null']

$type = Type::fromString('(Foo&Bar)|string');
$type->getNames();  // [['Foo', 'Bar'], 'string']
```


getTypes(): Type[] .[method]
----------------------------

Bileşik türü oluşturan alt türlerin dizisini `ReflectionType` nesneleri olarak döndürür:

```php
$type = Type::fromString('string|null'); // or '?string'
$type->getTypes();  // [Type::fromString('string'), Type::fromString('null')]

$type = Type::fromString('(Foo&Bar)|string');
$type->getTypes();  // [Type::fromString('Foo&Bar'), Type::fromString('string')]

$type = Type::fromString('Foo&Bar');
$type->getTypes();  // [Type::fromString('Foo'), Type::fromString('Bar')]
```


getSingleName(): ?string .[method]
----------------------------------

Basit türler için tür adını döndürür, aksi takdirde null.

```php
$type = Type::fromString('string|null');
echo $type;                       // '?string'
echo $type->getSingleName();      // 'string'

$type = Type::fromString('?Foo');
echo $type;                       // '?Foo'
echo $type->getSingleName();      // 'Foo'

$type = Type::fromString('Foo|Bar');
echo $type;                       // 'Foo|Bar'
echo $type->getSingleName();      // null
```


isSimple(): bool .[method]
--------------------------

Basit bir tür olup olmadığını döndürür. Basit null atanabilir türler de basit türler olarak kabul edilir:

```php
$type = Type::fromString('string');
$type->isSimple();       // true
$type->isUnion();        // false

$type = Type::fromString('?Foo'); // veya 'Foo|null'
$type->isSimple();       // true
$type->isUnion();        // true
```


isUnion(): bool .[method]
-------------------------

Bir birleşim (union) türü olup olmadığını döndürür.

```php
$type = Type::fromString('string|int');
$type->isUnion();        // true
```


isIntersection(): bool .[method]
--------------------------------

Bir kesişim (intersection) türü olup olmadığını döndürür.


```php
$type = Type::fromString('Foo&Bar');
$type->isIntersection(); // true
```


isBuiltin(): bool .[method]
---------------------------

Türün basit ve aynı zamanda yerleşik bir PHP türü olup olmadığını döndürür.

```php
$type = Type::fromString('string');
$type->isBuiltin(); // true

$type = Type::fromString('string|int');
$type->isBuiltin(); // false

$type = Type::fromString('Foo');
$type->isBuiltin(); // false
```


isClass(): bool .[method]
-------------------------

Türün basit ve aynı zamanda bir sınıf adı olup olmadığını döndürür.

```php
$type = Type::fromString('string');
$type->isClass();   // false

$type = Type::fromString('Foo|null');
$type->isClass();   // true

$type = Type::fromString('Foo|Bar');
$type->isClass();   // false
```


isClassKeyword(): bool .[method]
--------------------------------

Türün `self`, `parent`, `static` dahili türlerinden biri olup olmadığını döndürür.

```php
$type = Type::fromString('self');
$type->isClassKeyword();   // true

$type = Type::fromString('Foo');
$type->isClassKeyword();   // false
```


allows(string $type): bool .[method]
------------------------------------

`allows()` metodu tür uyumluluğunu doğrular. Örneğin, belirli bir türdeki bir değerin parametre olarak iletilip iletilemeyeceğini belirlemeye olanak tanır.

```php
$type = Type::fromString('string|null');
$type->allows('string'); // true
$type->allows('null');   // true
$type->allows('Foo');    // false

$type = Type::fromString('mixed');
$type->allows('null');   // true
```

PHP Tipi

Nette\Utils\Type, PHP veri tipleriyle çalışmak için bir sınıftır.

Kurulum:

composer require nette/utils

Tüm örnekler, bir takma ad oluşturulduğunu varsayar:

use Nette\Utils\Type;

fromReflection($reflection): ?Type

Statik metot, yansımaya dayalı olarak bir Type nesnesi oluşturur. Parametre ReflectionMethod veya ReflectionFunction nesnesi (dönüş değerinin türünü döndürür) veya ReflectionParameter ya da ReflectionProperty olabilir. self, static ve parent'ı gerçek sınıf adına çevirir. Konunun bir türü yoksa null döndürür.

class DemoClass
{
	public self $foo;
}

$prop = new ReflectionProperty(DemoClass::class, 'foo');
echo Type::fromReflection($prop); // 'DemoClass'

fromString(string $type): Type

Statik metot, metin gösterimine göre bir Type nesnesi oluşturur.

$type = Type::fromString('Foo|Bar');
echo $type;      // 'Foo|Bar'

getNames(): (string|array)[]

Bileşik türü oluşturan alt türlerin dizisini karakter dizileri olarak döndürür.

$type = Type::fromString('string|null'); // veya '?string'
$type->getNames();  // ['string', 'null']

$type = Type::fromString('(Foo&Bar)|string');
$type->getNames();  // [['Foo', 'Bar'], 'string']

getTypes(): Type[]

Bileşik türü oluşturan alt türlerin dizisini ReflectionType nesneleri olarak döndürür:

$type = Type::fromString('string|null'); // or '?string'
$type->getTypes();  // [Type::fromString('string'), Type::fromString('null')]

$type = Type::fromString('(Foo&Bar)|string');
$type->getTypes();  // [Type::fromString('Foo&Bar'), Type::fromString('string')]

$type = Type::fromString('Foo&Bar');
$type->getTypes();  // [Type::fromString('Foo'), Type::fromString('Bar')]

getSingleName(): ?string

Basit türler için tür adını döndürür, aksi takdirde null.

$type = Type::fromString('string|null');
echo $type;                       // '?string'
echo $type->getSingleName();      // 'string'

$type = Type::fromString('?Foo');
echo $type;                       // '?Foo'
echo $type->getSingleName();      // 'Foo'

$type = Type::fromString('Foo|Bar');
echo $type;                       // 'Foo|Bar'
echo $type->getSingleName();      // null

isSimple(): bool

Basit bir tür olup olmadığını döndürür. Basit null atanabilir türler de basit türler olarak kabul edilir:

$type = Type::fromString('string');
$type->isSimple();       // true
$type->isUnion();        // false

$type = Type::fromString('?Foo'); // veya 'Foo|null'
$type->isSimple();       // true
$type->isUnion();        // true

isUnion(): bool

Bir birleşim (union) türü olup olmadığını döndürür.

$type = Type::fromString('string|int');
$type->isUnion();        // true

isIntersection(): bool

Bir kesişim (intersection) türü olup olmadığını döndürür.

$type = Type::fromString('Foo&Bar');
$type->isIntersection(); // true

isBuiltin(): bool

Türün basit ve aynı zamanda yerleşik bir PHP türü olup olmadığını döndürür.

$type = Type::fromString('string');
$type->isBuiltin(); // true

$type = Type::fromString('string|int');
$type->isBuiltin(); // false

$type = Type::fromString('Foo');
$type->isBuiltin(); // false

isClass(): bool

Türün basit ve aynı zamanda bir sınıf adı olup olmadığını döndürür.

$type = Type::fromString('string');
$type->isClass();   // false

$type = Type::fromString('Foo|null');
$type->isClass();   // true

$type = Type::fromString('Foo|Bar');
$type->isClass();   // false

isClassKeyword(): bool

Türün self, parent, static dahili türlerinden biri olup olmadığını döndürür.

$type = Type::fromString('self');
$type->isClassKeyword();   // true

$type = Type::fromString('Foo');
$type->isClassKeyword();   // false

allows(string $type): bool

allows() metodu tür uyumluluğunu doğrular. Örneğin, belirli bir türdeki bir değerin parametre olarak iletilip iletilemeyeceğini belirlemeye olanak tanır.

$type = Type::fromString('string|null');
$type->allows('string'); // true
$type->allows('null');   // true
$type->allows('Foo');    // false

$type = Type::fromString('mixed');
$type->allows('null');   // true