metaclass-nl/phppeanuts-skeleton

phppeanuts 框架的骨架应用

dev-master 2020-09-05 14:46 UTC

This package is auto-updated.

Last update: 2024-09-05 23:48:05 UTC


README

版本 2.3.0.rc1 骨架应用

从 phpPeanuts 2.2.0 版本适配的骨架应用。本版本不包括示例或 pntUnit。

要安装,请运行

composer create-project metaclass-nl/phppeanuts-skeleton my_project_name dev-master

在测试之前,您需要在 conf/scriptMakeSettings.php 中进行配置

phpPeanuts 文档:https://www.phppeanuts.org/

更新内容

自 2.2.0 版本以来

  • 适配 composer 规范
    • 重新组织目录结构
    • 添加 composer.json
    • 现在使用 composer 的自动加载器来加载 Site 类。(phpPeanuts 所使用的其他类仍然通过显式的 Gen::(try)includeClass 调用来加载。)
    • 您可以使用由 composer 安装的其他库,并自动加载它们的类,只要它们的类名与现有的(phpPeanuts 和它的应用程序)类名不冲突。大多数库现在都使用命名空间,因此不会冲突。

现有 phpPeanuts 2.2.0 应用程序的升级说明

要将现有应用程序安装到骨架中

  • 备份您的现有应用程序
  • 适配您的 Site 类以配置类和皮肤包含的新位置,例如骨架中的 src/classSite.php
  • 添加或适配 Gen (try)includeClass 覆盖以使用新的类位置和库类包含配置,例如骨架中的 src/classGen.php
  • 将类文件夹的内容移动到 src
  • 将 includes 文件夹的内容移动到 resources/views
  • 将其他文件和文件夹移动到 public
  • 适配每个 index.php 文件以使用 composers autoload.php,如 emptyapp/index.php 所做的那样
  • 从 .gitignore 中删除 composer.lock,以便在 git checkout 或 pull 后可以轻松安装您在开发中使用的库的确切版本
  • 删除 emptyapp

此外,您还可以

  • 通过将它们添加到 composer.json require 或 require-dev 来使用 composer 库
  • 将可重用类库文件夹移动到单独的 composer 库
  • 适配 composer.json 以让 composer 安装您的库
  • 适配 src/classSite.php $pntLibraries 以在安装后使用库中的类(仅需要通过 Gen::(try)includeClass 加载的类)
  • 运行 composer update 以安装库

如果您选择使用 vendor 以外的目录,则需要

  • 适配 src/classSite.php $pntLibraries 以使用正确的位置
  • 适配每个 index.php 文件以使用 composers autoload.php 的位置

已知的错误和限制

  1. 不支持 UTF-8
  2. 应用程序仅在支持 X-Frame-Options 标头的浏览器中受到跨框架脚本攻击的保护。
  3. 通过 referrerer 标记的同步令牌模式不如通过请求令牌强大。(目前大多数框架只对此模式进行操作(称为 peanuts 的票据))。
  4. 尽管框架有 DAO 类,这些类被成功用作 MySQL 和 SqLite 的数据库抽象层,但与其他数据库的使用可能需要一些额外的重构。请告知我们使用其他数据库的任何问题和解决方案。(已知:Oracle 版本低于 9 不支持标准显式 JOIN 语法,但 JOIN 语句的生产不委托给 DAO 对象,并且不能轻松重构以执行此操作。)
  5. AGPL 许可证要求您将使用此版本 phpPeanuts 的应用程序的源代码提供给您组织外的任何用户,并允许他们将其转发到全世界。