# lws-optimize/1.8/classes/JsCombiner.php

LWS Optimize – All-in-One Speed Booster &amp; Cache Tools, version 1.8. 57 lines.

- Page: https://pluginprobe.com/plugins/lws-optimize/1.8/code/classes/JsCombiner.php
- Raw: https://pluginprobe.com/plugins/lws-optimize/1.8/raw/classes/JsCombiner.php
- Modified: 2023-06-05T07:57:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/lws-optimize/1.8/code/classes/JsCombiner.php#L10-L20`.

```php
<?php

/**
 * Interpreted from code 
 * By Hackinet
 */
class JsCombiner{

    private $fileNames = [];

    function __construct($fileNames){
        $this->fileNames = $fileNames;
    }

    private function fileValidator($fileName){

        $fileParts = explode('.',$fileName);
        $fileExtension  = end($fileParts);

        if(strtolower($fileExtension) !== "js"){
            throw new Exception("Invalid file type. The extension for the file $fileName is $fileExtension.");
        }

        if(!file_exists($fileName)){
            throw new Exception("The given file $fileName does not exists.");
        }

    }

    private function setHeaders(){
        header('Content-Type: text/javascript');
    }

    public function combine(){

        $this->setHeaders();

        $js = "";
        $fileNames = $this->fileNames;

        foreach ($fileNames as $fileName){
            try{
                $this->fileValidator($fileName);
                $fileContent = file_get_contents($fileName);
                $js .= $fileContent;
            } catch(\Exception $e) {
                echo 'Message: ' .$e->getMessage();
                return false;
            }
        }

        return $js;

    }


}
```
