darling/roady

一个由模块驱动的PHP框架。

安装: 16

依赖者: 0

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 1

类型:项目

v2.0.0-beta-4 2024-02-28 14:32 UTC

This package is auto-updated.

Last update: 2024-09-29 20:29:39 UTC


README

    ____                  __
   / __ \____  ____ _____/ /_  __
  / /_/ / __ \/ __ `/ __  / / / /
 / _, _/ /_/ / /_/ / /_/ / /_/ /
/_/ |_|\____/\__,_/\__,_/\__, /
                        /____/

Roady logo

开发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以htmlphp文件形式显示的output

模块可以定义css样式表和javascript文件来定义样式并为网站实现附加功能。

模块可以响应通过定义在以网站域名权威性命名的json文件中定义的路线对网站进行的请求来提供phphtmlcssjavascript

例如,sub.example.com.8080.json将是用以定义具有以下域的网站的路线的json文件的名称

 https://sub.example.com:8080/
 |       \__________________/|
 |               |           |
 |           AUTHORITY       |
  \_________________________/
               |
            Domain

使用网站域名权威性命名路线配置文件允许模块为每个网站定义唯一的路线。

路线

路线定义以下内容

  • 路线配置的模块的名称。注意:模块可以定义另一个模块的路线,通过将路线的模块名称设置为相关模块的名称。

  • 与路线应响应的请求的名称相对应的名称集合。

  • 与Roady的UI提供的命名位置相对应的命名位置集合。这些命名位置用于结构化响应同一请求的所有路线的集体输出。

  • php文件、html文件、css文件或javascript文件的相对路径。

例如,以下json定义了到名为output-file.htmlhtml文件的单一路线

{
    "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布局提供的每个命名位置的目的