forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | /* | ||
|  |  * This file is part of the Symfony package. | ||
|  |  * | ||
|  |  * (c) Fabien Potencier <fabien@symfony.com> | ||
|  |  * | ||
|  |  * For the full copyright and license information, please view the LICENSE | ||
|  |  * file that was distributed with this source code. | ||
|  |  */ | ||
|  | 
 | ||
|  | namespace Symfony\Component\Translation\Loader; | ||
|  | 
 | ||
|  | use Symfony\Component\Translation\Exception\InvalidResourceException; | ||
|  | use Symfony\Component\Translation\Exception\NotFoundResourceException; | ||
|  | use Symfony\Component\Config\Resource\FileResource; | ||
|  | 
 | ||
|  | /** | ||
|  |  * @author Abdellatif Ait boudad <a.aitboudad@gmail.com> | ||
|  |  */ | ||
|  | abstract class FileLoader extends ArrayLoader | ||
|  | { | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function load($resource, $locale, $domain = 'messages') | ||
|  |     { | ||
|  |         if (!stream_is_local($resource)) { | ||
|  |             throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (!file_exists($resource)) { | ||
|  |             throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); | ||
|  |         } | ||
|  | 
 | ||
|  |         $messages = $this->loadResource($resource); | ||
|  | 
 | ||
|  |         // empty resource
 | ||
|  |         if (null === $messages) { | ||
|  |             $messages = array(); | ||
|  |         } | ||
|  | 
 | ||
|  |         // not an array
 | ||
|  |         if (!is_array($messages)) { | ||
|  |             throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); | ||
|  |         } | ||
|  | 
 | ||
|  |         $catalogue = parent::load($messages, $locale, $domain); | ||
|  | 
 | ||
|  |         if (class_exists('Symfony\Component\Config\Resource\FileResource')) { | ||
|  |             $catalogue->addResource(new FileResource($resource)); | ||
|  |         } | ||
|  | 
 | ||
|  |         return $catalogue; | ||
|  |     } | ||
|  | 
 | ||
|  |     /* | ||
|  |      * @param string $resource | ||
|  |      * | ||
|  |      * @return array | ||
|  |      * | ||
|  |      * @throws InvalidResourceException If stream content has an invalid format. | ||
|  |      */ | ||
|  |     abstract protected function loadResource($resource); | ||
|  | } |