Token导航 LogoToken导航TokenDH.com
前端设计external-servicegithub未标认证来源可访问许可证需确认审计通过

psr-overview-knowledgePSR 概述知识

Agent Skill

psr-overview-knowledge 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

442

周安装

19

GitHub Stars

66

下载量

155
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:psr-overview-knowledge(PSR 概述知识)
来源仓库:https://github.com/dykyi-roman/awesome-claude-code
仓库路径:skills/psr-overview-knowledge
安装命令:
npx skills add https://github.com/dykyi-roman/awesome-claude-code --skill psr-overview-knowledge
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dykyi-roman/awesome-claude-code --skill psr-overview-knowledge

简介

psr-overview-knowledge 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,支持项目协作管理。

  • 适用于围绕仓库状态、代码变更或协作事项进行信息整理与查询。
  • 通过 npx skills add 命令从 GitHub 仓库安装并使用。
  • 使用前需确认权限范围、维护状态及是否触发联网或命令执行。
  • 建议参考原始 README 了解具体功能和适用边界。

SKILL.md

PSR Overview Knowledge

What is PSR?

PSR (PHP Standards Recommendations) are specifications published by the PHP Framework Interoperability Group (PHP-FIG). They establish common standards for PHP code to ensure interoperability between frameworks and libraries.

Accepted PSRs Summary

PSRNameCategoryStatus
PSR-1Basic Coding StandardCoding StyleAccepted
PSR-3Logger InterfaceLoggingAccepted
PSR-4AutoloaderAutoloadingAccepted
PSR-6Caching InterfaceCachingAccepted
PSR-7HTTP Message InterfaceHTTPAccepted
PSR-11Container InterfaceDI ContainerAccepted
PSR-12Extended Coding StyleCoding StyleAccepted
PSR-13Hypermedia LinksHypermediaAccepted
PSR-14Event DispatcherEventsAccepted
PSR-15HTTP HandlersHTTPAccepted
PSR-16Simple CacheCachingAccepted
PSR-17HTTP FactoriesHTTPAccepted
PSR-18HTTP ClientHTTPAccepted
PSR-20ClockTimeAccepted

PSR Categories

Coding Style (PSR-1, PSR-12)

Standards for writing clean, consistent PHP code.

AspectPSR-1PSR-12
ScopeBasic rulesExtended formatting
File encodingUTF-8 without BOMInherits PSR-1
Class namesStudlyCapsInherits PSR-1
Method namescamelCaseInherits PSR-1
Indentation-4 spaces
Line length-120 chars soft limit
Keywords-Lowercase

Autoloading (PSR-4)

Standard for autoloading classes from file paths.

Namespace Prefix → Base Directory
App\             → src/

FQCN                          → File Path
App\Domain\User\Entity\User   → src/Domain/User/Entity/User.php

HTTP (PSR-7, PSR-15, PSR-17, PSR-18)

Standards for HTTP messages, handlers, factories, and clients.

PSRPurposeKey Interfaces
PSR-7HTTP MessagesRequestInterface, ResponseInterface, StreamInterface
PSR-15HTTP HandlersMiddlewareInterface, RequestHandlerInterface
PSR-17HTTP FactoriesRequestFactoryInterface, ResponseFactoryInterface
PSR-18HTTP ClientClientInterface
PSR-17 (Factory) → PSR-7 (Message) → PSR-15 (Handler) → PSR-7 (Response)
                                          ↓
                                   PSR-18 (Client)

Caching (PSR-6, PSR-16)

Standards for caching implementations.

AspectPSR-6PSR-16
ComplexityFull-featuredSimple
Key interfacesCacheItemPoolInterface, CacheItemInterfaceCacheInterface
Deferred savesYesNo
Use caseComplex caching needsSimple get/set

Logging (PSR-3)

Standard for logging libraries.

interface LoggerInterface {
    public function emergency(string|\Stringable $message, array $context = []): void;
    public function alert(string|\Stringable $message, array $context = []): void;
    public function critical(string|\Stringable $message, array $context = []): void;
    public function error(string|\Stringable $message, array $context = []): void;
    public function warning(string|\Stringable $message, array $context = []): void;
    public function notice(string|\Stringable $message, array $context = []): void;
    public function info(string|\Stringable $message, array $context = []): void;
    public function debug(string|\Stringable $message, array $context = []): void;
    public function log(mixed $level, string|\Stringable $message, array $context = []): void;
}

DI Container (PSR-11)

Standard for dependency injection containers.

interface ContainerInterface {
    public function get(string $id): mixed;
    public function has(string $id): bool;
}

Events (PSR-14)

Standard for event dispatching.

interface EventDispatcherInterface {
    public function dispatch(object $event): object;
}

interface ListenerProviderInterface {
    public function getListenersForEvent(object $event): iterable;
}

interface StoppableEventInterface {
    public function isPropagationStopped(): bool;
}

Hypermedia (PSR-13)

Standard for hypermedia links (HATEOAS).

interface LinkInterface {
    public function getHref(): string;
    public function isTemplated(): bool;
    public function getRels(): array;
    public function getAttributes(): array;
}

Time (PSR-20)

Standard for clock abstraction.

interface ClockInterface {
    public function now(): DateTimeImmutable;
}

When to Use Each PSR

Decision Matrix

