PHP アノテーション

PHPz
PHPzオリジナル
2024-08-29 13:02:09775ブラウズ

PHP アノテーションは基本的に、ソース コードに含めることができるメタデータであり、クラス、関数、プロパティ、メソッドの間にも含めることができます。これらは宣言される場合はどこでも接頭辞 @ で始まり、何か特定のものを示します。彼らが提供するこの情報は、プログラマーにとって非常に役立ち、ドキュメント化の目的にも役立ちます。また、IDE はこれを使用して特定のポップアップ ヒントの種類のものを表示することもあります。同じアノテーションは、フォームにどのような入力を行う必要があるかを判断するなど、検証以外の目的や自動化の目的にも使用できます。 @var 型や @int 型など、その名前が示すように特定の用途に使用できるさまざまな種類のアノテーションがあります。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文

PHP アノテーションは @ プレフィックスを付けることで使用され、その構文は次のとおりです。

class Example
{
// @var integer
public $new;
}

ここではアノテーションは @var であり、コードの一部 (ここでは public $new など) の直前に出現するたびに、$new がアノテーションによって指示された整数型の値を持つことを示します。

class Example
{
// @var integer
// @range(0, 51)
// @label('Count of shops')
public $shop;
}

注釈は、関数の整数値として受け入れられる最大値と最小値を表示する範囲を指定するためにも使用でき、ラベルはこの関数の目的を示します。

PHP アノテーションの種類

以下にタイプを示します:

1.組み込みの注釈

アノテーションには次の 2 つの組み込み関数があります:

a. Compiled: この注釈は、メソッド/関数を JIT コンパイルする必要があるかどうかを示します。これは、関数スコープ型のアノテーションでもあります。

b. SuppressWarnings: これは、その下にある後続コードの実行の一部としてスローされる警告を抑制する必要があることを意味する別の組み込みアノテーションです。

2.メタアノテーション

これらは、他の注釈に適用するために使用できるタイプの注釈です。これらは、注釈の構成に使用されます。

a. @アノテーション

@annotation を含む一種のアノテーション クラスがあります。

コード:

[@Annotation]
class MyAnnoExample {
// piece of code
}

b. @ターゲット

名前が示すように、このアノテーションは、アノテーションが適用されるクラス要素またはメソッドのタイプを示します。

これに基づいて、1 つまたは複数のターゲットを記述することができます:

  • プロパティのアノテーションは、プロパティ クラス宣言の直前にあります。
  • クラスの宣言前に許可されるクラス。
  • 関数は関数宣言の前に宣言されています。
  • メソッド アノテーションを使用すると、メソッド宣言を続行できます。
  • アノテーションクラスの宣言に進むためにアノテーションが許可されています。

c. @Repeatable

この注釈は、使用時に何度でも繰り返してよいことを意味します。

d. @継承

これは、他のユーザー定義のアノテーション クラスでもメタ アノテーションとして使用できます。これらの継承されたアノテーションは、スーパークラスで使用されると、それぞれのサブクラスに自動的に継承されます。

3.カスタム注釈

これらは、通常のクラスの宣言と非常に似ています。注釈型の各要素は、それぞれのプロパティ宣言によって定義されます。

PHP アノテーションの例

言及されている例を以下に示します:

例 #1

コード:

// namespace declaration here
[@Annotation]
[@Target("class")]
class MyAnnoEx {
[@Required]
public string $prop;
public array $arrayProp = [];
public embedAnno $embed;
}
[@Annotation]
// code for embedded annotation goes here
[@Target(["class", "annotation"])]
class embedAnno {
}
[@Annotation]
// example for target annotation
[@Target("property")]
class propAnno {
}
@Annotation
// code for method annotation goes here
@Target("method")
class methodAnno {
public string $val;
public function __construct(string $val) {
$this->val = $val;
}
}

これは、上に示したさまざまなタイプの注釈の使用法を示す単なる基本的な例です。例にある埋め込みアノテーション、プロパティ アノテーション、メソッド アノテーションなどはすべてカスタム アノテーションです。

例 #2

コード:

<!DOCTYPE html>
<html>
<body>
<?php
/**
* @Replace("exmaple", "for", "annotation")
*/
class MyNamedComponent
{
}
echo str_replace("First", "Second", "First Example");
?>
</body>
</html>

出力:

PHP アノテーション

この例では、以下のコードが PHP の組み込み関数 str_replace である文字列置換関数の使用法を表しているため、アノテーションに replace という名前を付けています。この関数を使用すると、関数に渡された最初のパラメータが 2 番目のパラメータに置き換えられます。

例 #3

コード:

<!DOCTYPE html>
<html>
<head>
<title>Simple Form Processing</title>
</head>
<body>
<h1>Form Processing using PHP</h1>
<fieldset>
<form id="formex1" method="post" action="formexample.php">
<!--Declaring First name for the form
@Annotation text first_name-->
First_Name:
<input type="text" name="First_Name"/>
<!--@var style color-->
<span style="color:blue;">*</span>
<br>
<br>
<!--Declaring Last_Name for the form
@Annotation text last_name-->
Last_Name:
<input type="text" name="last_name"/>
<span style="color:blue;">*</span>
<br>
<br>
<!--Declaring Location for the form
@Annotation text location-->
Stay location:
<input type="text" name="location"/>
<span style="color:blue;">*</span>
<br>
<br>
<!--Declaring EMAILID for the form
@Annotation text email-->
EmailID:
<input type="email" name="emailID"/>
<span style="color:blue;">*</span>
<br>
<br>
<!--Declaring Password for the form
@Annotation password-->
Password:
<input type="password" name="password"/>
<span style="color:blue;">*</span>
<br>
<br>
<!--Declaring Password for the form
@Radio button password-->
Gender:
<!-- Gender to be selected as either male or female -->
<input type="radio"
value="Male"
name="gender"> Male
<input type="radio"
value="Female"
name="gender">Female
<br>
<br>
<input type="confirm" value="confirm" name="confirm" />
</form>
</fieldset>
<?php
if(example($_POST['confirm']))
{
if(!example($error))
{
echo"<h1>DETAILS RECEIVED</h1><br>";
echo "<table border='2'>";
echo "<thead>";
echo "<th>Argument</th>";
echo "<th>Value</th>";
echo "</thead>";
echo "<tr>";
echo "<td>First Name</td>";
echo "<td>".$First_Name."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Last_Name</td>";
echo "<td>".$last_name."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Stay location</td>";
echo "<td>".$location."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Email Stay location</td>";
echo "<td>" .$emailID."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Password</td>";
echo "<td>".$password."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Gender</td>";
echo "<td>".$gender."</td>";
echo "</tr>";
echo "</table>";
}
}
?>
</body>
</html>

出力:

PHP アノテーション

この例では、PHP のフォーム検証と組み合わせた注釈を示しています。注釈を使用して、姓名、電子メール、場所、パスワードなど、フォームへの入力パラメータとして必要なすべてのパラメータにラベルを付けています。

結論

上記の例では、アノテーションがメソッド、クラス、またはプロパティに関するメタデータを使用および表現するための強力なツールであることがわかりました。また、さまざまな種類のアノテーションを組み合わせて、特定のタスクを実行するワーカーに関するメタデータを記述することでワーカーを宣言する方法も見てきました。これにより、それらを見つけやすくなり、使用できるかどうかに関する実際の情報が得られます。

以上がPHP アノテーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP GET メソッド次の記事:PHP GET メソッド