phpfui/instadoc

为PHP项目提供即时且始终更新的文档


README

一种快速简便地将文档添加到您的PHP项目的方法

我们都用PHP DocBlocks 来记录代码,但我们似乎从未真正生成文档并将其添加到我们的项目中。为什么?因为这需要太多时间(超过一分钟),所以我们推迟到以后,而以后永远不会到来。

但是,使用PHPFUI/InstaDoc,您可以在大约一分钟左右(好吧,也许两分钟)内记录您的网站。涉及的步骤

  • 通过Composer安装PHPFUI/InstaDoc(30秒)
  • 运行安装脚本(30秒)
  • 创建文档页面(1分钟,6行代码)

以下特性,只需两分钟即可使用文档

PHPFUI/InstaDoc功能

  • 始终是最新的,即使是对尚未提交的代码。
  • 将构造函数信息(包括参数和默认值)发送到剪贴板。
  • 子类和父类层次结构清晰显示并可访问。
  • 快速访问突出显示的PHP源代码,用户可选择突出显示。
  • 快速访问本地仓库的文件git历史。
  • 完全支持@inheritDoc标签,因此子方法文档可以正确显示。
  • 自动记录通过Composer加载的所有项目。
  • 标签页式文档,您不会看到无关的方法。
  • 所有内容按字母顺序排列,不再需要搜索未按字母顺序排列的页面!
  • 支持markdown和自定义markdown页面。
  • 能够为高流量网站生成静态HTML文件。
  • 添加任何本地仓库目录。
  • 删除您不关心的任何Composer项目。
  • 5+行配置与所有PHP框架兼容,或独立使用。
  • 使用Foundation CSS框架在移动设备上提供出色的体验。

安装PHPFUI/InstaDoc(需要PHP >= 8.0)

composer require phpfui/InstaDoc

运行安装脚本

安装后,您需要运行安装脚本将静态文件复制到您的公共目录。从项目根目录运行以下命令

php vendor/phpfui/instadoc/install.php yourPublicDirectory/subDirectory

示例: php vendor/phpfui/instadoc/install.php public/PHPFUI 将将所有所需文件添加到public/PHPFUI,这将避免与您当前文件冲突。您可以使用\PHPFUI\Page::setResourcePath指定任何目录,但建议PHPFUI保持简单。

创建文档页面

PHPFUI/InstaDoc不依赖于任何框架,可以在独立页面上运行。建议不要公开文档,因为PHPFUI/InstaDoc会显示PHP源代码。如何限制对页面的访问取决于您。以下示例不限制访问,仅作为示例

<?php
include 'yourAutoLoader.php';

// pass the directory containing your composer.json file
$fileManager = new \PHPFUI\InstaDoc\FileManager('../');

// add your App class tree in, pass true as the last parameter if this namespace is in your local git repo.
$fileManager->addNamespace('App', '../App', true);

// load your cached files
$fileManager->load();

// load child classes if you want to display them, if you don't do this step, docs will not show classes that extend the displayed class
\PHPFUI\InstaDoc\ChildClasses::load();

// get the controller
$controller = new \PHPFUI\InstaDoc\Controller($fileManager);

// display will return a fully formed page
echo $controller->display();

就是这样。您已经完成了!

添加新类

PHPFUI/InstaDoc将类保存到显示在PHP序列化文件中。当您想显示新类时,请删除这些文件(.serial扩展名)。如果文件缺失,PHPFUI/InstaDoc将自动重新生成。

将子类添加到文档中

\PHPFUI\InstaDoc\ChildClasses::load('../ChildClasses.serial');

添加全局命名空间类

git仓库路径默认为composer目录,但您可以通过调用更改路径

$fileManager->addGlobalNameSpaceClass(__DIR__ . '/global/FPDF.php');

移除命名空间

$fileManager->excludeNamespace('Carbon');

添加git仓库页面

git仓库路径默认为composer目录,但您可以通过调用更改路径

$controller->setGitRoot(getcwd() . '/../');

将文档添加到您的文档主页

$controller->addHomePageMarkdown('../PHPFUI/InstaDoc/README.md');

设置您的首页

您可能希望用户能够轻松返回到您的系统中。点击左上角的菜单栏将带他们到这里

$controller->setHomeUrl('/');

将文档分成章节

如果您有很多源代码,您可能想要将其分成章节,这样您将需要一个单独的文件来存储每个章节的索引

$fileManager->setBaseFile('SubProject');

生成静态文件

仅文档和文件页面,没有git!

$controller->generate('static/file/path', [\PHPFUI\InstaDoc\Controller::DOC_PAGE, \PHPFUI\InstaDoc\Controller::FILE_PAGE, ]));

示例和完整类文档

PHPFUI/InstaDoc