shelane / knot
节点核心框架和所需包。
Requires
- php: ^8.2
- ext-pdo: *
Requires (Dev)
- acquia/coding-standards: ^2.0
- phpmd/phpmd: ^2.13
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.ssi
和 menu.ssi
文件 _config
目录。
config.ssi
文件必须将 content_path
、site_name
和 default_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访问所需的规则。