[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 4 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 5 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 6 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 7 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 9 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 10 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 11 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 12 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 13 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14 * 15 * This software consists of voluntary contributions made by many individuals 16 * and is licensed under the MIT license. 17 */ 18 19 namespace ProxyManager\Inflector; 20 21 use ProxyManager\Inflector\Util\ParameterHasher; 22 23 /** 24 * {@inheritDoc} 25 * 26 * @author Marco Pivetta <ocramius@gmail.com> 27 * @license MIT 28 */ 29 final class ClassNameInflector implements ClassNameInflectorInterface 30 { 31 /** 32 * @var string 33 */ 34 protected $proxyNamespace; 35 36 /** 37 * @var int 38 */ 39 private $proxyMarkerLength; 40 41 /** 42 * @var string 43 */ 44 private $proxyMarker; 45 46 /** 47 * @var \ProxyManager\Inflector\Util\ParameterHasher 48 */ 49 private $parameterHasher; 50 51 /** 52 * @param string $proxyNamespace 53 */ 54 public function __construct($proxyNamespace) 55 { 56 $this->proxyNamespace = (string) $proxyNamespace; 57 $this->proxyMarker = '\\' . static::PROXY_MARKER . '\\'; 58 $this->proxyMarkerLength = strlen($this->proxyMarker); 59 $this->parameterHasher = new ParameterHasher(); 60 } 61 62 /** 63 * {@inheritDoc} 64 */ 65 public function getUserClassName($className) 66 { 67 $className = ltrim($className, '\\'); 68 69 if (false === $position = strrpos($className, $this->proxyMarker)) { 70 return $className; 71 } 72 73 return substr( 74 $className, 75 $this->proxyMarkerLength + $position, 76 strrpos($className, '\\') - ($position + $this->proxyMarkerLength) 77 ); 78 } 79 80 /** 81 * {@inheritDoc} 82 */ 83 public function getProxyClassName($className, array $options = array()) 84 { 85 return $this->proxyNamespace 86 . $this->proxyMarker 87 . $this->getUserClassName($className) 88 . '\\Generated' . $this->parameterHasher->hashParameters($options); 89 } 90 91 /** 92 * {@inheritDoc} 93 */ 94 public function isProxyClassName($className) 95 { 96 return false !== strrpos($className, $this->proxyMarker); 97 } 98 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |