Mevcut herhangi bir PHP bilgilendirme kısmı çözümleyici araçlar var mı?

4 Cevap php

Ben bazı küçük ölçekli inşa etmek gibi ama bir kaç projeler için Hightly özelleştirilmiş dokümantasyon siteleri olacaktır. PhpDocumentor oldukça büyük ama çok ağır. Bunun için şablonlar çimdik çalışıyor düşündüm ama içine bakarak dakika sadece birkaç geçirdikten sonra ben çok fazla iş olacağına karar verdi.

İdeal Ben dosyaların bir demet geçebileceği bir şey görmek istiyorum ve ben dayalı bazı basit şablonlar üzerinden inşa edebileceğini, böylece, onların meta veri ile birlikte, dosyalar, sınıfları ve özellikleri ve yöntemleri tüm dönün Veri.

Bu görevi bana yardımcı, ya da ben bu tekerleği yeniden icat şaşırıp herhangi bir bilgilendirme kısmı ayrıştırıcı-sadece projeler var mı?

4 Cevap

Sen Reflection API: ile kolayca kendiniz yapabilirsiniz

/**
 * This is an Example class
 */
class Example
{
    /**
     * This is an example function
     */
    public function fn() 
    {
        // void
    }
}

$reflector = new ReflectionClass('Example');

// to get the Class DocBlock
echo $reflector->getDocComment()

// to get the Method DocBlock
$reflector->getMethod('fn')->getDocComment();

Bu öğretici bakınız: http://www.phpriot.com/articles/reflection-api

Bilgilendirme kısmı ayrıştırmak bir PEAR package da vardır.

Sadece cevapları güncellemek için. Ayrıca phpDocumentor2 projeyi kontrol etmek isteyebilirsiniz. Ben PHP bilgilendirme kısmı ayrıştırıcı kolayca bağımsız bir çözüm olarak elde edilebilir olduğunu düşünüyorum.

Durumda birisi (xdazz suggested bu denemek için student310 onu / onun ihtiyaçları için çalışır yorumladı) bir düzenli ifade ihtiyacı

if (preg_match_all('/@(\w+)\s+(.*)\r?\n/m', $str, $matches)){
  $result = array_combine($matches[1], $matches[2]);
}

Example (Demo) ,

<?php
$str ='
/**    
 * @param   integer  $int  An integer
 * @return  boolean
 */
';
if (preg_match_all('/@(\w+)\s+(.*)\r?\n/m', $str, $matches)){
  $result = array_combine($matches[1], $matches[2]);
}

var_dump($result);

Sen ayrıştırıcı ne olmuştur belirli ayrıntılarına verebilirsiniz bir PHP çözümleyici istiyorum görünür.

Tam bir PHP 4/5 çözümleyici için Semantic Designs PHP Front End bakın. Bu, PHP kaynak kodu Parsers hassas konum bilgisi ile her düğümü damgalama, soyut sözdizimi ağaçlar oluşturur ve daha fazla kullanım için onları kullanılabilir hale getirir. Yapabilirim genel bir şey geri orijinal metin olarak herhangi bir alt ağacı yazdırmaktır.

Sizin durumunuzda, sen, ağaçlar üzerinde tarama istiyor (ağaç düğümleri olarak) sınıfları / yöntemleri / özellikleri bulmak ve konum bilgileri ile birlikte, kendi kaynak metin yazdırmak istiyorum. Ben tam olarak ne istediğinizi teslim düşünüyorum.