当前位置: 首页>>代码示例>>PHP>>正文


PHP Stdlib\StringUtils类代码示例

本文整理汇总了PHP中Magento\Framework\Stdlib\StringUtils的典型用法代码示例。如果您正苦于以下问题:PHP StringUtils类的具体用法?PHP StringUtils怎么用?PHP StringUtils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了StringUtils类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: validateValue

 /**
  * {@inheritdoc}
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function validateValue($value)
 {
     $errors = [];
     $attribute = $this->getAttribute();
     $label = __($attribute->getStoreLabel());
     if ($value === false) {
         // try to load original value and validate it
         $value = $this->_value;
     }
     if ($attribute->isRequired() && empty($value) && $value !== '0') {
         $errors[] = __('"%1" is a required value.', $label);
     }
     if (!$errors && !$attribute->isRequired() && empty($value)) {
         return true;
     }
     // validate length
     $length = $this->_string->strlen(trim($value));
     $validateRules = $attribute->getValidationRules();
     $minTextLength = ArrayObjectSearch::getArrayElementByName($validateRules, 'min_text_length');
     if ($minTextLength !== null && $length < $minTextLength) {
         $errors[] = __('"%1" length must be equal or greater than %2 characters.', $label, $minTextLength);
     }
     $maxTextLength = ArrayObjectSearch::getArrayElementByName($validateRules, 'max_text_length');
     if ($maxTextLength !== null && $length > $maxTextLength) {
         $errors[] = __('"%1" length must be equal or less than %2 characters.', $label, $maxTextLength);
     }
     $result = $this->_validateInputRule($value);
     if ($result !== true) {
         $errors = array_merge($errors, $result);
     }
     if (count($errors) == 0) {
         return true;
     }
     return $errors;
 }
开发者ID:tingyeeh,项目名称:magento2,代码行数:40,代码来源:Text.php

示例2: validateValue

 /**
  * Validate data
  * Return true or array of errors
  *
  * @param array|string $value
  * @return bool|array
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function validateValue($value)
 {
     $errors = [];
     $attribute = $this->getAttribute();
     $label = __($attribute->getStoreLabel());
     if ($value === false) {
         // try to load original value and validate it
         $value = $this->getEntity()->getDataUsingMethod($attribute->getAttributeCode());
     }
     if ($attribute->getIsRequired() && empty($value) && $value !== '0') {
         $errors[] = __('"%1" is a required value.', $label);
     }
     if (!$errors && !$attribute->getIsRequired() && empty($value)) {
         return true;
     }
     // validate length
     $length = $this->_string->strlen(trim($value));
     $validateRules = $attribute->getValidateRules();
     if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) {
         $v = $validateRules['min_text_length'];
         $errors[] = __('"%1" length must be equal or greater than %2 characters.', $label, $v);
     }
     if (!empty($validateRules['max_text_length']) && $length > $validateRules['max_text_length']) {
         $v = $validateRules['max_text_length'];
         $errors[] = __('"%1" length must be equal or less than %2 characters.', $label, $v);
     }
     $result = $this->_validateInputRule($value);
     if ($result !== true) {
         $errors = array_merge($errors, $result);
     }
     if (count($errors) == 0) {
         return true;
     }
     return $errors;
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:44,代码来源:Text.php

示例3: draw

 /**
  * Draw item line
  *
  * @return void
  */
 public function draw()
 {
     $item = $this->getItem();
     $pdf = $this->getPdf();
     $page = $this->getPage();
     $lines = [];
     // draw Product name
     $lines[0] = [['text' => $this->string->split($item->getName(), 60, true, true), 'feed' => 100]];
     // draw QTY
     $lines[0][] = ['text' => $item->getQty() * 1, 'feed' => 35];
     // draw SKU
     $lines[0][] = ['text' => $this->string->split($this->getSku($item), 25), 'feed' => 565, 'align' => 'right'];
     // Custom options
     $options = $this->getItemOptions();
     if ($options) {
         foreach ($options as $option) {
             // draw options label
             $lines[][] = ['text' => $this->string->split($this->filterManager->stripTags($option['label']), 70, true, true), 'font' => 'italic', 'feed' => 110];
             // draw options value
             if ($option['value']) {
                 $printValue = isset($option['print_value']) ? $option['print_value'] : $this->filterManager->stripTags($option['value']);
                 $values = explode(', ', $printValue);
                 foreach ($values as $value) {
                     $lines[][] = ['text' => $this->string->split($value, 50, true, true), 'feed' => 115];
                 }
             }
         }
     }
     $lineBlock = ['lines' => $lines, 'height' => 20];
     $page = $pdf->drawLineBlocks($page, [$lineBlock], ['table_header' => true]);
     $this->setPage($page);
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:37,代码来源:DefaultShipment.php

示例4: draw

 /**
  * Draw item line
  *
  * @return void
  */
 public function draw()
 {
     $order = $this->getOrder();
     $item = $this->getItem();
     $pdf = $this->getPdf();
     $page = $this->getPage();
     $lines = [];
     // draw Product name
     $lines[0] = [['text' => $this->string->split($item->getName(), 35, true, true), 'feed' => 35]];
     // draw SKU
     $lines[0][] = ['text' => $this->string->split($this->getSku($item), 17), 'feed' => 290, 'align' => 'right'];
     // draw QTY
     $lines[0][] = ['text' => $item->getQty() * 1, 'feed' => 435, 'align' => 'right'];
     // draw item Prices
     $i = 0;
     $prices = $this->getItemPricesForDisplay();
     $feedPrice = 395;
     $feedSubtotal = $feedPrice + 170;
     foreach ($prices as $priceData) {
         if (isset($priceData['label'])) {
             // draw Price label
             $lines[$i][] = ['text' => $priceData['label'], 'feed' => $feedPrice, 'align' => 'right'];
             // draw Subtotal label
             $lines[$i][] = ['text' => $priceData['label'], 'feed' => $feedSubtotal, 'align' => 'right'];
             $i++;
         }
         // draw Price
         $lines[$i][] = ['text' => $priceData['price'], 'feed' => $feedPrice, 'font' => 'bold', 'align' => 'right'];
         // draw Subtotal
         $lines[$i][] = ['text' => $priceData['subtotal'], 'feed' => $feedSubtotal, 'font' => 'bold', 'align' => 'right'];
         $i++;
     }
     // draw Tax
     $lines[0][] = ['text' => $order->formatPriceTxt($item->getTaxAmount()), 'feed' => 495, 'font' => 'bold', 'align' => 'right'];
     // custom options
     $options = $this->getItemOptions();
     if ($options) {
         foreach ($options as $option) {
             // draw options label
             $lines[][] = ['text' => $this->string->split($this->filterManager->stripTags($option['label']), 40, true, true), 'font' => 'italic', 'feed' => 35];
             if ($option['value']) {
                 if (isset($option['print_value'])) {
                     $printValue = $option['print_value'];
                 } else {
                     $printValue = $this->filterManager->stripTags($option['value']);
                 }
                 $values = explode(', ', $printValue);
                 foreach ($values as $value) {
                     $lines[][] = ['text' => $this->string->split($value, 30, true, true), 'feed' => 40];
                 }
             }
         }
     }
     $lineBlock = ['lines' => $lines, 'height' => 20];
     $page = $pdf->drawLineBlocks($page, [$lineBlock], ['table_header' => true]);
     $this->setPage($page);
 }
开发者ID:whoople,项目名称:magento2-testing,代码行数:62,代码来源:DefaultInvoice.php

示例5: render

 /**
  * Renders grid column
  *
  * @param \Magento\Framework\DataObject $row
  * @return string
  */
 public function render(\Magento\Framework\DataObject $row)
 {
     $line = parent::_getValue($row);
     $wrappedLine = '';
     $lineLength = $this->getColumn()->getData('lineLength') ? $this->getColumn()->getData('lineLength') : $this->_defaultMaxLineLength;
     for ($i = 0, $n = floor($this->string->strlen($line) / $lineLength); $i <= $n; $i++) {
         $wrappedLine .= $this->string->substr($line, $lineLength * $i, $lineLength) . "<br />";
     }
     return $wrappedLine;
 }
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:16,代码来源:Wrapline.php

示例6: render

 /**
  * Renders a column
  *
  * @param   \Magento\Framework\DataObject $row
  * @return  string
  */
 public function render(\Magento\Framework\DataObject $row)
 {
     $value = $row->getData($this->getColumn()->getIndex());
     if ($this->stringHelper->strlen($value) > 30) {
         $value = '<span title="' . $this->escapeHtml($value) . '">' . $this->escapeHtml($this->filterManager->truncate($value, ['length' => 30])) . '</span>';
     } else {
         $value = $this->escapeHtml($value);
     }
     return $value;
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:16,代码来源:Searchquery.php

示例7: getType

 /**
  * Get attribute type based on its backend model.
  * 
  * @param \Magento\Eav\Api\Data\AttributeInterface $attribute
  * @param string $serviceClass
  * @param $serviceBackendModelDataInterfaceMap array
  * @return string|null
  */
 public function getType($attribute, $serviceClass, $serviceBackendModelDataInterfaceMap)
 {
     $backendModel = $attribute->getBackendModel();
     //If empty backend model, check if it can be derived
     if (empty($backendModel)) {
         $backendModelClass = sprintf('Magento\\Eav\\Model\\Attribute\\Data\\%s', $this->stringUtility->upperCaseWords($attribute->getFrontendInput()));
         $backendModel = class_exists($backendModelClass) ? $backendModelClass : null;
     }
     $dataInterface = isset($serviceBackendModelDataInterfaceMap[$serviceClass][$backendModel]) ? $serviceBackendModelDataInterfaceMap[$serviceClass][$backendModel] : null;
     return $dataInterface;
 }
开发者ID:Doability,项目名称:magento2dev,代码行数:19,代码来源:ComplexType.php

示例8: validate

 /**
  * Validate SKU
  *
  * @param Product $object
  * @return bool
  * @throws \Magento\Framework\Exception\LocalizedException
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function validate($object)
 {
     $attrCode = $this->getAttribute()->getAttributeCode();
     $value = $object->getData($attrCode);
     if ($this->getAttribute()->getIsRequired() && strlen($value) === 0) {
         throw new \Magento\Framework\Exception\LocalizedException(__('The value of attribute "%1" must be set', $attrCode));
     }
     if ($this->string->strlen($object->getSku()) > self::SKU_MAX_LENGTH) {
         throw new \Magento\Framework\Exception\LocalizedException(__('SKU length should be %1 characters maximum.', self::SKU_MAX_LENGTH));
     }
     return true;
 }
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:20,代码来源:Sku.php

示例9: testGetEscapedQueryText

 /**
  * @dataProvider queryTextDataProvider
  */
 public function testGetEscapedQueryText($queryText, $maxQueryLength, $expected)
 {
     $this->requestMock->expects($this->once())->method('getParam')->willReturn($queryText);
     $this->stringMock->expects($this->any())->method('cleanString')->willReturnArgument(0);
     $this->scopeConfigMock->expects($this->any())->method('getValue')->willReturn($maxQueryLength);
     $this->stringMock->expects($this->any())->method('strlen')->will($this->returnCallback(function ($queryText) {
         return strlen($queryText);
     }));
     $this->stringMock->expects($this->any())->method('substr')->with($queryText, 0, $maxQueryLength)->willReturn($expected);
     $this->escaperMock->expects($this->any())->method('escapeHtml')->willReturnArgument(0);
     $this->assertEquals($expected, $this->model->getEscapedQueryText());
 }
开发者ID:Zash22,项目名称:magento,代码行数:15,代码来源:DataTest.php

示例10: textValidation

 /**
  * @param mixed $attrCode
  * @param string $type
  * @return bool
  */
 protected function textValidation($attrCode, $type)
 {
     $val = $this->string->cleanString($this->_rowData[$attrCode]);
     if ($type == 'text') {
         $valid = $this->string->strlen($val) < Product::DB_MAX_TEXT_LENGTH;
     } else {
         $valid = $this->string->strlen($val) < Product::DB_MAX_VARCHAR_LENGTH;
     }
     if (!$valid) {
         $this->_addMessages([RowValidatorInterface::ERROR_EXCEEDED_MAX_LENGTH]);
     }
     return $valid;
 }
开发者ID:whoople,项目名称:magento2-testing,代码行数:18,代码来源:Validator.php

示例11: beforeSave

 /**
  * Special processing before attribute save:
  * a) check some rules for password
  * b) transform temporary attribute 'password' into real attribute 'password_hash'
  *
  * @param \Magento\Framework\DataObject $object
  * @return void
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function beforeSave($object)
 {
     $password = $object->getPassword();
     $length = $this->string->strlen($password);
     if ($length > 0) {
         if ($length < self::MIN_PASSWORD_LENGTH) {
             throw new LocalizedException(__('Please enter a password with at least %1 characters.', self::MIN_PASSWORD_LENGTH));
         }
         if (trim($password) != $password) {
             throw new LocalizedException(__('The password can not begin or end with a space.'));
         }
         $object->setPasswordHash($object->hashPassword($password));
     }
 }
开发者ID:IlyaGluschenko,项目名称:test001,代码行数:23,代码来源:Password.php

示例12: load

 /**
  * Load search results
  *
  * @return $this
  */
 public function load()
 {
     $result = [];
     if (!$this->hasStart() || !$this->hasLimit() || !$this->hasQuery()) {
         $this->setResults($result);
         return $this;
     }
     $collection = $this->queryFactory->get()->getSearchCollection()->addAttributeToSelect('name')->addAttributeToSelect('description')->addBackendSearchFilter($this->getQuery())->setCurPage($this->getStart())->setPageSize($this->getLimit())->load();
     foreach ($collection as $product) {
         $description = strip_tags($product->getDescription());
         $result[] = ['id' => 'product/1/' . $product->getId(), 'type' => __('Product'), 'name' => $product->getName(), 'description' => $this->string->substr($description, 0, 30), 'url' => $this->_adminhtmlData->getUrl('catalog/product/edit', ['id' => $product->getId()])];
     }
     $this->setResults($result);
     return $this;
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:20,代码来源:Catalog.php

示例13: testGetTooLongQuery

 public function testGetTooLongQuery()
 {
     $queryId = 123;
     $this->mapScopeConfig([self::XML_PATH_MAX_QUERY_LENGTH => 12]);
     $rawQueryText = 'This is very long search query text';
     $preparedQueryText = 'This is very';
     $this->stringMock->expects($this->once())->method('substr')->with($this->equalTo($rawQueryText))->will($this->returnValue($preparedQueryText));
     $this->requestMock->expects($this->once())->method('getParam')->with($this->equalTo(self::QUERY_VAR_NAME))->will($this->returnValue($rawQueryText));
     $this->objectManagerMock->expects($this->once())->method('create')->with($this->equalTo('Magento\\Search\\Model\\Query'))->will($this->returnValue($this->queryMock));
     $this->queryMock->expects($this->once())->method('loadByQuery')->with($this->equalTo($preparedQueryText))->will($this->returnSelf());
     $this->queryMock->expects($this->once())->method('getId')->will($this->returnValue($queryId));
     $this->queryMock->expects($this->once())->method('setIsQueryTextExceeded')->with($this->equalTo(true))->will($this->returnSelf());
     $query = $this->queryFactory->get();
     $this->assertSame($this->queryMock, $query);
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:15,代码来源:QueryFactoryTest.php

示例14: create

 /**
  * Create Form Element
  *
  * @param \Magento\Customer\Api\Data\AttributeMetadataInterface $attribute
  * @param string|int|bool $value
  * @param string $entityTypeCode
  * @param bool $isAjax
  * @return \Magento\Customer\Model\Metadata\Form\AbstractData
  */
 public function create(\Magento\Customer\Api\Data\AttributeMetadataInterface $attribute, $value, $entityTypeCode, $isAjax = false)
 {
     $dataModelClass = $attribute->getDataModel();
     $params = ['entityTypeCode' => $entityTypeCode, 'value' => is_null($value) ? false : $value, 'isAjax' => $isAjax, 'attribute' => $attribute];
     /** TODO fix when Validation is implemented MAGETWO-17341 */
     if ($dataModelClass == 'Magento\\Customer\\Model\\Attribute\\Data\\Postcode') {
         $dataModelClass = 'Magento\\Customer\\Model\\Metadata\\Form\\Postcode';
     }
     if (!empty($dataModelClass)) {
         $dataModel = $this->_objectManager->create($dataModelClass, $params);
     } else {
         $dataModelClass = sprintf('Magento\\Customer\\Model\\Metadata\\Form\\%s', $this->_string->upperCaseWords($attribute->getFrontendInput()));
         $dataModel = $this->_objectManager->create($dataModelClass, $params);
     }
     return $dataModel;
 }
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:25,代码来源:ElementFactory.php

示例15: saveStoreLabels

 /**
  * Save rule labels for different store views
  *
  * @param int $ruleId
  * @param array $labels
  * @throws \Exception
  * @return $this
  */
 public function saveStoreLabels($ruleId, $labels)
 {
     $deleteByStoreIds = [];
     $table = $this->getTable('salesrule_label');
     $connection = $this->getConnection();
     $data = [];
     foreach ($labels as $storeId => $label) {
         if ($this->string->strlen($label)) {
             $data[] = ['rule_id' => $ruleId, 'store_id' => $storeId, 'label' => $label];
         } else {
             $deleteByStoreIds[] = $storeId;
         }
     }
     $connection->beginTransaction();
     try {
         if (!empty($data)) {
             $connection->insertOnDuplicate($table, $data, ['label']);
         }
         if (!empty($deleteByStoreIds)) {
             $connection->delete($table, ['rule_id=?' => $ruleId, 'store_id IN (?)' => $deleteByStoreIds]);
         }
     } catch (\Exception $e) {
         $connection->rollback();
         throw $e;
     }
     $connection->commit();
     return $this;
 }
开发者ID:rafaelstz,项目名称:magento2,代码行数:36,代码来源:Rule.php


注:本文中的Magento\Framework\Stdlib\StringUtils类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。