Ответ
Да, в моих проектах мы строго придерживались стандартов PSR (PHP Standards Recommendations) и внутренних правил команды.
Основные применяемые стандарты:
- PSR-12 (Extended Coding Style Guide): Определял форматирование (отступы в 4 пробела, размещение фигурных скобок, переносы строк, пробелы вокруг операторов).
- PSR-1 (Basic Coding Standard): Задавал базовые правила, такие как использование только
<?phpи<?=тегов, именование классов и методов. - PSR-4 (Autoloading Standard): Регламентировал структуру пространств имен и автозагрузку классов, что было критически важно в наших проектах на Laravel и Symfony.
Пример кода, соответствующего этим правилам:
<?php
declare(strict_types=1);
namespace AppServicesPayment;
use AppContractsPaymentProcessorInterface;
use AppDTOPaymentDetails;
use AppExceptionsPaymentFailedException;
class StripePaymentService implements PaymentProcessorInterface
{
private float $commissionRate;
public function __construct(float $commissionRate = 0.02)
{
$this->commissionRate = $commissionRate;
}
public function process(PaymentDetails $details): string
{
$amountWithCommission = $details->amount * (1 + $this->commissionRate);
// ... логика интеграции со Stripe API
return $this->chargeCustomer($details->token, $amountWithCommission);
}
}
Дополнительно мы использовали:
- PHP_CodeSniffer с правилами
PSR12для автоматической проверки стиля в CI/CD. - PHPStan / Psalm для статического анализа типов.
- Единый стиль PHPDoc-комментариев для документирования методов.