首页 > 其他分享 >DeerOJ的前端框架介绍-libs文件夹和controller文件夹

DeerOJ的前端框架介绍-libs文件夹和controller文件夹

时间:2024-05-30 19:43:54浏览次数:9  
标签:index 文件 DeerOJ 初始化 controller 文件夹 libs php

libs文件夹

index.php 文件初始化的过程中,需要提前准备好一些类和方法,这些类和方法的初始化是调用 libs 文件夹下的大多数 php 文件来实现的。libs文件夹下的文件如下:

其中,uoj-lib.php 文件是进行所有相关初始化的主文件,上级的 index.php 文件会直接调用该文件展开初始化的工作。libs 文件夹下的其他文件和 model 文件夹下的所有类都是通过 uoj-lib.php 文件来完成初始化工作的。

controller文件夹

该文件夹是用来存放控制器文件的,也就是构建HTML文件的主要文件。controller文件夹下的文件如下:

其中, judge 文件夹下的文件负责处理OJ的判题逻辑。比如,评判提交的代码是否AC/WA/TLE/MLE等。
这里以当前文件夹下的 index.php 为例来描述主页的生成。

生成主页的 index.php

先给出 index.php 的代码:

可以看到从这里开始php文件中有 HTML 的语句出现。
事实上,controller文件夹下的每个php都对应着一个网页的主要内容的生成。观察 index.php 生成的主页:

index.php 中的所有 HTML 语言的代码都是实现上图中的第2模块部分。

注意到代码:

<?php echoUOJPageHeader(UOJConfig::$data['profile']['oj-name-short']) ?>

此部分通过先前初始化的类和方法调用 /app/views/page_header.php 文件,结合 /app/views/main-nav.php 文件来生成整个网页的header部分。

注意到代码:

<?php echoUOJPageFooter() ?>

此部分通过先前初始化的类和方法调用 /app/views/page_footer.php 文件来生成整个网页的footer部分。

在这样的情况下,可以灵活调用这些php语句,来应对一些特殊网页的生成。

标签:index,文件,DeerOJ,初始化,controller,文件夹,libs,php
From: https://www.cnblogs.com/hakurokawashiro/p/18223107

相关文章

  • [后续更新中] DeerOJ的工作原理
    服务端收到请求后,会运行web文件夹下的index.php文件(由同目录下的.htaccess决定)index.php文件的内容截图如下:index.php会加载所需的函数库和类库,具体如下:require$_SERVER['DOCUMENT_ROOT'].'/app/libs/uoj-lib.php';该句是调用/app/libs/下的php文件,用来调用一些......
  • DeerOJ的前端框架介绍-Web文件夹和App文件夹(route.php)
    Web文件夹下的结构DeerOJ的前端框架参考了部分Lavarel框架,做到兼顾代码的可维护性和可阅读性。具体的维护目录文件结构如下:注意到web文件夹下的index.php这是整个前端程序的main程序,当服务段收到请求后,根据.htaccess文件指定使用index.php文件来生成网页,并把网页数......
  • DeerOJ的前端框架介绍-config.php
    config.php文件config.php文件是PHP应用程序的配置文件,具体用于DeerOnlineJudge(DeerOJ)系统的设置。它定义了应用程序的基本信息、数据库连接、Web服务器设置、安全配置、邮件配置、评测机配置以及一些开关设置。基本信息(profile)部分参数解释如下:oj-name:在线......
  • Java 中 controller & service & dao 之间的关系
    开门见山:Controller层调用Service层,Service层调用DAO层,DAO层负责操作Model层,从而完成整个系统的业务与处理、数据访问等功能。Model数据库实体层Model层就是数据库实体层,也被称为entity层,Bean,pojo或者po。一般数据库一张表对应一个实体类,类属性和表字段一一对应......
  • SSMP整合案例第四步 表现层controller开发及用Result进行统一消息处理
    表现层开发数据层和业务层都做完了我们首先得创建我们表现层对应的包和类Controller层控制层先写的是查询所有信息控制层调用业务层使用的是依赖注入的方法packagecom.bigdata1421.ssmp.controller;importcom.bigdata1421.ssmp.domain.User;importcom.bigdata1......
  • windows镜像虚拟机创建共享文件夹详细步骤 -- 和本地电脑传输文件
    第一步:关闭客户机第二步:右击“虚拟机名称”或菜单栏的“虚拟机”–>“设置”网络适配器选择NAT或者其他的都可以来到“选项”,启用共享文件夹,具体如下图:点击添加,添加主机文件夹。然后确定 第三步:开启虚拟机,打开虚拟机内的“我的电脑”,如果有下图所示的网络共享文件夹,则......
  • 我创建了一个文件夹/软件包,其中有两个子软件包(第一个=subpkg1,第二个=subpkg2),在subpkg1
    我正在使用VS代码学习Java。我创建了一个文件夹/包(name=pkg)然后,我在该包中创建了两个包(第一个=subpkg1,第二个=subpkg2)但我在subpkg1中创建了一个文件(test1)并从subpkg2中导入文件(name=food)然后编译并运行。我一直收到pkg.subpkg2doesn'texist的错误信息(见......
  • controller层
     所花时间(包括上课): 1 h左右代码量(行): 200  左右搏客量(篇):1了解到的知识点: controller层接口实现备注(其他): packagecom.leap.jixianceshiboot.controller;importcom.leap.jixianceshiboot.entity.Policy;importcom.leap.jixianceshiboot.......
  • 如何批量新建文件夹并命名?3个实用文件重命名技巧请收藏
    如何批量新建文件夹并命名?很多从事文职类工作的小伙伴们应该都会在工作中会遇到关于文件夹批量新建的问题,面对需要新建几百个文件夹还在一个一个手动操作的话,这样的话太影响工作效率了,这里小编就来给大家分享几个批量新建文件夹并命名的方法,希望可以通过这篇文章帮助到你,以后再......
  • 统计不同文件夹中的文件数量,并绘制相应的柱状图。
    一、数据类型每个文件夹下都是这种文件,虽然可以通过手动数出来了解文件数量,但为了更直观地看到每个文件夹的文件数量,可以使用图表来表示,这样会更加清晰。效果展示:  二、代码实现 importosimportmatplotlib.pyplotaspltfolder_names=['0','1','2','3']......