Source of file Util.php
Size: 2,091 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Code/Scanner/Util.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Code\Scanner; use stdClass; use Zend\Code\Exception; /** * Shared utility methods used by scanners */ class Util { /** * Resolve imports * * @param string $value * @param null|string $key * @param \stdClass $data * @return void * @throws Exception\InvalidArgumentException */ public static function resolveImports(&$value, $key = null, stdClass $data = null) { if (!is_object($data) || !property_exists($data, 'uses') || !property_exists($data, 'namespace') ) { throw new Exception\InvalidArgumentException(sprintf( '%s expects a data object containing "uses" and "namespace" properties; on or both missing', __METHOD__ )); } if ($data->namespace && !$data->uses && strlen($value) > 0 && $value{0} != '\\') { $value = $data->namespace . '\\' . $value; return; } if (!$data->uses || strlen($value) <= 0 || $value{0} == '\\') { $value = ltrim($value, '\\'); return; } if ($data->namespace || $data->uses) { $firstPart = $value; if (($firstPartEnd = strpos($firstPart, '\\')) !== false) { $firstPart = substr($firstPart, 0, $firstPartEnd); } else { $firstPartEnd = strlen($firstPart); } if (array_key_exists($firstPart, $data->uses)) { $value = substr_replace($value, $data->uses[$firstPart], 0, $firstPartEnd); return; } if ($data->namespace) { $value = $data->namespace . '\\' . $value; return; } } } } |