FQCN Stripper is a small and flexible PHP 8.3+ utility for extracting and formatting the base class name from a Fully-Qualified Class Name (FQCN).
It supports string transformations like lowercase
, UPPERCASE
, and Ucfirst
— with optional multibyte-safe handling (via mbstring
).
- Extracts base class name from a fully-qualified name
- Bitmask modifiers for string formatting:
LOWER
— lowercasedUC
— ucfirstUPPER
— fully uppercasedLOW_UC
— lower + ucfirstMULTIBYTE
— applies transformations usingmb_
functions
- Supports both strings and objects
- Caches internally for performance
- Simple API for batch processing
- PHP 8.3+
- Optional:
mbstring
extension (forMULTIBYTE
)
composer require lhcze/fqcn-stripper
use Lhcze\FqcnStripper\FqcnStripper;
FqcnStripper::strip('App\\Entity\\User'); // "User"
FqcnStripper::strip('App\\Entity\\User', FqcnStripper::LOWER); // "user"
FqcnStripper::strip('App\\Entity\\User', FqcnStripper::LOW_UC); // "User"
FqcnStripper::strip('App\\Entity\\User', FqcnStripper::UPPER); // "USER"
FqcnStripper::strip('App\\Entity\\Üser', FqcnStripper::LOW_UC | FqcnStripper::MULTIBYTE); // "Üser"
$object = new \App\Entity\User();
FqcnStripper::strip($object, FqcnStripper::LOWER); // "user"
FqcnStripper::strip('App\\WeirdObjects\\UserHandlerDtoEvent', FqcnStripper::TRIM_POSTFIX) // User
$list = [
'App\\Model\\CustomerModel',
'App\\Entity\\OrderEntity',
'App\\Controller\\Admin\\DashboardController',
];
FqcnStripper::stripThemAll($list, FqcnStripper::LOW_UC | FqcnStripper::TRIM_POSTFIX);
// ["Customer", "Order", "Dashboard"]
Command | Standards | Description |
---|---|---|
composer phpunit |
N/A | Run PHPUnit tests |
composer cs |
PSR12 | Check code style (dry-run) |
composer cs-fix |
PSR12 | Auto-fix coding standards |
composer phpstan |
Level 9 | Run static analysis (PHPStan) |
composer check |
N/A | Runs all checks at once |
Install dependencies and run QA tools:
composer install
composer check