shelane/knot

节点核心框架和所需包。

dev-main 2024-08-29 14:22 UTC

This package is auto-updated.

Last update: 2024-08-29 14:22:34 UTC


README

框架文件全部位于 _knot 目录中。此目录应高于公共网站目录,以确保其文件不会被公众访问。文件将通过节点按需调用。

_knot 目录结构

_knot
  \_ _templates
       \_ pages
             \_ basic.inc
             \_ error.inc
             \_ footer.inc
             \_ header.inc
             \_ home.inc
       \_ base.inc
       \_ css-includes.inc
       \_ js-includes.inc
  \_ App
       \_ Database.php
       \_ Emailer.php
       \_ Knot.php
       \_ Map.php
       \_ Menu.php
       \_ Page.php
       \_ Session.php
       \_ TaskBar.php
       \_ TaskBarButtonGroup.php
       \_ TaskBarFontAwesome.php
  \_ .editorconfig
  \_ debugger.php
  \_ index.php
  \_ knot.php
  \_ tags.php

_knot 目录包含框架的内部工作原理。

首先是 index.php 文件。它将需要 knot.php 文件,该文件启动框架。为了扩展节点框架以用于应用程序,必须创建一个包含这些设置的文件,并在 knot.php 文件中包含它。这包括使用数据库类,需要在 Knot 容器中添加配置设置。阅读数据库容器的文档块以获取特定要求。以双下划线开头的变量由节点声明并由节点需要。index.php 文件将读取网站的声明配置。它将设置用户请求的路径,获取网站页面文件的路径,并设置页面和导航数据。它将确定是否通过用户操作调用了允许的过程,并将调用特定于数据库处理(添加、更新和删除)的文件。如果没有要运行的过程,它将查找请求的页面文件并设置页面内容。然后开始渲染。

_templates 目录包含 HTML 渲染模板文件。

_templates 目录包含包含构建页面最终输出的分层 HTML 结构元素的文件。base.inc 文件包含 HTML 页面的基本外部层,包括 html、head 和 body。它将在 head 中包含 header-includes.inc 文件。body 将调用为所选页面定义的模板。

App 目录包含节点使用的类。

数据库类管理类的所有实例的单例数据库连接,而数据库对象将具有不同的属性值。

Knot 类是应用程序的容器,其中包含应用程序的特定配置。也可以存储函数以供以后使用。

Map 类是关联数组的 getter/setter 类。这允许只有名称/值对。

菜单类负责渲染菜单并存储当前页面信息,例如模板和页面标题。

页面类将持有特定于页面元素的属性。

会话类目前未使用。一旦在 knot.php 启动文件中实例化,它将管理在节点中调用的所有页面的会话。

公共网站目录

docroot
  .htaccess
  \_ _config
       \_ config.ssi
       \_ menu.ssi
  \_ _pages
       \_ home.inc
       \_ ... other pages for site
  \_ _process
       \_ ... process files match route using .ssi
  \_ assets
       \_ css
       \_ js
       \_ img
       \_ ... other public asset files

公共网站目录中的符号链接应指向此文件。它将在网络目录中期望一个包含 config.ssimenu.ssi 文件 _config 目录。

config.ssi 文件必须将 content_pathsite_namedefault_page 添加到 Knot 容器中。一个 $route 变量是可选的,但请确保使用 var_define 函数设置一个经过验证的路线调用数组。

《menu.ssi》文件必须包含网站的导航和任何将被knot渲染的页面,应该是一个包含以下设置的关联数组:路径(将添加到href的路径名 - 不应包含任何/字符),标签(菜单输出中显示的名称),标题(在标题元素和html头部中显示的页面标题),菜单(是否在菜单中渲染的布尔值),图标(菜单显示的值),样式(额外的类)。页面的子项可以以相同的结构添加到children菜单数组下。父路径将自动构建,不需要包含在path值中。

_pages目录的根目录下,应该为每个页面创建一个文件,文件名与菜单中的path相匹配,并且必须有一个.inc文件扩展名。任何额外的包含文件应放置在包含目录中,以保持_pages目录的整洁。对于深度大于1的网站,文件应位于与父路径名匹配的连续目录中。

_process目录用于运行与$route请求匹配的过程的文件。这些文件必须有.ssi扩展名。

assets目录应包括任何公开提供的文件,例如css文件、javascript文件或图像。

.htaccess文件包含生成干净URL和防止对.inc.ssi文件进行Web访问所需的规则。