Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/main/lib/cli/helper/ |
Upload File : |
<?php namespace Bitrix\Main\Cli\Helper; final class PathGenerator { public function __construct( private bool $isCamelCase, private string $rootFolder, ) {} public function generatePathToClass(string $namespace, string $className): string { return $this->rootFolder . '/' . $this->generatePathByNamespace($namespace) . '/' . $this->generateFileNameByClass($className) ; } public function generatePathByNamespace(string $namespace): string { $parts = explode('\\', trim($namespace, '\\')); $moduleParts = array_slice($parts, 0, 2); $tailParts = array_slice($parts, 2); $moduleParts = array_map( static fn($part) => strtolower($part), $moduleParts ); if (!$this->isCamelCase) { $tailParts = array_map( static fn($part) => strtolower($part), $tailParts ); } if ($moduleParts[0] === 'bitrix') { $modulesFolder = 'bitrix/modules/'; unset($moduleParts[0]); } else { $modulesFolder = 'local/modules/'; } return $modulesFolder . join('.', $moduleParts) . '/lib/' . join(DIRECTORY_SEPARATOR, $tailParts) ; } public function generateFileNameByClass(string $className, string $ext = '.php'): string { if ($this->isCamelCase) { return $className . $ext; } return strtolower($className) . $ext; } }