Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/ImageEditor/ExtensionFactory.php
Строк: 80
<?php
/**
 * Created by PhpStorm.
 * User: Korvin
 * Date: 7/26/15
 * Time: 6:49 PM
 */

namespace ConcreteCoreImageEditor;

use 
ConcreteCoreAssetAssetList;
use 
ConcreteCoreViewView;

class 
ExtensionFactory
{

    
/**
     * @var AssetList
     */
    
protected $assetList;

    public function 
__construct(AssetList $asset_list)
    {
        
$this->assetList $asset_list;
    }

    
/**
     * @param array $config
     * @return Extension
     */
    
public function extensionFromConfig(array $config)
    {
        
$extension = new Extension();

        
$extension->setName(array_get($config'name'));
        
$extension->setHandle(array_get($config'handle'));

        
$asset $this->assetList->getAsset('javascript'array_get($config'src'));
        if (!
$asset) {
            
$handle array_get($config'handle');
            throw new 
RuntimeException("Could not build extension "{$handle}", invalid extension asset.");
        } else {
            
$extension->setExtensionAsset($asset);
        }

        
$view = new View(array_get($config'view'));
        
$extension->setView($view);

        
$assets = (array)array_get($config'assets');
        foreach (
$assets as $handle => $asset_config) {
            
$asset_config = (array)$asset_config;

            foreach (
$asset_config as $type) {
                if (
$asset $this->assetList->getAsset($type$handle)) {
                    
$extension->addAsset($asset);
                } else {
                    
$handle array_get($config'handle');
                    throw new 
RuntimeException("Could not build extension "{$handle}", invalid asset.");
                }
            }
        }

        return 
$extension;
    }

}
Онлайн: 4
Реклама