larastrict/conventions

LaraStrict conventions for your Laravel apps - PHPStan, Easy Coding Standard, RectorPHP and appropriate rules.

安装: 344

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 2

类型:package

v1.0.2 2024-07-05 10:28 UTC

This package is auto-updated.

Last update: 2024-09-05 11:01:07 UTC


README

.github/banner.webp

使用LaraStrict约定增强您的Laravel应用程序的健壮性和一致性。此包集成了PHPStan、Easy Coding Standard、RectorPHP和定制规则等基本工具,以简化您的开发过程。

此包扩展了 StrictPHP约定

主要功能

此包捆绑了一组强大的工具和配置,以支持您的开发工作流程

  • PHPStan配置和自定义规则:集成了PHPStan,并提供了针对我们项目的预定义配置和规则。
  • Easy Coding Standard配置:利用Easy Coding Standard来强制执行一致的编码风格和实践。
  • PHPUnit 10/11支持:确保与PHPUnit的兼容性,以便进行全面测试。
  • RectorPHP配置:提供RectorPHP的配置,以改善代码质量。
  • 扩展PHPStan包:包括额外的包以增强PHPStan的功能。有关更多详细信息,请参阅包含的composer.json文件。

先决条件

在安装之前,请确保您的环境满足以下要求

  • PHP版本8.1或更高(根据您的Laravel版本)。
  • Composer
  • Laravel 10+
  • 启用PHPStan扩展安装程序,该安装程序将由我们的包自动安装,以允许扩展发现。

仅维护此包的最新主要版本。

安装

要将LaraStrict Conventions集成到您的项目中,请在您的终端中运行以下命令

composer require larastrict/conventions --dev

这将把包作为开发依赖项安装。在安装过程中,您将收到提示确认安装插件

您是否信任 "phpstan/extension-installer" 执行代码并希望现在启用它?(yes/no) [y]

输入 y 以使用所有提供的扩展。

入门指南

安装后,您可以根据项目需求调整提供的配置。

设置Easy Coding Standard

要使用Easy Coding Standard,请在您的项目根目录中创建或更新一个ecs.php文件,并按照以下设置进行操作

<?php

declare(strict_types=1);

use Symplify\EasyCodingStandard\Config\ECSConfig;

return ECSConfig::configure()
    ->withRootFiles()
    ->withPaths([
        __DIR__ . '/src',
        __DIR__ . '/tests',
    ])
    // This is required to include the StrictPHP Conventions
    ->withSets([\LaraStrict\Conventions\ExtensionFiles::Ecs]);

查看extension-ecs.php以查看包含的内容

  • 不要在blade文件上运行ecs。

配置RectorPHP

要集成RectorPHP,请添加或更新一个位于项目根目录的rector.php文件,并使用以下配置

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;

return RectorConfig::configure()
    ->withRootFiles()
    ->withPaths([
        __DIR__ . '/src',
        __DIR__ . '/tests',
    ])
    // This is required to include the StrictPHP Conventions
    ->withSets([\LaraStrict\Conventions\ExtensionFiles::Rector]);

查看extension-rector.php以查看包含的内容

  • 防止rector更改路由中的可调用。
  • 不要在blade文件上运行rector。

集成PHPStan

请确保您使用PHPStan扩展安装程序安装所需的扩展。

PHPStan配置

您可能需要添加一个phpstan.neon并忽略此错误

parameters:
    ignoreErrors:
        - identifier: missingType.iterableValue

规则

此包包括以下规则

UsableInContainerRule

自定义功能尚未启用。目前已禁用

此包包括确保DI类/契约被适当使用的规则

  • 确保合约可注入:检查是否有实现已注册该合约。
  • 确保类可注入:检查已注册的类是否有可注入的依赖。

您可以根据需要自定义这些设置。示例配置

services:
    -
        class: LaraStrict\Conventions\PHPStan\UsableInContainerRule
        tags: [phpstan.rules.rule]
        arguments:
            enabled: true
            # Ensure that classes that extends these classes are injectable
            extends:
                - Illuminate\Console\Command
                - Illuminate\Database\Seeder
            # Do not check if classes that has these suffixes are injectable
            excludeSuffixes:
                - MySuffix
            # Check classes in these namespaces
            namespaces:
                - \DIClasses\
            # Do not check if classes file contains these folders
            excludeFolders:
                - my_folder

默认设置可以在 ./extension.neon 文件中找到

致谢

本项目的存在得益于多个其他有影响力的项目的慷慨支持

探索更多我们的开源计划

  • Larastrict - 通过一系列方便的工具和包增强 Laravel 框架。
  • StrictPHP - 通过精心挑选的包和约定,在 PHP 项目中实现严格性,促进健壮生产级应用程序的开发。
  • WrkFlow - 通过一套旨在提高效率的工具简化开发工作流程。

许可证

开源软件,根据 MIT 许可证 许可。您可以自由使用和修改以满足您的需求。