エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント3件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
メソッドチェーンDSLでブロックを作るテクニック
PHP勉強会でうまく説明できなかったので、ちゃんとした説明を。PHPが対象ですが、たぶんほかの言語でも... PHP勉強会でうまく説明できなかったので、ちゃんとした説明を。PHPが対象ですが、たぶんほかの言語でも応用できる話です。 メソッドチェーンで言語内DSLを作るとき、ブロック状の構文のようなものが必要になることがあります。XML_BuilderではXMLのツリー状の構文を再現するため、この構文を多用しています。 <?php XML_Builder::factory() ->root() ->child1() ->child2() ->child3_() ->_() ->_() ->_() ->_echo(); わかりやすいようインデントしましたが、単にthisを返し続けるメソッドチェーンならば意味的にブロックはないわけで、こんな構文を作るのはつらいものがあります。 XML_Builderでも悩みまして、いろいろ考えた結果、コンテキストをオブジェクトとして実装しました。詳しく説明していきます。
2012/05/28 リンク