Skip to content
This repository has been archived by the owner on Jan 8, 2020. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'feature/3110' into develop
Close #3110
  • Loading branch information
weierophinney committed Jan 7, 2013
2 parents 76be52a + 0d1db8d commit 548ff6a
Show file tree
Hide file tree
Showing 26 changed files with 2,114 additions and 407 deletions.
29 changes: 23 additions & 6 deletions library/Zend/Feed/Writer/Extension/ITunes/Entry.php
Expand Up @@ -12,6 +12,8 @@

use Zend\Feed\Writer;
use Zend\Feed\Writer\Extension;
use Zend\Stdlib\StringUtils;
use Zend\Stdlib\StringWrapper\StringWrapperInterface;

/**
* @category Zend
Expand All @@ -33,6 +35,18 @@ class Entry
*/
protected $encoding = 'UTF-8';

/**
* The used string wrapper supporting encoding
*
* @var StringWrapperInterface
*/
protected $stringWrapper;

public function __construct()
{
$this->stringWrapper = StringUtils::getWrapper($this->encoding);
}

/**
* Set feed encoding
*
Expand All @@ -41,7 +55,8 @@ class Entry
*/
public function setEncoding($enc)
{
$this->encoding = $enc;
$this->stringWrapper = StringUtils::getWrapper($enc);
$this->encoding = $enc;
return $this;
}

Expand All @@ -68,7 +83,8 @@ public function setItunesBlock($value)
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
. ' contain alphabetic characters');
}
if (iconv_strlen($value, $this->getEncoding()) > 255) {

if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
. ' contain a maximum of 255 characters');
}
Expand Down Expand Up @@ -98,7 +114,7 @@ public function addItunesAuthors(array $values)
*/
public function addItunesAuthor($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "author" may only'
. ' contain a maximum of 255 characters each');
}
Expand Down Expand Up @@ -160,8 +176,9 @@ public function setItunesKeywords(array $value)
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
. ' contain a maximum of 12 terms');
}

$concat = implode(',', $value);
if (iconv_strlen($concat, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($concat) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
. ' have a concatenated length of 255 chars where terms are delimited'
. ' by a comma');
Expand All @@ -179,7 +196,7 @@ public function setItunesKeywords(array $value)
*/
public function setItunesSubtitle($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "subtitle" may only'
. ' contain a maximum of 255 characters');
}
Expand All @@ -196,7 +213,7 @@ public function setItunesSubtitle($value)
*/
public function setItunesSummary($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 4000) {
if ($this->stringWrapper->strlen($value) > 4000) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "summary" may only'
. ' contain a maximum of 4000 characters');
}
Expand Down
40 changes: 29 additions & 11 deletions library/Zend/Feed/Writer/Extension/ITunes/Feed.php
Expand Up @@ -12,6 +12,8 @@

use Zend\Feed\Writer;
use Zend\Uri;
use Zend\Stdlib\StringUtils;
use Zend\Stdlib\StringWrapper\StringWrapperInterface;

/**
* @category Zend
Expand All @@ -33,6 +35,21 @@ class Feed
*/
protected $encoding = 'UTF-8';

/**
* The used string wrapper supporting encoding
*
* @var StringWrapperInterface
*/
protected $stringWrapper;

/**
* Constructor
*/
public function __construct()
{
$this->stringWrapper = StringUtils::getWrapper($this->encoding);
}

/**
* Set feed encoding
*
Expand All @@ -41,7 +58,8 @@ class Feed
*/
public function setEncoding($enc)
{
$this->encoding = $enc;
$this->stringWrapper = StringUtils::getWrapper($enc);
$this->encoding = $enc;
return $this;
}

