8fold / php-events
一个方便跟踪和显示事件的库
Requires
- php: ^8.1
- 8fold/commonmark-fluent-markdown: ^1.0
- 8fold/php-html-builder: ^1.0
- laminas/laminas-httphandlerrunner: ^2.1
- nyholm/psr7: ^1.4
- nyholm/psr7-server: ^1.0
- symfony/finder: ^6.0
Requires (Dev)
- phpstan/phpstan: ^1.5
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-22 00:05:55 UTC
README
事件显示一个网格视图,模仿日历的年和月。
事件设计为尽可能快、直接地响应用户请求。
安装
composer require 8fold/php-events
用法
我们将8fold事件分为内容(数据)和用户界面(UI)。
这意味着您可以为UI开发自己的代码,并使用提供的扁平文件对象通过Events
类查询和检索数据。
您也可以通过Grid
类使用基于网格的UI,并提供自己的CSS和JavaScript。
或者,您可以使用dist
文件夹中提供的CSS和JavaScript。用于生成它们的实现分别位于sass
和javascript
文件夹中。
仅内容
Events::fold("/path/to/content-root");
为了最佳性能,请从Events
类开始,该类用作代表文件的缓存的实例的容器。这些文件是懒加载的。
UI(含内容)
您可以显示月份(常用)或年份视图。
使用unfold
方法查询并渲染内容。
对于月份视图
Grid::forMonth("/events/{year}/{month}")->unfold();
或者,对于年份视图
Grid::forYear("/events/{year}")->unfold();
对于基本路由或页面(/events
),我们建议您将用户重定向到月份或年份视图。Events
类有方便的方法来查找有事件的下一个月或上一个月,或者,最快的方法是将用户重定向到当前年份的当前月份或仅当前年份。
月份视图将提供链接到有事件的下一个和上一个月,无论年份如何。年份视图将显示该月的事件数量,视图还将提供链接到有事件的下一个或上一年份。
内容文件夹结构
8fold事件依赖于特定文件夹结构的数据方面。根文件夹可以放在任何你想放的地方,只要PHP可以访问那个文件夹。
.
└── root/
└── {year}/
└── {two-digit month}/
├── {two-digit day}.event
└── {two-digit day}_{1-n}.event
生产示例
.
└── root/
└── 2020/
└── 01/
├── 01.event
├── 02.event
├── 02_2.event
├── 03_1.event
└── 03_2.event
每一天由一个或多个.event
文件表示,这些文件是纯文本的markdown文件。对于有多个事件的日期,你可以在文件名中添加后缀,从下划线开始,并指定它们在模态弹出窗口中应出现的顺序;具有后缀_1
是可选的。