PHP'deki mevcut sınıflara dayalı olarak nasıl UML diyagramı oluşturabilirim?
PHP'deki mevcut sınıflara dayalı olarak nasıl UML diyagramı oluşturabilirim?
Yanıtlar:
Edinilebilir PHP UML aracı da var armut .
PHP_UML:
Komut satırına şu yolla yükleyin:
$ pear install pear/php_uml
(Bu eskiden $ pear install pear/php_uml-alpha
öyleydi, ancak paket o zamandan beri kararlı hale geldi.)
Xmi'nizi oluşturun:
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(bkz. Pear.php.net/package/PHP_UML/download/All veya pear.php.net/package/PHP_UML )
BOUML'u şiddetle tavsiye ederim :
phUML, PHP ile yazılmış, BSD lisansı altında lisanslanmış, tam otomatik UML sınıfı diyagram üretecidir. Herhangi bir PHP5 nesnesine yönelik kaynak kodunu ayrıştırabilir ve UML belirtimine bağlı olarak oo yapısının uygun bir görüntü temsilini oluşturabilir.
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
PHP ve UML için bulduğum en iyi (Windows) yazılım Sparx Systems Enterprise Architect . pek çok özelliğin yanı sıra , PHP için aşağıdakileri de destekler :
ücretsiz değil (199 $), ama kesinlikle paraya değer.
Autodia'yı henüz denediniz mi? En son denediğimde mükemmel değildi, ama yeterince iyiydi.
Ayrıca php2xmi var . Biraz manuel çalışma yapmanız gerekir, ancak bu tüm sınıfları oluşturur, bu nedenle tek yapmanız gereken onları Umbrello'daki bir sınıf diyagramına sürüklemektir .
Aksi takdirde, yansıma ve grafik kullanımıyla bir diyagram oluşturmak oldukça basittir. Ben pasaj olmasını buraya bir başlangıç noktası olarak kullanabileceğiniz,.
İşte bunu nasıl yaptım (herhangi bir şeyi manuel olarak çizmeden doğrudan koddan PDF çizimine):
PDF diyagramının çıktısını almak için fdp kullanmak için uygun bir komut satırı örneği (argouml-graphviz XLST işleme tarafından oluşturulan nokta dosyasının xmi-model.dot olarak kaydedildiğini varsayarak):
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
Alternatif olarak , "tersine mühendislik" bölümünü yapmak için BOUML yerine PHP_UML veya php2xmi'yi deneyebilirsiniz . Bunu henüz denemedim.
("Tersine mühendislik" ifadesini kullanıyorum, çünkü UML çalışanları bu kelimeleri kaynak koddan sınıf ve yöntem bilgilerini ayıklamak istediklerinde kullanıyorlar. Bu kelimeleri kişisel olarak yürütülebilir ikili dosyadan veya ham tel verileri.)
Sınıf diyagramını elle çizmeyi tercih ederseniz (tüm çizimi bilgisayar kullanmak yerine), çizim için BOUML veya ArgoUML kullanabilirsiniz. BOUML aracılığıyla "ters mühendislik" verilerinin kullanılması bu durumda yardımcı olacaktır.
Mevcut PHP Sınıflarınızdan kolayca UML oluşturmak istiyorsanız, PHPStorm 3.0 IDE'yi düşünmek isteyebilirsiniz. Mevcut kodu UML'ye kopyalamak için iyi bir iş çıkarır.
PHP Storm özellik listesine bir göz atın .
UML için Visual Paradigm'i kullanabilirsiniz. Bu, denemek isteyen varsa, en iyi ödenen (699 ABD Doları) ürün olmayabilir. PHP'den sınıf diyagramı oluşturabilir ve bunun tersi de yapılabilir ve sadece PHP değil, C #, C ++, Ruby, Java, VB.NET, Python, Objective C, Perl, vb. Gibi seçebileceğiniz bir sürü dil vardır. deneme kontrol edebilirsiniz.
Teoride, sınıflarınızı UML kullanarak görselleştirmek için PhpStorm'u kullanabilirsiniz. Nesil gerçekten harika değil, ancak en azından ebeveynleri, uygulamaları, sabitleri, nitelikleri, yöntemleri ve görünürlüğünü güzel bir şekilde önizleyebilirsiniz.
Durum
Bir meslektaşım ile halihazırda var olan bileşenler arasındaki iletişimi görselleştirmek istiyorum.
PHPStorm kullanarak işlem
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
Avantajları
Dezavantajları
Sonuç
Her neyse, zahmetli bir çalışma saatinden sonra yalnızca ilgisiz kutular üretebildim ve ilişkileri bağlamak için ek program kullanmak zorunda kaldım. Gerçekten kötü. Ancak, düzgün çalışmasını sağladıklarında bunun harika bir özellik olacağına inanıyorum çünkü kod değiştikçe diyagramlar otomatik olarak güncellenecektir!
Şimdilik, UML diyagramları için PhpStorm'u kullanmayın.
Dürüst olmak gerekirse, her şeyden önce koddan UML modelini değil, UML modelinden kod üretmelisiniz;).
Nadir bir durumda olsanız bile, bu tersine mühendisliği yapmanız gerektiğinde, genellikle elle yapmanız veya en azından diyagramları düzeltmeniz önerilir, çünkü otomatik olarak oluşturulan UML gerçekten zayıf bir görselliğe sahiptir (= bilgi) çoğu zaman değer verir.
Sadece diyagramları oluşturmanız gerekiyorsa, kendinize tam olarak neden diye sormanız muhtemelen iyi bir şeydir. Hedef kitle kimdir ve amaç nedir? Otomatik oluşturulan diyagramın sunması gereken, kodun sunmadığı nedir?
Temel olarak bu soruya sadece bir cevabı kabul ediyorum. Sadece çok büyük ve anlaşılmaz hale geldi.
Kodlamaya başlamak yerine yine ilk etapta UML ile başlamak için bir neden;) Buna analiz deniyor ve düşüşte, çünkü iş dünyasındaki her iki adam bunun biraz fazla pahalı ve gerçekten gerekli olmadığını düşünüyor.