Expand All @@ -68,7 +86,7 @@ public function setItunesBlock($value)
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
. ' contain alphabetic characters');
}
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
. ' contain a maximum of 255 characters');
}
Expand Down Expand Up @@ -99,7 +117,7 @@ public function addItunesAuthors(array $values)
*/
public function addItunesAuthor($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "author" may only'
. ' contain a maximum of 255 characters each');
}
Expand All @@ -124,19 +142,19 @@ public function setItunesCategories(array $values)
}
foreach ($values as $key=>$value) {
if (!is_array($value)) {
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
. ' contain a maximum of 255 characters each');
}
$this->data['categories'][] = $value;
} else {
if (iconv_strlen($key, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($key) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
. ' contain a maximum of 255 characters each');
}
$this->data['categories'][$key] = array();
foreach ($value as $val) {
if (iconv_strlen($val, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($val) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
. ' contain a maximum of 255 characters each');
}
Expand Down Expand Up @@ -221,7 +239,7 @@ public function setItunesKeywords(array $value)
. ' contain a maximum of 12 terms');
}
$concat = implode(',', $value);
if (iconv_strlen($concat, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($concat) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
. ' have a concatenated length of 255 chars where terms are delimited'
. ' by a comma');
Expand Down Expand Up @@ -274,8 +292,8 @@ public function addItunesOwner(array $value)
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" must'
. ' be an array containing keys "name" and "email"');
}
if (iconv_strlen($value['name'], $this->getEncoding()) > 255
|| iconv_strlen($value['email'], $this->getEncoding()) > 255
if ($this->stringWrapper->strlen($value['name']) > 255
|| $this->stringWrapper->strlen($value['email']) > 255
) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" may only'
. ' contain a maximum of 255 characters each for "name" and "email"');
Expand All @@ -296,7 +314,7 @@ public function addItunesOwner(array $value)
*/
public function setItunesSubtitle($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 255) {
if ($this->stringWrapper->strlen($value) > 255) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "subtitle" may only'
. ' contain a maximum of 255 characters');
}
Expand All @@ -313,7 +331,7 @@ public function setItunesSubtitle($value)
*/
public function setItunesSummary($value)
{
if (iconv_strlen($value, $this->getEncoding()) > 4000) {
if ($this->stringWrapper->strlen($value) > 4000) {
throw new Writer\Exception\InvalidArgumentException('invalid parameter: "summary" may only'
. ' contain a maximum of 4000 characters');
}
Expand Down
7 changes: 6 additions & 1 deletion library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php
Expand Up @@ -25,6 +25,7 @@
use Zend\ServiceManager\Exception\ServiceNotFoundException;
use Zend\ServiceManager\ServiceManager;
use Zend\Stdlib\ResponseInterface as Response;
use Zend\Stdlib\StringUtils;
use Zend\Text\Table;
use Zend\Version\Version;
use Zend\View\Model\ConsoleModel;
Expand Down Expand Up @@ -393,6 +394,7 @@ protected function renderTable($data, $cols, $consoleWidth)
$result = '';
$padding = 2;


// If there is only 1 column, just concatenate it
if ($cols == 1) {
foreach ($data as $row) {
Expand All @@ -401,12 +403,15 @@ protected function renderTable($data, $cols, $consoleWidth)
return $result;
}

// Get the string wrapper supporting UTF-8 character encoding
$strWrapper = StringUtils::getWrapper('UTF-8');

// Determine max width for each column
$maxW = array();
for ($x = 1; $x <= $cols; $x += 1) {
$maxW[$x] = 0;
foreach ($data as $row) {
$maxW[$x] = max($maxW[$x], mb_strlen($row[$x-1],'utf-8') + $padding * 2);
$maxW[$x] = max($maxW[$x], $strWrapper->strlen($row[$x-1]) + $padding * 2);
}
}

Expand Down
8 changes: 7 additions & 1 deletion library/Zend/ProgressBar/Adapter/Console.php
Expand Up @@ -12,6 +12,7 @@

use Zend\ProgressBar\Adapter\Exception;
use Zend\Stdlib\ErrorHandler;
use Zend\Stdlib\StringUtils;

/**
* Zend_ProgressBar_Adapter_Console offers a text-based progressbar for console
Expand Down Expand Up @@ -438,7 +439,12 @@ public function notify($current, $max, $percent, $timeTaken, $timeRemaining, $te
break;

case self::ELEMENT_TEXT:
$renderedElements[] = \Zend\Text\MultiByte::strPad(substr($text, 0, $this->textWidth), $this->textWidth, ' ', STR_PAD_RIGHT, $this->charset);
$renderedElements[] = StringUtils::getWrapper($this->charset)->strPad(
substr($text, 0, $this->textWidth),
$this->textWidth,
' ',
STR_PAD_RIGHT
);
break;
}
}
Expand Down
22 changes: 22 additions & 0 deletions library/Zend/Stdlib/Exception/ExtensionNotLoadedException.php
@@ -0,0 +1,22 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Zend_Stdlib
*/

namespace Zend\Stdlib\Exception;

/**
* Extension not loaded exception
*
* @category Zend
* @package Zend_Stdlib
* @subpackage Exception
*/
class ExtensionNotLoadedException extends RuntimeException
{
}
22 changes: 22 additions & 0 deletions library/Zend/Stdlib/Exception/RuntimeException.php
@@ -0,0 +1,22 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Zend_Stdlib
*/

namespace Zend\Stdlib\Exception;

/**
* Runtime exception
*
* @category Zend
* @package Zend_Stdlib
* @subpackage Exception
*/
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}

0 comments on commit 548ff6a

Please sign in to comment.