ホームページ > バックエンド開発 > PHPチュートリアル > PHP コード引用機能を自分で実装する

PHP コード引用機能を自分で実装する

WBOY
リリース: 2016-06-13 12:19:45
オリジナル
1046 人が閲覧しました

PHP コードのアノテーション機能を自分で実装する

PHP アノテーション

これまでのところ、PHP のリフレクション機能はアノテーション Annotation をサポートしていませんが、基本的なドキュメント アノテーション コンテンツの取得をサポートできます ReflectionMethod::getDocComment () - 5.1.0以降。 PHP のリフレクションは実際には非常に強力です。必要なのは、さらに一歩進んで、ドキュメントのコメント内の関連するコメントを解析することだけです。

AppServer.io は、注釈をサポートするための lang ライブラリを提供します。 PHP の Tokenizer 機能は、アノテーション コードの解析にも使用されます。詳細な原理については詳しく説明しませんので、興味がある方はご自身でコードを読んでください。
https://github.com/appserver-io/lang

注釈の手順については、http://appserver.io/get-started/documentation/annotations.html

ここではデモ コードを次のように抜粋します。

<code><?phpnamespace Namespace\Module;use AppserverIo\Appserver\Lang\Reflection\ReflectionClass;use AppserverIo\Appserver\Lang\Reflection\ReflectionAnnotation;class Route extends ReflectionAnnotation{  /**   * Returns the value of the name attribute.   *   * @return string The annotations name attribute   */  public function getPattern()  {    return $this->values[&#39;pattern&#39;];  }}class IndexController{  /**   * Default action implementation.   *    * @return void   * @Route(pattern="/index/index")   */  public function indexAction()  {    // do something here  }}// create a reflection class to load the methods annotation $reflectionClass = new ReflectionClass(&#39;IndexController&#39;);$reflectionMethod = $reflectionClass->getMethod(&#39;indexAction&#39;);$reflectionAnnotation = $reflectionMethod->getAnnotation(&#39;Route&#39;);$pattern = $reflectionAnnotation->newInstance()->getPattern();</code>
ログイン後にコピー
この機能により、メソッドの URL ルーティング モード/インデックス/インデックスをアノテーションで指定できます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート