Giter Club home page Giter Club logo

php-class-diagram's People

Contributors

chemaclass avatar dependabot[bot] avatar koriym avatar smeghead avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

php-class-diagram's Issues

PlantUMLダイアグラムのハイパーリンク追加

要約

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

* 矢印にはメソッドをリンクするといいかも知れません。

利点まとめ

  • ナビゲーションの向上: ユーザーはダイアグラムから関連するコードセクションにすばやく移動できます。
  • ドキュメントの強化: ダイアグラムがより情報豊かで実用的になります。
  • 生産性の向上: 特に大規模なプロジェクトでクラス定義を探す時間を削減します。。
  • 品質の向上: SVGはベクタ形式であるため、拡大縮小しても品質が劣化せず、視認性が高い。

参考

https://alps-asd.github.io/app-state-diagram/todomvc/index.html

インラインリンクですが、ノードとリンクがそれぞれの詳細情報にリンクされています。

ご検討のほどよろしくお願いいたします!

support `non-empty-array<Product>`

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での実行がサポートされていないため、私のワークフローに組み込むことが難しい状況です。
プロジェクトをより多くのユーザーに利用してもらうために、GitHub Actionでの実行に対応してはいかがでしょうか。
これにより、CIパイプラインへの組み込みが容易になり、プロジェクトの利便性と可用性が向上すると考えています。

実現に向けて、以下のような対応を提案させていただきます。

  • GitHub Actionのワークフロー設定ファイル(.github/workflows/php-class-diagram.yml)をプロジェクトに追加する。
  • ワークフロー内でプロジェクトの実行に必要な手順を定義する(例:依存関係のインストール、ビルド、画像の生成の実行など)。
  • リポジトリにサンプルのワークフロー設定ファイルを追加し、ユーザーが参考にできるようにする。

ご検討いただければ幸いです。
このプロジェクトを使用する機会を楽しみにしています。
ご不明な点やご提案などございましたら、お気軽にコメントください。
どうぞよろしくお願いいたします。

An error occurs when parsing code that uses traits.

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.

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.

FsEXCRmacAACNhh

Add `--hide-private` options.

#65 でプライベートメソッドを非表示にしたいという要望を頂きました。

クラスのプライベートメソッドとプライベートフィールドを非表示にする --hide-private というオプションの追加を考えています。
プライベートメソッドは非表示にして、プライベートフィールドは表示するという別々の制御をする必要があるのであれば、それぞれのオプションを追加する必要があります。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.