magebitcom / module-documentation

magebitcom/module-documentation

Module documentation viewer for Magento 2 admin

magento2-module Compatibility: 2.4.7-2.4.9 Code Quality: Fail Tests: N/A Security: Pass MIT

Magebit Documentation Module

A Magento 2 module that provides a centralized documentation viewer in the admin panel. View, search, and navigate module documentation.

Installation

Via Composer

composer require magebitcom/module-documentation
bin/magento module:enable Magebit_Documentation
bin/magento setup:upgrade

Requirements

  • PHP 8.1 or higher
  • Magento 2.4+

Quick Start

1. Create Documentation Files

Create a Docs/ folder in your module with Markdown files:

app/code/Vendor/YourModule/
├── Docs/
│   ├── 1-getting-started.md
│   ├── 2-configuration.md
│   └── 3-api-reference.md
├── etc/
│   └── documentation.xml
└── ...

2. Register Documentation

Create etc/documentation.xml in your module:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magebit_Documentation:etc/documentation.xsd">
    <module name="Vendor_YourModule" title="Your Module" sortOrder="10">
        <documentation name="Getting Started" path="Docs" sortOrder="10"/>
    </module>
</config>

3. Clear Cache

bin/magento cache:flush

4. View Documentation

Navigate to System → Documentation in the Magento admin panel.

Configuration

Module Attributes

Attribute Required Description
name Yes Module name (e.g., Vendor_Module)
title No Display title in sidebar (defaults to module name)
sortOrder No Module position (lower = higher, default: 100)
icon No Path to icon (e.g., Vendor_Module::images/icon.svg)

Documentation Attributes

Attribute Required Description
name Yes Display name in sidebar
path Yes Path to documentation folder
acl No ACL resource to restrict access
sortOrder No Position within module (lower = higher, default: 100)

Path Formats

Relative Path

<documentation name="Guide" path="Docs/Guide"/>

Relative to the current module directory.

Module Path (Recommended)

<documentation name="API" path="Vendor_Module::Docs/Api"/>

Format: ModuleName::path/to/docs

Multiple Documentation Sections

<module name="Vendor_Module" title="My Module" sortOrder="10">
    <documentation name="Getting Started" path="Docs/GettingStarted" sortOrder="10"/>
    <documentation name="Configuration" path="Docs/Config" sortOrder="20"/>
    <documentation name="API Reference" path="Docs/Api" sortOrder="30"/>
</module>

Advanced Features

ACL Protection

Restrict documentation visibility:

<documentation 
    name="Admin Guide" 
    path="Docs/Admin" 
    acl="Vendor_Module::admin_documentation"/>

Define the ACL resource in etc/acl.xml:

<acl>
    <resources>
        <resource id="Magento_Backend::admin">
            <resource id="Vendor_Module::admin_documentation" title="Admin Documentation"/>
        </resource>
    </resources>
</acl>

Custom Module Icons

Add visual branding with custom icons:

<module name="Vendor_Module" icon="Vendor_Module::images/module-icon.svg">
    <documentation name="Guide" path="Docs"/>
</module>

Place your SVG icon at: view/adminhtml/web/images/module-icon.svg

File Naming Convention

Use numeric prefixes for ordered navigation:

Docs/
├── 1-introduction.md       (appears first)
├── 2-installation.md       (appears second)
├── 3-configuration.md      (appears third)
└── advanced/
    ├── 1-api.md
    └── 2-troubleshooting.md

Markdown Support

The module uses CommonMark with GitHub Flavored Markdown extensions.

Supported Features

  • Headers (#, ##, ###, etc.)
  • Bold (**text**) and Italic (*text*)
  • Lists (ordered and unordered)
  • Links ([text](url))
  • Images (![alt](url))
  • Code blocks (with syntax highlighting)
  • Tables
  • Blockquotes (>)
  • Horizontal rules (---)
  • Task lists (- [ ] / - [x])
  • Strikethrough (~~text~~)

Example Markdown

# Getting Started

## Installation

Follow these steps:

1. Install the module
2. Enable it
3. Clear cache

## Code Example

```php
$documentation = $this->documentationProvider->getDocumentation('Vendor_Module');

Important Note

Always clear cache after modifying documentation.xml


## API

### DocumentationProviderInterface

```php
<?php

namespace Magebit\Documentation\Api;

interface DocumentationProviderInterface
{
    /**
     * Get all registered documentation
     *
     * @return array
     */
    public function getDocumentation(): array;

    /**
     * Get documentation for specific module
     *
     * @param string $moduleName
     * @return array|null
     */
    public function getModuleDocumentation(string $moduleName): ?array;
}

SearchServiceInterface

<?php

namespace Magebit\Documentation\Api;

interface SearchServiceInterface
{
    /**
     * Search documentation
     *
     * @param string $query
     * @return \Magebit\Documentation\Api\Data\SearchResultInterface
     */
    public function search(string $query): SearchResultInterface;
}

Permissions

Grant access to documentation in System → Permissions → User Roles:

  • View Documentation: Magebit_Documentation::view

Troubleshooting

Documentation Not Appearing

  1. Check that etc/documentation.xml is valid
  2. Clear cache: bin/magento cache:flush
  3. Verify the module is enabled: bin/magento module:status Magebit_Documentation
  4. Check file permissions on Docs/ folder

Icons Not Displaying

  1. Verify icon path in documentation.xml
  2. Check that SVG file exists at the specified location
  3. Clear static content: bin/magento setup:static-content:deploy

No changelog yet

The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.

Versions
Version Stability QA Status Compatibility Released
v0.0.1 stable Fail Magento 2.4.7-2.4.9 Details 2026-02-10 13:24:46

Requires 3

Package Constraint
league/commonmark ^2.0
magento/framework *
php ^8.1

Compatibility

Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.

Compatibility matrix (Magento × PHP)
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Pass Pass
2.4.8 Pass Pass
2.4.9 Pass Pass

Code Quality

Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.

Static analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

Static analysis results
Tool Status Findings Summary
PHPCS Warning 23 23 warnings (ruleset: Magento2)
PHPMD Warning 5 5 rule violations (CyclomaticComplexity:2, NPathComplexity:2, ExcessiveClassComplexity:1)
Cpd Pass 0
Composer validate Info 1 valid; 1 advisory note (composer validate --strict)

PHPStan

Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.

PHPStan results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 5 5
2.4.8 5 5
2.4.9 5 5

Tests

Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.

Unit tests

Unit tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Integration tests

Integration tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Security

Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.

Security results
Tool Status Findings Summary
Composer audit Pass 0
Malware scan Pass 0
License
MIT

More from magebitcom

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.