mcpField
M
magento-php-specialist

magento-php-specialist

github.com/maxnorm開発31244 回インストール40 週間前に更新
リポジトリ

magento-php-specialist について

Magento 2 の PHP 開発向けスキルです。モダンな PHP 機能、厳格な型指定、PSR-12 などの規約を重視し、依存性注入、デザインパターン、エラー処理、ビジネスロジックのテストを扱います。

主な機能

  1. 01PSR-12 と Magento コーディング規約の遵守
  2. 02厳格な型指定とモダン PHP 機能の活用
  3. 03依存性注入と SOLID 原則の適用
  4. 04Magento サービスコントラクトとパターンの活用
  5. 05例外処理、ログ、単体テストの重視

活用シーン

  1. 01Magento 2 のビジネスロジック作成
  2. 02型安全な PHP クラスの実装
  3. 03Magento モジュール機能の拡張
  4. 04コード品質と保守性の向上

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/maxnorm/magento2-agent-skills --skill magento-php-specialist

インストール後、Claude Code で/magento-php-specialistを入力して読み込まれたか確認します。

詳細

Magento 2 PHP スペシャリスト

高度な PHP テクニックとモダンな実践手法を活用し、エンタープライズ開発標準に準拠した高性能で保守性の高い Magento 2 アプリケーションを作成することを専門とするエキスパートです。

使用する場面

  • Magento 2 の PHP コードを書くとき
  • ビジネスロジックを実装するとき
  • コード品質と標準を確保するとき
  • モダンな PHP 機能を扱うとき
  • デザインパターンを実装するとき

PHP 標準(厳格な適用)

PSR-12 準拠
  • PSR-12: PSR-12 コーディング標準を厳格に遵守する
  • Magento2 Coding Standard: vendor/magento/magento-coding-standard/Magento2 の標準に従う
  • Strict Types: declare(strict_types=1); が必須
  • EditorConfig: プロジェクトの .editorconfig でインデント(4 スペース)、改行コード(LF)、文字エンコーディング(UTF-8)を確認する
コード構造の要件
  • 開き波括弧: クラスとメソッドの開き波括弧は独自の行に配置する必要があります(PSR-12)
  • コンストラクタプロパティプロモーション: 適切な場合は readonly 修飾子とともに使用する
  • 型ヒント: すべてのパラメータと戻り値の型に型ヒントを付ける必要があります
  • 厳密な比較: 常に === と !== を使用する(== や != は決して使用しない)
  • コンストラクタの PHPDoc: 各パラメータに @param アノテーションを含める必要があります
モダンな PHP 機能
  • コンストラクタプロパティプロモーション: コンストラクタプロパティプロモーションを使用する
  • 読み取り専用プロパティ: 適切な場合は readonly 修飾子を使用する
  • 共用体型: 柔軟な型ヒントに共用体型を使用する
  • match 式: 適切な場合は switch の代わりに match 式を使用する
  • 名前付き引数: 明確さのために名前付き引数を使用する
コード例
<?php

/**
 * Copyright © 2025 CompanyName. All rights reserved.
 */

declare(strict_types=1);

namespace CompanyName\ModuleName\Model;

use CompanyName\ModuleName\Api\ConfigInterface;
use CompanyName\ModuleName\Api\RepositoryInterface;

class Service
{
    /**
     * @param RepositoryInterface $repository
     * @param ConfigInterface $config
     */
    public function __construct(
        private readonly RepositoryInterface $repository,
        private readonly ConfigInterface $config
    ) {
    }

    /**
     * @param int $id
     * @return EntityInterface|null
     */
    public function getById(int $id): ?EntityInterface
    {
        if ($id <= 0) {
            return null;
        }

        return $this->repository->getById($id);
    }
}

ベストプラクティス

オブジェクト指向プログラミング
  • 継承よりコンポジション: コンポジションパターンを優先する
  • 依存性注入: コンストラクタインジェクションのみ - サービスロケータは避ける
  • 単一責任: クラスやメソッドごとに 1 つの目的
  • インターフェース分離: 小さく焦点を絞ったインターフェースを使用する
  • SOLID 原則: SOLID 原則に従う
コード品質
  • 型安全性: 100% の型カバレッジ - パラメータ、戻り値の型、プロパティ
  • エラー処理: 包括的な例外処理
  • ログ: ログには \Psr\Log\LoggerInterface を使用する
  • ドキュメント: @param、@return、@throws を含む最小限の PHPDoc
  • テスト: ビジネスロジックのユニットテストを書く
Magento 固有のパターン
  • サービスコントラクト: API にはサービスコントラクトを使用する
  • リポジトリパターン: データアクセスにリポジトリパターンを実装する
  • ファクトリパターン: オブジェクトの生成にファクトリを使用する
  • プラグインパターン: 機能を拡張するためにプラグインを使用する
  • オブザーバーパターン: イベント駆動アーキテクチャにオブザーバーを使用する

参考資料

Magento のベストプラクティスに従った、クリーンで保守性の高い PHP コードの記述に注力してください。

コメント