Download the PHP package doctordanila/script-doc without Composer
On this page you can find all versions of the php package doctordanila/script-doc. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download doctordanila/script-doc
More information about doctordanila/script-doc
Files in doctordanila/script-doc
Package script-doc
Short Description Render Markdown documentation as web pages
License MIT
Informations about the package script-doc
DoctorDanila/ScriptDoc
Пакет для автоматической генерации веб-интерфейса документации на основе Markdown-файлов. Подходит для любых PHP-проектов: от простых скриптов до фреймворков Yii и Laravel.
Возможности
- Рендеринг
.mdфайлов из папкиdocs/в виде веб-страниц. - Автоматическое построение дерева навигации с учётом вложенных директорий.
- Отображение корневых файлов проекта:
README.md,LICENSE,CONTRIBUTING.md(поиск без учёта регистра). - Встраивание ссылки на Swagger-документацию (опционально).
- Поддержка GitHub Flavored Markdown (через
cebe/markdown). - Простая интеграция через один класс-контроллер.
Где размещён
- Пакет доступен на Packagist:
doctordanila/script-doc - Исходный код: https://github.com/DoctorDanila/script-doc
Установка
Установите пакет через Composer:
Как подключить в проект
Обычный PHP-проект
- Подключите автозагрузку Composer и настройте контроллер документации.
- Вызовите
handleRequest()в точке входа (например,index.php). - Настройте веб-сервер так, чтобы все запросы к
/docs/*направлялись на этот скрипт.
Пример public/index.php:
Для локального тестирования используйте встроенный сервер PHP:
Теперь документация доступна по адресу http://localhost:8000/docs.
Подключение к Yii (Yii2)
Создайте модуль для документации:
-
Файл
modules/docs/Module.php: -
Файл
modules/docs/controllers/DefaultController.php: - Зарегистрируйте модуль в конфигурации
config/web.php:
Теперь документация будет доступна по URL /docs.
Подключение к Laravel
- Создайте сервис-провайдер и маршрут.
-
В файле
app/Providers/DocServiceProvider.php: -
Зарегистрируйте провайдер в
config/app.php(секцияproviders): - Настройте веб-сервер (Nginx) так, чтобы запросы к
/docs/*не обрабатывались Laravel-роутингом, а направлялись напрямую на точку входа, либо создайте простой роут вroutes/web.php:
После этого документация станет доступна по /docs.
Команда для просмотра документации
Если вы используете встроенный сервер PHP, запустите команду:
Затем откройте http://localhost:8000/docs. Маршрут /docs будет автоматически перехвачен контроллером пакета.
Настройка пакета при подключении
Класс Controller предоставляет цепочку методов для конфигурации:
| Метод | Описание |
|---|---|
setProjectName() |
Название проекта (отображается в заголовке страницы) |
setDocsDir() |
Абсолютный путь к папке с Markdown-документацией |
setRoutePrefix() |
URL-префикс, по которому будет доступна документация (по умолчанию /docs) |
setProjectRootDir() |
Корневая директория проекта (по умолчанию – родительская от docsDir) |
setSwaggerPath() |
Внешняя ссылка на Swagger-описание API (опционально) |
Все методы возвращают текущий экземпляр Controller, позволяя строить цепочку вызовов.
Известные проблемы
- Чувствительность к регистру в URL. Навигация и роутинг внутри
docs/преобразуют пути к нижнему регистру, но имена файлов и папок в самой файловой системе должны соответствовать этому регистру (по возможности используйте имена в нижнем регистре). - Прямые ссылки внутри документов могут не работать. В основном это зона роста для работы с корневыми файлами и ссылками с указанием расширения. Будет исправлено в ближайшем патче.
- Отсутствие кеширования. При каждом запросе файлы сканируются заново. При большом количестве документов это может снизить производительность. Рекомендуется кешировать результат на уровне веб-сервера.
- Права доступа. Убедитесь, что PHP имеет права на чтение папки
docs/и корневых файлов (README.md,LICENSEи т.д.). - Вложенные директории без README.md. Если папка не содержит ни одного
.mdфайла и не имеет собственногоREADME.md, она будет скрыта из навигации. - Зависимость от
cebe/markdown. Пакет использует библиотекуcebe/markdownдля преобразования Markdown. Если в документации встречаются специфические расширения, не поддерживаемые этой библиотекой, рендеринг может отличаться.
Рекомендации по процессу работы
- Структура документации. Держите основные разделы в отдельных папках внутри
docs/и обязательно добавляйте файлREADME.mdдля каждого раздела – он будет отображаться при переходе в соответствующую папку. - Именование файлов. Старайтесь придерживаться нижнего регистра и избегайте специальных символов в названиях, чтобы упростить навигацию.
- Интеграция с CI/CD. Добавьте шаг в процесс сборки, который проверяет наличие и корректность Markdown-файлов (например, линтер Markdown).
- Безопасность. Документация доступна публично. Не размещайте в папке
docs/конфиденциальную информацию. При необходимости настройте ограничение доступа на уровне веб-сервера. - Альтернативный веб-сервер. Для production-окружения рекомендуется использовать Nginx или Apache с rewrite-правилами, направляющими запросы к
/docs/*на ваш PHP-скрипт, минуя основной роутинг фреймворка, чтобы избежать накладных расходов.