Kirby QL 项目教程
1. 项目目录结构及介绍
Kirby QL 项目的目录结构如下:
kql/
├── extensions/
│ └── src/
│ └── Kql/
├── tests/
├── .editorconfig
├── .gitattributes
├── .gitignore
├── composer.json
├── composer.lock
├── index.php
├── LICENSE.md
├── README.md
├── php-cs-fixer.dist.php
├── phpmd.xml.dist
├── phpunit.xml.dist
└── psalm.xml.dist
目录结构介绍
- extensions/: 包含项目的扩展代码,其中
src/Kql/
是核心代码的存放位置。 - tests/: 包含项目的测试代码。
- .editorconfig: 配置文件,用于统一代码风格。
- .gitattributes: Git 属性配置文件。
- .gitignore: Git 忽略文件配置。
- composer.json: Composer 依赖管理文件。
- composer.lock: Composer 锁定文件,记录当前依赖的精确版本。
- index.php: 项目的入口文件。
- LICENSE.md: 项目的许可证文件。
- README.md: 项目的说明文档。
- php-cs-fixer.dist.php: PHP-CS-Fixer 配置文件,用于代码格式化。
- phpmd.xml.dist: PHP Mess Detector 配置文件,用于代码质量检测。
- phpunit.xml.dist: PHPUnit 配置文件,用于单元测试。
- psalm.xml.dist: Psalm 配置文件,用于静态代码分析。
2. 项目启动文件介绍
项目的启动文件是 index.php
。该文件是整个项目的入口,负责初始化项目并处理请求。
index.php
文件内容概述
<?php
// 初始化项目
require 'vendor/autoload.php';
// 处理请求
// ...
启动文件功能
- 初始化项目: 通过
require 'vendor/autoload.php';
加载 Composer 自动加载器,确保所有依赖库和项目代码能够被正确加载。 - 处理请求: 处理来自客户端的请求,并返回相应的响应。
3. 项目的配置文件介绍
项目中有多个配置文件,用于不同的功能配置。以下是主要的配置文件及其功能介绍:
composer.json
{
"name": "getkirby/kql",
"description": "Kirby's Query Language API combines the flexibility of Kirby's data structures, the power of GraphQL and the simplicity of REST",
"require": {
"php": ">=7.4",
"ext-json": "*",
"ext-mbstring": "*"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.4"
},
"autoload": {
"psr-4": {
"Kirby\\Kql\\": "src/Kql/"
}
}
}
配置文件功能
- 依赖管理: 定义项目所需的 PHP 版本和扩展,以及开发依赖库。
- 自动加载: 配置 PSR-4 自动加载规则,确保项目代码能够被正确加载。
php-cs-fixer.dist.php
<?php
return PhpCsFixer\Config::create()
->setRules([
'@PSR2' => true,
'array_syntax' => ['syntax' => 'short'],
'concat_space' => ['spacing' => 'one'],
'no_unused_imports' => true,
])
->setFinder(
PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('vendor')
);
配置文件功能
- 代码风格: 配置 PHP-CS-Fixer 规则,确保代码风格符合 PSR-2 标准。
- 忽略目录: 排除
vendor
目录,不对其进行代码格式化。
phpunit.xml.dist
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="KQL Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src</directory>
</whitelist>
</filter>
</phpunit>
配置文件功能
- 测试套件: 定义测试套件,指定测试代码所在的目录。
- 白名单: 配置白名单,确保测试覆盖率分析包含所有源代码文件。
psalm.xml.dist
<psalm>
<projectFiles>
<directory name="src" />
<directory name="tests" />
</projectFiles>
<issueHandlers>
<MissingReturnType errorLevel="suppress" />
</issueHandlers>
</psalm>
配置文件功能
- 项目文件: 指定 Psalm 分析的源代码和测试代码目录。
- 问题处理: 配置问题处理规则,例如忽略某些类型的错误。
通过以上配置文件,项目能够实现代码风格统一、测试覆盖率分析和静态代码分析等功能,确保代码质量和项目的可维护性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考