要らないコメントを削除する

| | コメント(5)

不安をさそう「なぜか動く」コメント

コメントはソースコードを読み解く上でとっても重要です。どんどん書きましょう。だけど、見えないからとつい余計なことも書いてしまいがちに…。


<?php

/**
 * ドラム缶を表します。
 * 
 * @copyright DATA EAST
 * @version 2
 */
class DrumKan
{
    /**
     * 指定した歩数だけドラム缶を押します。
     * 
     * @param int $step 押す歩数。
     */
    public function push($step)
    {
        // こうするとなぜか動く
        $a = $a;
    }
    
    /**
     * ドラム缶の位置を元に戻します。
     *
     * @deprecated デスクルスは閉鎖されため、やり直す必要はなくなりました。
     */
    public function reset()
    {
        // May 19, 1998
        // やと 警告 とれた も とてもかゆい
        // 今日 はらへったの、いぬ のエサ くう 
        
        // May 21, 1998
        // かゆい かゆい なぞの Exception きた
        // ひどいコードなんで ころし
        // うまかっ です。 
    }
    
    // 4
    // かゆい
    // うま 

}

// May 24, 1998
// ビリーズ ブートキャンプでエクササイズしたら痒みもすっきり取れ、
// 自分でも驚くほどコーディングがはかどりました
// やってて良かった軍隊式トレーニング

コメントのうち、特に重要な情報は PHPDoc 形式で書くと思われます。そこで、/** ~ */ 以外のコメントだけを削除したいのですが、ソースコードの字句解析をする必要が出てきます。気が効くことに、PHP には解析手段が token_get_all 関数として公開されています。これを使って要らないコメントを削除します。


<?php

$tokens = token_get_all(file_get_contents(コメントを削除したいファイル));

foreach ($tokens as $token)
{
    if (is_array($token))
    {
        switch ($token[0])
        {
            case T_COMMENT:
                break;
                
            case T_DOC_COMMENT:
            default:
                echo $token[1];
                break;
        }
    }
    else
    {
        echo $token;
    }
}


そして…実行結果


<?php

/**
 * ドラム缶を表します。
 * 
 * @copyright DATA EAST
 * @version 2
 */
class DrumKan
{
    /**
     * 指定した歩数だけドラム缶を押します。
     * 
     * @param int $step 押す歩数。
     */
    public function push($step)
    {
        
        $a = $a;
    }
    
    /**
     * ドラム缶の位置を元に戻します。
     *
     * @deprecated デスクルスは閉鎖されため、やり直す必要はなくなりました。
     */
    public function reset()
    {
        
        
        
        
        
        
        
        
    }
    
    
    
    
}



応用

token_get_all で得られるトークンは他にも多々あり、これを使えばスクリプトの助長なコードを取り除く最適化や、難読化も自前でできるかも、です。

参考

コメント(5)

Intimately, the submit is definitely the very best on this precious topic. I concur with your conclusions and will eagerly look forward in your coming updates!

I wants to thank you with the endeavors you have produced in publishing this article. I am trusting the same greatest work from you within the future as well. In fact your fanciful writing abilities has inspired me to start my own weblog now. Truly the blogging is spreading its wings rapidly. Your generate up is a fine example of it.Thanks yet again for discussing this cost-free on the web!

It really is good to possess the capacity to examine a great high quality article with practical specifics on topics that plenty are interested on. The stage that the information indicated are all first hand on reside experiences even guide a lot more. Proceed performing what you do as we really like readi?-

Stephenveshy :

ak4100dm3188 order viagra qd7606gp6661ed8558

Stephenveshy :

th4984fp3484 buy Viagra online lr7968ya1562hv6684

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、zenithが2007年6月28日 21:09に書いたブログ記事です。

ひとつ前のブログ記事は「Apache Service Monitor を利用した PHP モジュールの切り替え」です。

次のブログ記事は「PHP 5.2.0 で仕様が変わっていたインターフェイス」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.12