Exemple #1
0
/**
 * @param string $text
 * @return string
 */
function df_camelize($text)
{
    return implode(df_ucfirst(df_explode_class(df_trim($text))));
}
Exemple #2
0
 /**
  * 2016-10-06
  * When browsing the default soap url that should return xml soap services,
  * instead there is an exception with the following:
  * «The service interface name "Df\Payment\PlaceOrder" is invalid»
  * https://code.dmitry-fedyuk.com/m2e/stripe/issues/7
  *
  * Magento 2 накладывает ограничения на имена классов-вебсервисов:
  * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Webapi/Model/ServiceMetadata.php#L188-L230
  * Однако, как я понял, моего веб-сервиса @see \Df\Payment\PlaceOrder эти ограничения касаются
  * только в сценарии генерации документа WSDL /soap/default?wsdl_list=1
  * Мой веб-сервис предназначен исключительно для моих платёжных модулей, и,
  * будь моя воля, я бы вообще не включал его в документ WSDL.
  * Однако, как я понял, избежать включения веб-сервиса в документ WSDL не так-то просто.
  * Но и менять моё короткое имя Df\Payment\PlaceOrder на имя типа Df\Payment\API\PlaceOrderInterface
  * мне не хочется: это имя используется каждым моим платёжным модулем,
  * и мне удобнее иметь для себя свои имена.
  * Поэтому я и написал этот плагин: чтобы возвращать ядру имя своего сервиса
  * (и других моих сервисов, если они потом будут), обходя ограничения ядра на имена классов сервисов.
  *
  * @see \Magento\Webapi\Model\ServiceMetadata::getServiceName()
  * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Webapi/Model/ServiceMetadata.php#L188-L230
  *
  * @param Sb $sb
  * @param \Closure $proceed
  * @param string $interfaceName
  * @param string $version
  * @param bool $preserveVersion Should version be preserved during interface name conversion into service name
  * @return string
  */
 public function aroundGetServiceName(Sb $sb, \Closure $proceed, $interfaceName, $version, $preserveVersion = true)
 {
     return df_starts_with($interfaceName, 'Df\\') ? lcfirst(implode(df_explode_class($interfaceName))) . (!$preserveVersion ? '' : $version) : $proceed($interfaceName, $version, $preserveVersion);
 }
Exemple #3
0
/**
 * 2016-08-28
 * «Dfe\AllPay\Response» => «AllPay»
 * 2016-10-20
 * Нельзя делать параметр $c опциональным, потому что иначе получим сбой:
 * «get_class() called without object from outside a class»
 * https://3v4l.org/k6Hd5
 * @param string|object $c
 * @return string
 */
function df_module_name_short($c)
{
    return dfcf(function ($c) {
        return df_explode_class($c)[1];
    }, [df_cts($c)]);
}