NeedPSR
Code formattingPSR-1, PSR-12
Class autoloadingPSR-4
LoggingPSR-3
Simple caching (get/set)PSR-16
Complex caching (pools, tags)PSR-6
HTTP requests/responsesPSR-7
HTTP middlewarePSR-15
Creating HTTP objectsPSR-17
HTTP client for external APIsPSR-18
Dependency injectionPSR-11
Event systemPSR-14
REST API with linksPSR-13
Testing with timePSR-20

Common Combinations

Use CasePSRs
HTTP APIPSR-7 + PSR-15 + PSR-17
HTTP ClientPSR-7 + PSR-17 + PSR-18
Web ApplicationPSR-1 + PSR-4 + PSR-12 + PSR-3 + PSR-11
CQRS/Event-DrivenPSR-14 + PSR-3 + PSR-11
MicroserviceAll of the above

PHP Package Implementations

PSR-3: Logger

PackageDescription
monolog/monologDe facto standard logger
psr/logInterface only

PSR-4: Autoloader

PackageDescription
ComposerBuilt-in autoloader

PSR-6: Cache

PackageDescription
symfony/cacheFull-featured cache
cache/filesystem-adapterFile-based cache

PSR-7/PSR-17: HTTP

PackageDescription
guzzlehttp/psr7Guzzle implementation
nyholm/psr7Lightweight implementation
laminas/laminas-diactorosLaminas implementation

PSR-11: Container

PackageDescription
php-di/php-diAutowiring DI container
league/containerFlexible container
pimple/pimpleSimple container

PSR-14: Event Dispatcher

PackageDescription
symfony/event-dispatcherSymfony implementation
league/eventLeague implementation

PSR-15: HTTP Handlers

PackageDescription
middlewares/utilsMiddleware utilities
relay/relaySimple dispatcher

PSR-18: HTTP Client

PackageDescription
guzzlehttp/guzzleFull HTTP client
symfony/http-clientSymfony HTTP client

PSR-20: Clock

PackageDescription
psr/clockInterface only
symfony/clockSymfony implementation
lcobucci/clockSimple implementation

Composer Requirements

{
    "require": {
        "psr/log": "^3.0",
        "psr/cache": "^3.0",
        "psr/http-message": "^2.0",
        "psr/http-factory": "^1.0",
        "psr/http-client": "^1.0",
        "psr/container": "^2.0",
        "psr/event-dispatcher": "^1.0",
        "psr/link": "^2.0",
        "psr/clock": "^1.0",
        "psr/simple-cache": "^3.0"
    }
}

Integration with DDD

Layer Mapping

DDD LayerRelevant PSRsNote
DomainPSR-3, PSR-14, PSR-20PSR interfaces are pure contracts — acceptable in Domain
ApplicationPSR-3, PSR-11, PSR-14, PSR-20Service orchestration layer
InfrastructurePSR-6, PSR-16, PSR-18Implementation layer
PresentationPSR-7, PSR-15, PSR-17HTTP layer
Important: PSR packages (psr/log, psr/clock, psr/event-dispatcher) contain only interfaces — no implementation code. They are PHP community standards equivalent to a standard library. Using PSR interfaces in Domain layer is acceptable and common practice. What is NOT acceptable in Domain: implementation packages like monolog/monolog, symfony/cache, guzzlehttp/guzzle.

Example: CQRS Application

<?php

declare(strict_types=1);

namespace App\Application\User\Handler;

use App\Application\User\Command\CreateUserCommand;
use App\Domain\User\Entity\User;
use App\Domain\User\Repository\UserRepositoryInterface;
use Psr\EventDispatcher\EventDispatcherInterface;  // PSR-14
use Psr\Log\LoggerInterface;                       // PSR-3
use Psr\Clock\ClockInterface;                      // PSR-20

final readonly class CreateUserHandler
{
    public function __construct(
        private UserRepositoryInterface $repository,
        private EventDispatcherInterface $eventDispatcher,
        private LoggerInterface $logger,
        private ClockInterface $clock,
    ) {
    }

    public function __invoke(CreateUserCommand $command): void
    {
        $this->logger->info('Creating user', ['email' => $command->email]);

        $user = User::create(
            $command->email,
            $command->name,
            $this->clock->now(),
        );

        $this->repository->save($user);

        foreach ($user->pullEvents() as $event) {
            $this->eventDispatcher->dispatch($event);
        }
    }
}

Compliance Checklist

PSRRequired ForCheck
PSR-1All PHP projectsphpcs --standard=PSR1
PSR-12All PHP projectsphpcs --standard=PSR12
PSR-4All PHP projectscomposer dump-autoload --strict
PSR-3Projects with loggingImplement LoggerInterface
PSR-6/16Projects with cachingImplement CacheInterface
PSR-7HTTP APIsUse PSR-7 implementations
PSR-11Projects with DIImplement ContainerInterface
PSR-14Event-driven projectsImplement EventDispatcherInterface
PSR-15HTTP middlewareImplement MiddlewareInterface
PSR-17HTTP object creationUse factory interfaces
PSR-18External API callsImplement ClientInterface
PSR-20Time-sensitive codeImplement ClockInterface

See Also

  • references/accepted-psrs.md - Detailed PSR descriptions
  • references/when-to-use.md - Decision matrix for PSR selection
  • references/compatibility.md - Inter-PSR relationships
  • references/php-fig-process.md - How PSRs are created
  • assets/psr-selection-guide.md - Selection guide template

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.18%
按下载量换算55

Claude

31.65%
按下载量换算49

Cursor

16.51%
按下载量换算26

Gemini CLI

9.55%
按下载量换算15

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills