digicademy/dlight

DLight - 域驱动设计微框架

v0.2.1 2019-02-03 07:40 UTC

This package is auto-updated.

Last update: 2024-09-29 04:14:39 UTC


README

关于

DLightDelight«) 是一个基于 Slim 的 PHP 微框架,专注于简洁、面向对象的软件架构和相关设计模式。

DLights 架构遵循 域驱动设计 原则。该框架的主要目的是研究软件设计模式和数字人文与文化遗产科学硕士课程中的网络技术。

同时,DLight 和其 Slim 框架基础使得编写干净、高效的 API 和基于 HTTP 的网络应用成为可能。

DLight 目前处于早期测试阶段 - 完全可用并在生产中使用,但功能尚不完整。目前最值得注意的是 DLights 域、工厂和映射类,它们使得耦合和转换 XML 内容(例如,从 eXist XML 数据库)变得非常容易。

DLight 仍然期望您编写自己的 PHP 代码 ;-) 它仅为您提供了完成任务时的干净架构基础。

要求

  • 支持 URL 重写的 Web 服务器
  • PHP 5.5 或更高版本
  • Composer

安装

可以使用 Composer 安装 DLight。创建一个项目目录并执行以下命令

composer require digicademy/dlight

这将把 DLight 安装在项目目录的 vendor 目录中。接下来,创建一个子目录(例如 public),进入该目录,创建一个 index.php 文件,并添加以下内容

<?php

use Digicademy\DLight\Controller\PageController;

require __DIR__ . '/../vendor/autoload.php';

// SETTINGS

$config = [];
require __DIR__ . '/../vendor/digicademy/dlight/config/settings.php';

$app = new \Slim\App(['settings' => $config]);

// DI CONTAINER

$container = $app->getContainer();

require __DIR__ . '/../vendor/digicademy/dlight/config/container.php';

// ROUTES

$app->get('/', PageController::class . ':indexAction')->setName('index.html');
$app->get('/index.html', PageController::class . ':indexAction')->setName('index.html');
$app->get('/test.html', PageController::class . ':testAction')->setName('test.html');

// RUN

$app->run();

最后,将您的 Web 服务器指向 public 目录,并添加特定的 Web 服务器重写规则,以便将所有 HTTP 请求通过 index.php 文件路由。以下为 Apache Web 服务器的示例

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

其他 Web 服务器的重写规则可以在 Slim 文档 中查找

将浏览器指向 public 目录,您应该会看到 DLight 欢迎页面。

文档

以下图表概述了 DLights DDD 架构。

更详细的文档目前正在制作中。

许可

本软件根据 MIT 许可证发布。

研究软件工程与开发

版权 2018-2019, Torsten Schrade
版权 2018-2019, Academy of Sciences and Literature | Mainz

特此授予任何人免费获得此软件及其相关文档文件(“软件”)副本(以下简称“软件”)的权利,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许获得软件的个人这样做,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他原因,也不论该责任源于、产生于或与软件或软件的使用或其他方式相关。