Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Fluid Documentation Generator Laravel Package

t3docs/fluid-documentation-generator

Generates automatic TYPO3 Fluid ViewHelper reference docs in RST plus a JSON index. Configured via one or more JSON files and run from a CLI command to build navigable namespace/group/file structure for rendering with render-guides.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Niche Use Case: Designed exclusively for TYPO3/Fluid ViewHelpers, making it incompatible with Laravel’s Blade or vanilla PHP. The package leverages Fluid’s ViewHelperFinder and RST output, which are non-standard in Laravel ecosystems.
  • Documentation-Centric: Optimized for static, build-time documentation generation (RST/JSON), not dynamic or interactive docs. Laravel teams typically prefer Markdown (Docusaurus), HTML (Laravel Forge), or API tools (Scribe).
  • TYPO3 Dependency: Assumes TYPO3’s documentation pipeline (e.g., render-guides), which is irrelevant to Laravel. The JSON schema and RST templates are tailored for TYPO3’s Sphinx-based workflows.

Integration Feasibility

  • Zero Laravel Compatibility: No Blade directives, Laravel-specific annotations, or framework-agnostic docblock parsing. The package hardcodes Fluid namespace assumptions (e.g., Vendor\MyPackage\ViewHelpers), which conflict with Laravel’s App\View\Components or Blade conventions.
  • Output Format Mismatch: Generates RST/JSON, which requires Sphinx or TYPO3’s render-guides for rendering. Laravel docs typically use Markdown (GitHub Pages), HTML (Laravel’s php artisan), or API specs (OpenAPI).
  • CLI-Driven Workflow: Requires manual JSON config files and a Composer-based CLI command, which is clunky for Laravel’s artisan-centric workflows. Laravel’s php artisan doc:generate (if it existed) would be a better fit.

Technical Risk

  • High Integration Risk: No Laravel plugins or adapters exist. Porting would require:
    • Rewriting Fluid-specific logic (e.g., ViewHelperFinder) to parse Laravel’s Blade components or custom directives.
    • Adapting RST templates to Markdown/HTML for Laravel’s tooling (e.g., Docusaurus, Laravel’s native docs).
    • Breaking changes if Laravel’s Blade syntax evolves (e.g., new directives).
  • Maintenance Overhead: The package is abandoned (last release 2026-04-03) with no Laravel community support. Dependencies like justinrainbow/json-schema may introduce security/compatibility risks.
  • False Positives: The 23.365 score and 42.64 opportunity score are misleading for Laravel—these metrics reflect TYPO3/Fluid relevance, not Laravel’s needs.

Key Questions for a Laravel TPM

  1. Why RST/JSON? Laravel teams don’t use Sphinx/RST. What’s the business case for adopting this format over Markdown/HTML?
  2. Blade vs. Fluid: Does your project mix Fluid and Blade, or is this a TYPO3 migration? If the latter, clarify the transition plan.
  3. Docblock Standardization: Can you enforce consistent @param/@return tags in Blade components to feed this tool? (Laravel’s Blade lacks native docblock support.)
  4. CI/CD Impact: How would this fit into Laravel’s GitHub Actions/GitLab CI? Would you replace php artisan commands with this CLI?
  5. Alternatives Evaluated: Why not:
    • spatie/laravel-blade-directives + phpDocumentor (for Blade)?
    • knuckleswtf/scribe (for API docs)?
    • Docusaurus (for Markdown-based docs)?
  6. Long-Term Viability: The package is TYPO3-specific. If your project abandons TYPO3/Fluid, this tool becomes obsolete.
  7. Output Consumption: Who will render the RST/JSON? Do you have a Sphinx setup, or will this require a custom Laravel middleware?

Integration Approach

Stack Fit

  • Incompatible with Laravel’s Stack:
    • Templating: Fluid (TYPO3) vs. Blade (Laravel).
    • Documentation Tools: RST/Sphinx vs. Markdown/Docusaurus or Laravel’s native HTML.
    • CLI Workflows: Composer-based vs. artisan-based.
  • Potential Overlap:
    • If your Laravel project also uses TYPO3/Fluid (e.g., a hybrid app), this could document Fluid-only ViewHelpers while Blade components use separate tools.
    • If you’re migrating from TYPO3 to Laravel, this could temporarily document legacy Fluid code before full migration.

Migration Path

  1. Assess Scope:
    • Identify which ViewHelpers need documentation (Fluid-only or mixed with Blade).
    • Audit existing docblocks—ensure they follow the package’s JSON schema requirements (e.g., @param, @return tags).
  2. Pilot Integration:
    • Install in a dev dependency:
      composer require --dev t3docs/fluid-documentation-generator
      
    • Create a minimal JSON config for a single Fluid namespace:
      {
        "name": "LaravelFluidAddon",
        "namespaceAlias": "lf",
        "targetNamespace": "http://laravel.org/ns/Vendor/LaravelFluid/ViewHelpers"
      }
      
    • Test CLI output:
      vendor/bin/fluidDocumentation generate path/to/config.json
      
  3. Bridge to Laravel Workflows:
    • Option A (TYPO3-Focused): Keep RST/JSON for Fluid docs only, render with render-guides in a separate doc site (e.g., docs.typo3.laravel-app.com).
    • Option B (Hybrid): Convert RST to Markdown using a custom script (e.g., pandoc) and merge into Laravel’s Docusaurus/Scribe docs.
    • Option C (CI/CD): Add to Laravel’s php artisan via a custom command (high effort, low reward).
  4. Deprecation Plan:
    • If migrating away from Fluid, phase out this tool in favor of Blade-specific solutions (e.g., spatie/laravel-blade-directives).

Compatibility

Laravel Component Compatibility Workaround
Blade Templates ❌ Incompatible Use spatie/laravel-blade-directives instead.
PHP DocBlocks ✅ Compatible (if standardized) Enforce @param/@return tags for Fluid.
Composer ✅ Compatible (dev dependency) Install as --dev only.
GitHub Actions/GitLab CI ⚠️ Partial (CLI-based) Wrap in a custom script or use composer exec.
Laravel Mix/Webpack ❌ Incompatible Output is static; no build step needed.
Docusaurus/Scribe ❌ Incompatible (RST/JSON) Convert RST to Markdown with pandoc.
php artisan ❌ Incompatible No native integration.

Sequencing

  1. Phase 1 (TYPO3-Fluid Only):
    • Document only Fluid ViewHelpers using this package.
    • Render RST with render-guides in a separate doc site.
  2. Phase 2 (Hybrid Docs):
    • Convert RST to Markdown and merge into Laravel’s main docs (e.g., Docusaurus).
    • Use a custom script to sync Fluid docs with Blade docs.
  3. Phase 3 (Full Migration):
    • Replace Fluid ViewHelpers with Blade components.
    • Deprecate this package in favor of Laravel-native tools.

Operational Impact

Maintenance

  • High Ongoing Effort:
    • JSON Config Management: Requires manual updates for new/changed ViewHelpers (no auto-discovery of Blade components).
    • Docblock Standardization: Enforcing consistent annotations across Fluid and Blade teams.
    • Output Format: RST/JSON requires additional tooling (render-guides, pandoc) to consume, increasing maintenance surface.
  • Dependency Risks:
    • Abandoned Package: Last release in 2026-04-03; no Laravel-specific fixes.
    • TYPO3-Centric Updates: Future versions may break Laravel compatibility (e.g., Fluid 5.0 changes).
  • Laravel-Specific Gaps:
    • No support for **Blade
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport
twbs/bootstrap4