alister / todotxt-parser
TodoTxt格式的解析器
Requires
- php: ^8.1
- symfony/string: ^6.2
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.0
- ergebnis/composer-normalize: ^2.5
- hamcrest/hamcrest-php: ^2
- mockery/mockery: ^1.3
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-mockery: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^9.5
- psy/psysh: ^0.11.16
- rector/rector: ^0.16
- slevomat/coding-standard: ^8.11
- squizlabs/php_codesniffer: ^3.5
- symfony/console: ^5.4 || ^6.2
- symfony/framework-bundle: ^5.1
- symplify/easy-ci: 11.2.0.72
- vimeo/psalm: ^5.9
README
TodoTxt格式的解析器
安装
使用 Composer 将此包作为依赖项安装。
composer require alister/todotxt-parser
贡献
欢迎贡献!在为此项目做出贡献之前,请熟悉 CONTRIBUTING.md。
要开发此项目,您需要 PHP 7.4 或更高版本,Composer,Node.js,以及 Yarn。
在本地克隆此存储库后,执行以下命令
cd /path/to/repository
composer install
yarn install
现在,您已经准备好开发了!
工具
此项目使用 Husky 和 lint-staged 在提交之前验证所有待处理的更改。
Composer命令
要查看项目中td
命名空间所有可用的Composer命令,请输入
composer list td
Composer命令自动完成
如果您想使用Composer命令自动完成,可以使用 bamarni/symfony-console-autocomplete。使用Composer全局安装它
composer global require bamarni/symfony-console-autocomplete
然后,在您的shell配置文件中(通常是~/.bash_profile
或~/.zshrc
,但可能因设置而异)确保您的全局Composer bin
目录在您的PATH
中,并评估symfony-autocomplete
命令。这看起来像这样
export PATH="$(composer config home)/vendor/bin:$PATH" eval "$(symfony-autocomplete)"
现在,您可以使用tab
键自动完成Composer命令
composer td:[TAB][TAB]
编码标准
此项目遵循PSR-12
编码标准的超集,由PHP_CodeSniffer
强制执行。项目的PHP_CodeSniffer配置可以在phpcs.xml.dist
中找到。
lint-staged将在提交之前运行PHP_CodeSniffer。它将尝试修复任何错误,如果有任何无法修复的问题,它将拒绝提交。许多问题可以在预提交时自动修复。
您可以使用以下命令使用PHP_CodeSniffer检查整个代码库
# Lint composer td:lint # Lint and autofix composer td:lint:fix
静态分析
此项目使用PHPStan和Psalm的组合来提供PHP代码的静态分析。这些配置分别位于phpstan.neon.dist
和psalm.xml
中。
lint-staged将在提交之前运行PHPStan和Psalm。预提交钩子不会尝试修复任何静态分析错误。相反,提交将失败,您必须手动修复错误。
您可以使用以下命令手动在整个代码库上运行静态分析
# Static analysis
composer td:analyze
项目结构
此项目使用pds/skeleton作为其基本文件夹结构和布局。
版权和许可
alister/todotxt-parser库版权所有© Alister Bulman,并按MIT许可证(MIT)的使用条款许可。有关更多信息,请参阅LICENSE。