public function compile()
    {
        // Path prefix
        $prefix = $this->getNewPrefix();
        // List of images
        $data = $this->getList();

        // sizes
        $sizes = [];
        foreach ($this->providers as $provider) {
            if ($provider instanceof SizeProviderInterface) {
                $sizes = array_merge($sizes, $provider->getSizes());
            }
        }

        $num = 0;
        $scss = [];
        foreach ($data as $name => $list) {
            // Sprite size
            $size = !isset($sizes[$name]) ? null : $sizes[$name];
            $size = $this->getSize($name, $size);
            if (is_array($size)) {
                $border = $size[1];
                $sizeH = isset($size[2]) ? $size[2] : $size[0];
                $sizeW = $size[0];
            } else {
                $border = static::BORDER_WIDTH;
                $sizeH = $sizeW = $size;
            }
            $scss[] = $this->compileFile($prefix, $name, $list, [$sizeW, $sizeH], $border);
            $num += count($list);
        }

        // Populating template
        $template = file_get_contents($this->template);
        $scss = str_replace(
            static::TEMPLATE_NEEDLE, join("\n", $scss), $template
        );

        // Creating global classes
        if (static::CREATE_CLASSES) {
            foreach ($data as $name => $list) {
                $scss .= '.#{$' . static::NAMESPACE_NAME . '}';
                $scss .= ', .#{$' . static::NAMESPACE_NAME . '}-' . $name . ' {' . "\n";
                $scss .= '@include ' . static::PREFIX_SPRITE . $name . ';' . "\n";
                $scss .= '};' . "\n";
            }
        }

        // Writing the file
        file_put_contents($this->stylePath, $scss);

        return $num;
    }
public function compile()
    {
        // Path prefix
        $prefix = $this->getNewPrefix();
        // List of images
        $data = $this->getList();

        // sizes
        $sizes = [];
        foreach ($this->providers as $provider) {
            if ($provider instanceof SizeProviderInterface) {
                $sizes = array_merge($sizes, $provider->getSizes());
            }
        }

        $num = 0;
        $scss = [];
        foreach ($data as $name => $list) {
            // Sprite size
            $size = !isset($sizes[$name]) ? null : $sizes[$name];
            $size = $this->getSize($name, $size);
            if (is_array($size)) {
                $border = $size[1];
                $sizeH = isset($size[2]) ? $size[2] : $size[0];
                $sizeW = $size[0];
            } else {
                $border = static::BORDER_WIDTH;
                $sizeH = $sizeW = $size;
            }
            $scss[] = $this->compileFile($prefix, $name, $list, [$sizeW, $sizeH], $border);
            $num += count($list);
        }

        // Populating template
        $template = file_get_contents($this->template);
        $scss = str_replace(
            static::TEMPLATE_NEEDLE, join("\n", $scss), $template
        );

        // Creating global classes
        if (static::CREATE_CLASSES) {
            foreach ($data as $name => $list) {
                $scss .= '.#{$' . static::NAMESPACE_NAME . '}';
                $scss .= ', .#{$' . static::NAMESPACE_NAME . '}-' . $name . ' {' . "\n";
                $scss .= '@include ' . static::PREFIX_SPRITE . $name . ';' . "\n";
                $scss .= '};' . "\n";
            }
        }

        // Writing the file
        file_put_contents($this->stylePath, $scss);

        return $num;
    }
public function compile ( ) { // Path prefix $ prefix = $ this -> getNewPrefix ( ) ; // List of images $ data = $ this -> getList ( ) ; // sizes $ sizes = [ ] ; foreach ( $ this -> providers as $ provider ) { if ( $ provider instanceof SizeProviderInterface ) { $ sizes = array_merge ( $ sizes , $ provider -> getSizes ( ) ) ; } } $ num = 0 ; $ scss = [ ] ; foreach ( $ data as $ name => $ list ) { // Sprite size $ size = ! isset ( $ sizes [ $ name ] ) ? null : $ sizes [ $ name ] ; $ size = $ this -> getSize ( $ name , $ size ) ; if ( is_array ( $ size ) ) { $ border = $ size [ 1 ] ; $ sizeH = isset ( $ size [ 2 ] ) ? $ size [ 2 ] : $ size [ 0 ] ; $ sizeW = $ size [ 0 ] ; } else { $ border = static :: BORDER_WIDTH ; $ sizeH = $ sizeW = $ size ; } $ scss [ ] = $ this -> compileFile ( $ prefix , $ name , $ list , [ $ sizeW , $ sizeH ] , $ border ) ; $ num += count ( $ list ) ; } // Populating template $ template = file_get_contents ( $ this -> template ) ; $ scss = str_replace ( static :: TEMPLATE_NEEDLE , join ( "\n" , $ scss ) , $ template ) ; // Creating global classes if ( static :: CREATE_CLASSES ) { foreach ( $ data as $ name => $ list ) { $ scss .= '.#{$' . static :: NAMESPACE_NAME . '}' ; $ scss .= ', .#{$' . static :: NAMESPACE_NAME . '}-' . $ name . ' {' . "\n" ; $ scss .= '@include ' . static :: PREFIX_SPRITE . $ name . ';' . "\n" ; $ scss .= '};' . "\n" ; } } // Writing the file file_put_contents ( $ this -> stylePath , $ scss ) ; return $ num ; }
Compiles all sprites

@return int Number of images merged
Compiles all sprites