darling / roady
一个由模块驱动的PHP框架。
Requires
- php: ^8.1
- darling/php-darling-dev-tools: ^1.0
- darling/php-file-system-paths: ^1.0
- darling/php-json-storage-utilities: ^1.0
- darling/php-json-utilities: ^1.2
- darling/php-mocking-utilities: ^1.0
- darling/php-reflection-utilities: ^1.1
- darling/php-text-types: ^1.1
- darling/php-unit-test-utilities: ^1.0
- darling/php-web-paths: ^1.0
- darling/roady-module-utilities: ^1.0
- darling/roady-routes: ^1.0
- darling/roady-routing-utilities: ^1.0
- darling/roady-ui-utilities: ^1.0
Requires (Dev)
- dev-Roady
- v2.0.0-beta-4
- v2.0.0-beta-3
- v2.0.0-beta-2
- v2.0.0-beta-1
- v2.0.0-alpha-10
- v2.0.0-alpha-9
- v2.0.0-alpha-8
- v2.0.0-alpha-7
- v2.0.0-alpha-6
- v2.0.0-alpha-5
- v2.0.0-alpha-4
- v2.0.0-alpha-3
- v2.0.0-alpha-2
- v2.0.0-alpha-1
- v2.0.0-alpha-0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.9.9.9-beta
- v0.9.9.8-beta
- v0.9.9.7-beta
- v0.9.9.6-beta
- v0.9.9.5-beta
- v0.9.9.4-beta
- v0.9.9.3-beta
- v0.9.9.2-beta
- v0.9.9.1-beta
- v0.9.9-beta
- v0.9.8-beta
- v0.9.7-beta
- v0.9.6-beta
- v0.9.5-beta
- v0.9.4-beta
- v0.9.3-beta
- v0.9.2-beta
- v0.9.1-beta
- v0.9.0-beta
- v0.8.9-beta
- v0.8.8-beta
- v0.8.7-beta
- v0.8.6-beta
- v0.8.5-beta
- v0.8.4-beta
- v0.8.3-beta
- v0.8.2-beta
- v0.8.1-beta
- v0.8.0-beta
- v0.7.9-beta
- v0.7.8-beta
- v0.7.7-beta
- v0.7.6-beta
- v0.7.5-beta
- v0.7.4-beta
- v0.7.3-beta
- v0.7.2-beta
- v0.7.1-beta
- v0.7.0-beta
- v0.6.9-beta
- v0.6.8-beta
- v0.6.7-beta
- v0.6.6-beta
- v0.6.5-beta
- v0.6.4-beta
- v0.6.3-beta
- v0.6.2-beta
- v0.6.1-beta
- v0.6.0-beta
- v0.5.9-beta
- v0.5.8-beta
- v0.5.7-beta
- v0.5.6-beta
- v0.5.5-beta
- v0.5.4-beta
- v0.5.3-beta
- v0.5.2-beta
- v0.5.1-beta
- v0.5.0-beta
- v0.4.9-beta
- v0.4.8-beta
- v0.4.7-beta
- v0.4.6-beta
- v0.4.5-beta
- v0.4.4-beta
- v0.4.3-beta
- v0.4.2-beta
- v0.4.1-beta
- v0.4.0-beta
- v0.3.9-beta
- v0.3.8-beta
- v0.3.7-beta
- v0.3.6-beta
- v0.3.5-beta
- v0.3.4-beta
- v0.3.3-beta
- v0.3.2-beta
- v0.3.1-beta
- v0.3.0-beta
- v0.2.9-beta
- v0.2.8-beta
- v0.2.7-beta
- v0.2.6-beta
- v0.2.5-beta
- v0.2.4-beta
- v0.2.3-beta
- v0.2.2-beta
- v0.2.1-beta
- v0.2.0-beta
- v0.1.9-beta
- v0.1.8-beta
- v0.1.7-beta
- v0.1.6-beta
- v0.1.5-beta
- v0.1.4-beta
- v0.1.3-beta
- v0.1.2-beta
- v0.1.1-beta
- v0.1.0-beta
- v0.0.9-beta
- v0.0.8-beta
- v0.0.7-beta
- v0.0.6-beta
- v0.0.5-beta
- v0.0.4-beta
- v0.0.3-beta
- v0.0.3-alpha
- v0.0.2
- v0.0.2-beta
- v0.0.1-beta
- v0.0.1-alpha
- v0.0.0-beta
- v0.0.0-alpha
- dev-Roady1712117388
This package is auto-updated.
Last update: 2024-09-29 20:29:39 UTC
README
____ __
/ __ \____ ____ _____/ /_ __
/ /_/ / __ \/ __ `/ __ / / / /
/ _, _/ /_/ / /_/ / /_/ / /_/ /
/_/ |_|\____/\__,_/\__,_/\__, /
/____/
开发Roady v2.0
Roady是我长期开发的一个PHP框架。目前,它是一个激情项目。我喜欢编程,从事Roady的工作让我感到快乐。
Roady v1.1.2
是当前稳定的版本,可以在以下位置找到
https://github.com/sevidmusic/roady/releases/tag/v1.1.2
Roady v2.0是对Roady的完全重写,将受Roady原始设计的影响,但将不与Roady的早期版本兼容。
注意:目前我正在使用此文件来规划Roady2.0的其余重写。在Roady2.0发布之前,此文件将修订为记录Roady2.0。
注意:此文档仍在起草中,并将随着时间的推移而不断发展。
关于
Roady是一个模块化的PHP框架。
使用Roady,网站的特性和功能通过单个模块实现。
例如,假设我的乐队使用Roady构建了我们的网站,我们需要一个音乐播放器,那个音乐播放器将通过一个模块实现。
如果我们需要一个日历来显示即将到来的演出,它将通过一个不同的模块实现。
多个网站可以运行在单个Roady安装上,每个网站都使用一个或多个已安装的Roady模块。
模块
模块的解剖结构
模块是如何工作的
模块应位于Roady的modules
目录中。
/path/to/Roady/modules
模块可以定义通过Roady的UI以html
或php
文件形式显示的output
。
模块可以定义css
样式表和javascript
文件来定义样式并为网站实现附加功能。
模块可以响应通过定义在以网站域名权威性命名的json
文件中定义的路线对网站进行的请求来提供php
、html
、css
和javascript
。
例如,sub.example.com.8080.json
将是用以定义具有以下域的网站的路线的json
文件的名称
https://sub.example.com:8080/
| \__________________/|
| | |
| AUTHORITY |
\_________________________/
|
Domain
使用网站域名权威性命名路线配置文件允许模块为每个网站定义唯一的路线。
路线
路线定义以下内容
-
路线配置的模块的名称。注意:模块可以定义另一个模块的路线,通过将路线的模块名称设置为相关模块的名称。
-
与路线应响应的请求的名称相对应的名称集合。
-
与Roady的UI提供的命名位置相对应的命名位置集合。这些命名位置用于结构化响应同一请求的所有路线的集体输出。
-
到
php
文件、html
文件、css
文件或javascript
文件的相对路径。
例如,以下json
定义了到名为output-file.html
的html
文件的单一路线
{ "module-name": "module-name", "responds-to": [ "name-of-a-request-this-route-responds-to" ], "named-positions": [ { "position-name": "roady-ui-named-position-c", "position": 1.7 } ], "relative-path": "path\/to\/output-file.html" }
Roady的用户界面(UI)
Roady的UI使用已安装模块定义的路线来确定响应请求应渲染的html
。
Roady的UI使用内部定义的命名html
布局提供的命名位置来结构化响应同一请求的路线的集体输出
<!DOCTYPE html> <html> <head> <title><roady-ui-page-title-placeholder></roady-ui-page-title-placeholder></title> <meta charset="UTF-8"> <meta name="description" content="<roady-ui-meta-description></roady-ui-meta-description>"> <meta name="keywords" content="<roady-ui-meta-keywords></roady-ui-meta-keywords>"> <meta name="author" content="<roady-ui-meta-author></roady-ui-meta-author>"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <roady-ui-css-stylesheet-link-tags></roady-ui-css-stylesheet-link-tags> <roady-ui-js-script-tags-for-html-head></roady-ui-js-script-tags-for-html-head> </head> <body> <roady-ui-pre-header></roady-ui-pre-header> <header class="roady-ui-header"> <roady-ui-header></roady-ui-header> </header> <main class="roady-ui-main-content"> <roady-ui-main-content></roady-ui-main-content> </main> <footer class="roady-ui-footer"> <roady-ui-footer></roady-ui-footer> </footer> </body> </html> <roady-ui-js-script-tags-for-end-of-html></roady-ui-js-script-tags-for-end-of-html> <!-- Powered by Roady (https://github.com/sevidmusic/roady) -->
下表概述了Roady的UI内部定义的html
布局提供的每个命名位置的目的