smeghead / php-class-diagram Goto Github PK
View Code? Open in Web Editor NEWA CLI tool that parses the PHP source directory and generates PlantUML class diagram scripts as output.
License: Apache License 2.0
A CLI tool that parses the PHP source directory and generates PlantUML class diagram scripts as output.
License: Apache License 2.0
PlantUMLダイアグラムの出力形式を現在のPNGからSVGに変更し、SVGダイアグラム内にハイパーリンクを追加する機能をリクエストします。これにより、クラス図からGitHub上の対応するソースコードファイルにリンクできるようになり、使い勝手が大幅に向上すると思います。
現在、PlantUMLはクラス図をPNG形式で視覚化しています。しかし、大規模なコードベースを扱う場合、ダイアグラムのクラスをクリックしてGitHubリポジトリ内のソースコードに直接移動できる機能があると便利です。ハイパーリンクを実現するためにPNG形式でなく、SVG形式のダイアグラムが必要です。SVGはベクタ形式であり、拡大縮小しても品質が劣化しないしサイズや速度のメリットもあります。
SVG形式のサポート: PlantUMLダイアグラムの出力形式としてSVGをサポートします。
ハイパーリンクのサポート: SVGダイアグラム内にハイパーリンクを追加できるようにします。
GitHubとの統合: これらのハイパーリンクがGitHubリポジトリ内の特定のファイルおよびコード行を指すことができるようにします。
Alice -> Bob: Authentication Request [[https://github.com/your-repo/auth_request.code]]
Bob --> Alice: Authentication Response [[https://github.com/your-repo/auth_response.code]]
@startuml
skinparam svgLinkTarget _blank
class User {
+String name
+String email
+ [[https://github.com/your-repo/your-project/blob/main/src/User.php User Class]]
}
class Account {
+int accountNumber
+double balance
+ [[https://github.com/your-repo/your-project/blob/main/src/Account.php Account Class]]
}
User --> Account
@enduml
* 矢印にはメソッドをリンクするといいかも知れません。
https://alps-asd.github.io/app-state-diagram/todomvc/index.html
インラインリンクですが、ノードとリンクがそれぞれの詳細情報にリンクされています。
ご検討のほどよろしくお願いいたします!
If your class has an array field, In the current specifications, *
is displayed on the array side of the dependency arrow.
It is better to display *
in case of @var array<Product>
and 1..*
in case of @var non-empty-array<Product>
.
こんにちは。
私は、このプロジェクトに興味を持っているのですが、現状ではGitHub Actionでの実行がサポートされていないため、私のワークフローに組み込むことが難しい状況です。
プロジェクトをより多くのユーザーに利用してもらうために、GitHub Actionでの実行に対応してはいかがでしょうか。
これにより、CIパイプラインへの組み込みが容易になり、プロジェクトの利便性と可用性が向上すると考えています。
実現に向けて、以下のような対応を提案させていただきます。
ご検討いただければ幸いです。
このプロジェクトを使用する機会を楽しみにしています。
ご不明な点やご提案などございましたら、お気軽にコメントください。
どうぞよろしくお願いいたします。
v0.3.0
An error occurs when loading a trait.
PHP Fatal error: Uncaught TypeError: Cannot assign PhpParser\Node\Stmt\Trait_ to property Smeghead\PhpClassDiagram\Php\PhpClass::$syntax of type PhpParser\Node\Stmt\Class_|PhpParser\Node\Stmt\Interface_
Loading a file with traits defined shouldn't cause an error.
Display a summary of the class Document Comment under the class name in the class diagram.
For domain experts and non-English-speaking programmers, class names alone can be difficult to intuitively grasp.
In order to output a class diagram that is easier to grasp intuitively, we will be able to write the summary in the class Document Comment together with the class name.
Also, you can turn this feature off in the options.
v0.3.1
In the source code below there is a class called \Internal\Culculator and a namespace called \Internal\Culculator.
At this time, if you generate a class diagram using php-class-diagram, there is a problem that the Calculator class does not appear in the class diagram.
Even if the class name and namespace name are the same, the correct class diagram should be output.
#65 でプライベートメソッドを非表示にしたいという要望を頂きました。
クラスのプライベートメソッドとプライベートフィールドを非表示にする --hide-private
というオプションの追加を考えています。
プライベートメソッドは非表示にして、プライベートフィールドは表示するという別々の制御をする必要があるのであれば、それぞれのオプションを追加する必要があります。
array expression array<SomeType>
does not recognized as Dependency.
array expression SomeType[]
is ok.
array expression array<SomeType>
must was recognized correctly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.