slogsdon / flat-file
快速静态网站生成器 / 平面文件CMS
Requires
- php: ~7.1
- league/commonmark: ^0.17.5
- spatie/yaml-front-matter: ^2.0
- symfony/console: ^4.1
Requires (Dev)
- phpstan/phpstan: ^0.10.1
- phpunit/phpunit: ^7.2
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-09-09 21:05:14 UTC
README
快速静态网站生成器 / 平面文件CMS
特性
- 无需配置
- 使用Markdown、HTML或PHP
- 基于文件系统的路由
- 导出静态网站,或通过PHP支持的Web服务器运行
- 包含开发环境
理由
PHP易于安装,如果您的计算机上尚未安装。PHP几乎可以在任何地方运行。PHP非常灵活。
这个项目也满足了我想要看看PHP在这个问题域中可以处理多少的能力的愿望。
要求
入门指南
{
"name": "user/site",
"description": "",
"require": {
"slogsdon/flat-file": "dev-master"
},
"scripts": {
"build": "flat-file build",
"start": "flat-file serve"
},
"config": {
"process-timeout": 0
}
}
《code》和《config》部分不是必需的,但它们确实有助于简化开发过程。如果使用《start》脚本,则《process-timeout》配置选项允许Composer运行脚本时间超过默认超时时间(300秒)。
如果不使用Composer脚本配置,您需要将《flat-file》脚本作为《vendor/bin/flat-file》引用,例如。
vendor/bin/flat-file build
vendor/bin/flat-file serve
在设置您的《composer.json》文件后,不要忘记拉取您的依赖项。
composer install
添加内容
接下来,您的单个页面需要包含在项目根目录下的《pages》目录中(即紧邻您的《composer.json》文件)。页面可以用Markdown(带有《.md》或《.markdown》文件扩展名)编写,纯HTML,或PHP(带有《.php》文件扩展名)。PHP文件可以选择将内容以正常方式输出(echo,print,在《
<?php /* pages/index.php */ ?> <h1>Hello World</h1>
在《pages》下添加更多页面,例如。
<!-- pages/about.md --> # About
运行开发服务器
准备好测试了吗?启动开发服务器
composer start
这将启动一个监听在《https://:3000》的PHP开发服务器。按下《Ctrl-C》将停止服务器,为将项目构建为纯HTML文件以供后续部署腾出空间。
构建静态文件
启动网站的构建
composer build
忽略Composer的《vendor》目录,一旦所有操作完成,您应该在项目根目录中看到类似以下的内容
.
├── composer.json
├── composer.lock
├── dist
│ ├── about.html
│ └── index.html
├── pages
└── vendor
使用自定义入口点
默认情况下,我们为Web服务器提供了一个用于处理请求的入口点。它对《public》目录中的文件进行了一些重写,要求Composer自动加载器,并启动应用程序。您可以选择包含自己的入口点,创建一个名为《index.php》的新入口点,并将其放在项目根目录的《public》目录中。以下是默认的参考
<?php declare(strict_types=1); $uri = $_SERVER['REQUEST_URI']; if ($uri !== '/' && file_exists(getcwd() . '/public' . $uri)) { return false; } require getcwd() . '/vendor/autoload.php'; new FlatFile\Application;
作为平面文件CMS运行
如果您希望使用PHP支持的Web服务器以平面文件CMS而不是静态网站运行您的项目,您需要
- 将Web根目录配置为《public》
- 使用自定义入口点或配置您的Web服务器以使《vendor/slogsdon/flat-file/src/router.php》服务于任何不存在的路径。
然后您的Web服务器将能够像通常一样从《public》提供静态资源,以及您创建的任何页面。
常见问题解答(F.A.Q.)
- 关于LiveReload之类的功能怎么办?
- 正在调查中,但暂时请使用《F5》/《Cmd-R》。
许可证
本项目采用MIT许可证。有关详细信息,请参阅《LICENSE》文件(《https://github.com/slogsdon/php-flat-file/blob/HEAD/LICENSE》)。