phplist/phplist4-core

此包已被废弃,不再维护。作者建议使用 phplist/core 包。

phpList的核心模块,全球最受欢迎的开源邮件列表管理器

安装次数: 1,413

依赖项: 0

建议者: 0

安全: 0

星标: 86

关注者: 17

分支: 28

公开问题: 26

类型:phplist-module

v4.0.0-alpha5 2021-03-02 19:52 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

关于phpList

phpList是一个开源的邮件列表管理器。本项目是原始phpList的重新编写。

关于此包

这是phpList 3的后续版本的核心模块。它将承担以下职责

  • 通过Doctrine模型和存储库(以及不需要模型的性能关键部分的原生SQL)提供对数据库的访问
  • 路由(Web前端和REST API将使用)
  • 身份验证(Web前端和REST API将使用)
  • 日志记录
  • 一个用于从命令行调用(或cron作业)的任务脚本
  • 创建和更新数据库模式的任务

请注意,此模块不提供Web前端或REST API。这些任务有独立的模块phpList/web-frontendphpList/rest-api

此模块不应本地修改。应通过Composer进行更新。

安装

由于此包仅是运行完整phpList 4安装所需的服务,因此推荐通过在phpList基本分布内部运行composer install来安装此包,该分布要求此包。phpList/base-distribution在其README中包含详细的安装说明。

对此包的贡献

对phpList存储库的贡献非常受欢迎!要开始,请查看贡献指南。它包含您需要制作第一个贡献的所有内容,包括如何运行本地样式检查和运行测试。

行为准则

本项目遵循贡献者行为准则。通过参与此项目和其社区,您应遵守此准则。

结构

运行Web服务器

phpList应用程序已配置为内置PHP Web服务器可以以开发模式和测试模式运行,而Apache可以以生产模式运行。

请首先在config/parameters.yml中设置数据库凭据。

开发

要使用PHP的内置服务器以开发模式运行应用程序,请使用此命令

bin/console server:run -d public/

服务器将监听http://127.0.0.1:8000(或,如果端口8000已被占用,则在8000之后的下一个可用端口)。

您可以按CTRL + C停止服务器。

开发和文档

我们使用 phpDocumentor 自动生成类的文档。为了使此过程高效且简单,您需要通过添加 docblocks 来正确地“文档化”您的 classespropertiesmethods ...。

有关生成文档的更多信息,请参阅 PHPDOC.md

测试

要运行测试模式的服务器(通常仅在自动测试时需要,请提供 --env 选项

bin/console server:run -d public/ --env=test

生产

有关使用 Apache 运行应用程序的文档,请参阅 phpList base distribution README

更改数据库架构

对数据库架构的任何更改都必须在 phpList 3 和后续版本中同时进行,以确保两个版本始终具有相同的架构。

要更改数据库架构,请编辑 resources/Database/Schema.sql 并相应地调整相应的领域模型类和存储库类。

开发 phpList 模块(插件)

在 phpList 中,插件称为 模块。它们是具有 phplist-module 类型的 Composer 包。

捆绑和路由配置

如果您的模块提供了任何 Symfony 捆绑,则需要将捆绑类名列在模块的 composer.json 文件的 extra 部分中,如下所示

"extra": {
    "phplist/core": {
        "bundles": [
            "Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle",
            "PhpList\\Core\\EmptyStartPageBundle\\PhpListEmptyStartPageBundle"
        ]
    }
}

请注意,带有 extra 的部分的键始终需要是 phplist/core,而不是您的模块包的名称。请参阅 composer.jsonrest-api 模块中 的示例。

类似地,如果您的模块提供了任何路由,也需要在模块的 composer.json 文件的 extra 部分中列出,如下所示

"extra": {
    "phplist/core": {
        "routes": {
            "homepage": {
                "resource": "@PhpListEmptyStartPageBundle/Controller/",
                "type": "annotation"
            }
        }
    }
}

您还可以为您的模块提供系统配置

"extra": {
    "phplist/core": {
        "configuration": {
            "framework": {
                "templating": {
                    "engines": [
                        "twig"
                    ]
                }
            }
        }
    }
}

建议使用控制器类中的 注释 定义路由,以便在 composer.json 中的路由配置尽可能少。

访问数据库

要从模块访问 phpList 数据库表,请使用存储在 phplist/core 包(此包)中的 src/Domain/ 下的 Doctrine 模型和存储库类。

要访问存储库,请通过 依赖注入 进行注入。请勿直接从实体管理器获取存储库,因为这会跳过对该存储库的依赖注入,导致依赖于其他服务注入的方法会中断。

目前,只有少数数据库表被映射为模型/存储库。如果您需要尚不存在的方法或存储库方法,请 提交一个拉取请求提交一个问题

从第三方应用程序访问 phpList 数据

要从第三方应用程序(即,不是从 phpList 模块)访问 phpList 数据,请使用 REST API

版权

phpList 版权所有 (C) 2000-2021 phpList Ltd