lezhnev74/blank

一个空白项目

安装: 8

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型:项目

1.0.3 2020-03-12 14:00 UTC

This package is auto-updated.

Last update: 2024-08-27 15:05:26 UTC


README

本项目是一个无框架基础,用于新的PHP后端应用程序。它设计为3层:应用层、领域层和基础设施层。它可能包含一个不错的初始功能集,满足您可能的需求。

本项目旨在在包的选择上保持自由。不包括任何大型框架,只包含一些流行的开源包,每个包都可以替换或卸载。这是我的舒适默认设置,我对此感到满意。

Docker 和 ./develop 工具

本项目需要安装 Docker,并附带配置好的 docker-compose.yml 文件。您可以根据需要调整它,默认情况下,它包含 PHP 7.4 镜像。./develop 是一个代理工具,用于在容器内部传递命令(通过 docker-compose)。查看内部,它支持许多有用的命令

  • php
  • composer
  • test
  • debug
  • serve
  • migrate

安全网

此软件包附带一组质量保证工具,强制执行高编码实践

  • phpcs
  • phpcbf
  • phpstan
  • deptrac

本项目附带一个 git 钩,即 .githooks/pre-commit。在安装过程中自动配置(见 composer.json 中的 scripts 部分)。它将在新提交时检查您的代码,并在 .qa-report.txt 文件中输出错误。

文件夹

  • docker - 配置 PHP 镜像
  • docs - OpenAPI 参考,请参阅 Stoplight Studio
  • web - 服务器根目录
  • src - 所有代码都放在这里,按照层划分。
    • Domain - 核心逻辑
    • Application - 面向用户的逻辑,用例
    • Infrastructure - 低级别细节和实现
  • tests - 所有测试都放在这里
  • storage - 所有数据和资源都保存在这里(包括日志)

安装

  • 从此仓库创建新项目
    composer create-project --prefer-source lezhnev74/blank ./
    
  • 安装依赖项的新版本
    ./develop composer require \
    php-di/php-di \
    phlak/config vlucas/phpdotenv \
    monolog/monolog \
    nesbot/carbon \
    doctrine/dbal doctrine/migrations \
    slim/psr7 slim/slim \
    danielstjules/stringy voku/arrayy ramsey/uuid \
    webmozart/assert
    
    ./develop composer require --dev \
    mockery/mockery \
    phpstan/phpstan \
    phpunit/phpunit \
    squizlabs/php_codesniffer 
    

安装后

在所有大型部分完成后,可能需要进行手动配置

  • 使用 git init 初始化 git
    • 通过 git 钩配置质量检查(通过 git 钩):./develop composer run init-git-hook
    • 运行并确保 git 钩可执行:./.git/hooks/pre-commit
  • 检查是否存在 .env 文件
  • 将根命名空间从 Blank\ 全局替换为 MyProject\(不仅是在 php 文件中,而是在任何地方)。
  • 运行 ./develop php -v./develop test 以确认 PHP 容器可运行

数据库和迁移

本项目附带 doctrine/dbaldoctrine/migrations。因此,您可以在 src/Infrastructure/config.php 中调整数据库配置。迁移也在两个文件中配置:cli-config.phpmigrations.php