noctis/kickstart-app

Kickstart项目中的用户应用程序部分。

安装: 48

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 1

类型:项目

4.0.2 2023-04-25 06:50 UTC

README

Latest Stable Version Latest Unstable Version Type Coverage Maintainability License

这是什么?

它是Kickstart项目的一部分,是一个骨架/示例应用程序。Kickstart项目本身由两部分组成

此应用程序包含用户应该能够修改的所有文件,以便创建自己的基于Kickstart的应用程序。

它有什么好处?

Kickstart是为了构建基于PHP的微型和小型应用程序而创建的,无论是Web还是命令行界面(CLI)。

好的,那么我该如何安装这个应用程序呢?

重要: Kickstart有两个主要平台要求

  • PHP 8.1.x,
  • Composer 2.0.x。

要创建一个新的基于Kickstart的项目,请在您的命令行界面中运行以下命令,让Composer执行其操作

$ composer create-project noctis/kickstart-app app-name

重要:在上面的命令中,将 app-name 替换为您想要的任何名称。 app-name 是将在当前工作目录中创建的文件夹的名称。

使用Docker开发您的应用程序

有关开发基于Kickstart的应用程序的所有信息,都可以在 此文档 中找到。

好的,它已经安装了。现在怎么办?

现在您可以自由地修改/添加 app-name 文件夹(或您更改的任何名称)中的文件来构建您的应用程序。我在项目中包含了一些示例/虚拟文件来帮助您开始。如果您不需要这些文件,您可以完全删除它们。有关如何做到这一点的说明,请参阅 此处

重要:如果您正在构建基于Web的应用程序,请配置您的WWW服务器以从 public 目录提供文件。

应用程序组件

一个全新的基于Kickstart的项目由几个部分组成

  • 配置,
  • HTTP动作(带有模板/视图),
  • 控制台命令,
  • 服务提供者,
  • 数据库存储库,
  • 服务。

配置

项目的配置可以在其根目录中的 .env 文件中找到。

永远不要在您的项目中提交 .env 文件 - 它包含必须保持私密的敏感信息!

这是默认的 .env 文件的样子

# Valid values: prod, dev
APP_ENV=dev
# "/" for root-dir, "/foo" (without trailing slash) for sub-dir
basehref=/
db_host=localhost
db_user=dbuser
db_pass=dbpass
db_name=dbname
db_port=3306

以下是对每个选项含义的概述

APP_ENV

此选项可以取两个值之一

  • prod
  • 开发.

将其设置为 prod 会改变三件事

  • PHP错误消息被隐藏,
  • 模板(视图)被缓存;对它们的任何更改都不会在浏览器刷新页面时可见,
  • 依赖注入容器(DIC)将被 编译并保存到文件中(默认情况下在 var/cache/container 中),这将提高应用程序的性能,但代价是DIC将忽略依赖注入配置的任何更改。

将其设置为 dev 会造成

  • PHP错误消息被显示,
  • 模板(视图)不会被缓存;对它们的任何更改都会在浏览器刷新页面后立即可见。
  • 依赖注入配置(DIC)会注意对任何更改,但可能会略微影响应用程序的性能。

在生产环境中,此选项应设置为prod,在开发期间设置为dev

如果您正在更改模板/视图,但在浏览器中看不到更改 - 要么清除缓存,通过删除var/cache/templates目录的内容,要么将.env中的APP_ENV选项设置为dev

如果您正在更改服务提供者或类的构造函数(依赖注入)以及DIC(依赖注入容器)未能看到这些更改,请清除var/cache/container目录的内容或将.env文件中的APP_ENV选项设置为dev

basehref

这是应用程序从浏览器中可用的URI。如果它位于例如:localhost,应使用默认值/。如果它位于子目录中,例如:localhost/kickstart,则应将basehref值设置为/kickstart

重要: .env中的barehref值和public/.htaccess文件中的RewriteBase值应始终相同!如果这些值不同,您将遇到大量404错误。

对于控制台命令,此参数的值无关紧要。

db_hostdb_userdb_passdb_namedb_port

这5个选项是数据库凭据

  • db_host - 数据库的主机名(例如:localhost),
  • db_port - 端口号(默认:3306),
  • db_user - 数据库用户名,
  • db_pass - 数据库用户密码,
  • db_name - 数据库名。

HTTP操作

您可以在此处了解更多关于HTTP操作的信息。

控制台命令

您可以在此处了解更多关于控制台命令的信息。

数据库仓库

Kickstart利用了仓库模式,或多或少。当您想要从/到数据库获取或存储某些内容时,您会在仓库对象上调用适当的方法。

默认情况下,仓库类可以在src/Repository目录中找到(App\Repository命名空间)。所有利用数据库连接的仓库都扩展了Noctis\KickStart\Repository\AbstractDatabaseRepository抽象类,该类提供了一个名为$dbprotected字段,代表数据库连接。

Kickstart利用了ParagonIE的EasyDB包来针对您选择的数据库引擎运行查询。EasyDB是PHP的PDO的一个简单包装,据我所知,它比PDI本身容易使用得多。如果您想了解更多关于为什么选择EasyDB而不是其他库的原因,请查看常见问题解答

服务提供者

您可以在此处了解更多关于服务提供者的信息。

文件夹

您可以在此处了解更多关于项目目录中每个文件夹的信息。

更新

如果您需要更新应用程序的系统部分,即noctis/kickstart包,只需运行

$ composer update noctis/kickstart

由于更新基于Kickstart的项目并不像听起来那么简单,我将尽最大努力尽可能少地更新noctis/kickstart-app包(这个包)。当我发布它的新版本并且需要执行特定操作来更新应用程序部分时,你将在本项目的docs/upgrading文件夹中找到针对特定版本的指南。

我还将保持两个包之间的版本号一致。例如,当我修改noctis/kickstart包,并且这些修改与noctis/kickstart-app 2.x不兼容时,我将将其发布为前者的3.x版本,同时发布后者的更新版3.x。这样,使用composer update不会破坏你的Kickstart应用程序。

常见问题解答(FAQ)

有关Kickstart的附加问题和解答可以在FAQ中找到。

食谱