diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 412eeda..0000000 --- a/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d9a10c0..0000000 --- a/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md index 811c9fc..de0f3d7 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Step 1. Edit your `composer.json`: ```json { "require": { - "tureki/phpcc": ">=1.0.0" + "tureki/phpcc": ">=1.0.5" } } ``` @@ -68,14 +68,12 @@ Example: - ---- jar_file is Google Closure Compiler jar file. Your can download latest version on this [link](http://code.google.com/p/closure-compiler/wiki/BinaryDownloads) - ---- After setting. use help() method to test **phpcc**. @@ -160,6 +158,11 @@ print_r($ary_result); +## Todo + +a. Add Unit Test +b. Integrate CI + ## Authors **tureki** @@ -168,6 +171,6 @@ print_r($ary_result); -## Copyright and license +## Copyright and License -Copyright 2013 tureki, under [the Apache 2.0 license](LICENSE). +Copyright 2013 tureki, under [MIT License](http://opensource.org/licenses/MIT). diff --git a/src/tureki/vendor/closure-compiler/COPYING b/closure-compiler/COPYING similarity index 100% rename from src/tureki/vendor/closure-compiler/COPYING rename to closure-compiler/COPYING diff --git a/src/tureki/vendor/closure-compiler/README b/closure-compiler/README similarity index 100% rename from src/tureki/vendor/closure-compiler/README rename to closure-compiler/README diff --git a/src/tureki/vendor/closure-compiler/compiler.jar b/closure-compiler/compiler.jar old mode 100644 new mode 100755 similarity index 100% rename from src/tureki/vendor/closure-compiler/compiler.jar rename to closure-compiler/compiler.jar diff --git a/composer.json b/composer.json index 4656aef..745e932 100644 --- a/composer.json +++ b/composer.json @@ -3,17 +3,22 @@ "description": "A PHP Library to use Google Closure Compiler compress Javascript ", "keywords": [ "php", "compress", "closure compiler" ], "type": "library", - "license": "Apache 2", + "license": "MIT", + "support": { + "issues": "https://github.com/tureki/php-closure-compiler/issues", + "source": "https://github.com/tureki/php-closure-compiler" + }, "authors": [{ "name": "tureki", + "email": "tureki@me.com", "homepage": "https://github.com/tureki" }], "require": { "php": ">=5.3.0" }, "autoload": { - "psr-0": { - "tureki": "src/" - } + "psr-4": { + "tureki\\": "src/tureki/" + } } } \ No newline at end of file diff --git a/samples/js/README b/samples/js/README deleted file mode 100644 index ea8d3db..0000000 --- a/samples/js/README +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright tureki.org [tureki11@gmail.com] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -Sample.php test directory. \ No newline at end of file diff --git a/samples/output/.gitkeep b/samples/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/samples/output/README b/samples/output/README deleted file mode 100644 index d347de8..0000000 --- a/samples/output/README +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright tureki.org [tureki11@gmail.com] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -Executive sample.php file will output compressed files in this directory. \ No newline at end of file diff --git a/samples/sample.php b/samples/sample.php index 5b3bf6f..b5e7505 100644 --- a/samples/sample.php +++ b/samples/sample.php @@ -1,118 +1,101 @@ 'YOUR_JAVA_FILE_PATH', - 'output_path' => './output/', - 'optimization' => 'SIMPLE_OPTIMIZATIONS', - 'charset' => 'utf-8' - )); + /** + * output_path + * + * Output path of compress file when success + */ - /** - * Test your phpcc setting. - */ - print_r($phpcc->help()); + /** + * phpcc config + * @var phpcc + */ + $phpcc = new tureki\PhpCc(array( + 'java_file' => 'YOUR_JAVA_FILE_PATH', + 'output_path' => './output/', + 'optimization' => 'SIMPLE_OPTIMIZATIONS', + 'charset' => 'utf-8', + )); - /** - * Add jQuery file and combined compression - */ - // $ary_result = $phpcc - // ->add("js/jquery-1.10.2.js") - // ->add("js/1.9/jquery-1.9.1.js") - // ->exec("all.js"); - // print_r($ary_result); + /** + * Test your phpcc setting. + */ + print_r($phpcc->help()); - /** - * Add jQuery file and individual compression - */ - // $phpcc->reset(); - // $ary_result = $phpcc - // ->add("js/jquery-1.10.2.js") - // ->add("js/1.9/jquery-1.9.1.js") - // ->single() - // ->exec(); - // print_r($ary_result); + /** + * Add jQuery file and combined compression + */ + // $ary_result = $phpcc + // ->add("js/jquery-1.10.2.js") + // ->add("js/1.9/jquery-1.9.1.js") + // ->exec("all.js"); + // print_r($ary_result); - /** - * Set Directory path find .js file and combined compression to one file. - */ - // $phpcc->reset(); - // $ary_result = $phpcc - // ->setDir("js") - // ->exec("all.js"); - // print_r($ary_result); + /** + * Add jQuery file and individual compression + */ + // $phpcc->reset(); + // $ary_result = $phpcc + // ->add("js/jquery-1.10.2.js") + // ->add("js/1.9/jquery-1.9.1.js") + // ->single() + // ->exec(); + // print_r($ary_result); - /** - * Set Directory path . Auto find js file and individual compression - */ - // $phpcc->reset(); - // $ary_result = $phpcc - // ->setDir("js") - // ->single() - // ->exec(); - // print_r($ary_result); - - /** - * Mixed - */ - // $phpcc->reset(); - // $ary_result = $phpcc - // ->setDir("js") - // ->add("js/1.9/jquery-1.9.1.js") - // ->exec(); - // print_r($ary_result); - - /** - * You can use param() add Closure Compiler command param. - */ - // $phpcc->reset(); - // $ary_result = $phpcc - // ->add("js/jquery-1.10.2.js") - // ->param("--angular_pass") - // ->param("--formatting","PRETTY_PRINT") - // ->exec("all.js"); - // print_r($ary_result); -?> \ No newline at end of file + /** + * Set Directory path find .js file and combined compression to one file. + */ + // $phpcc->reset(); + // $ary_result = $phpcc + // ->setDir("js") + // ->exec("all.js"); + // print_r($ary_result); + + /** + * Set Directory path . Auto find js file and individual compression + */ + // $phpcc->reset(); + // $ary_result = $phpcc + // ->setDir("js") + // ->single() + // ->exec(); + // print_r($ary_result); + + /** + * Mixed + */ + // $phpcc->reset(); + // $ary_result = $phpcc + // ->setDir("js") + // ->add("js/1.9/jquery-1.9.1.js") + // ->exec(); + // print_r($ary_result); + + /** + * You can use param() add Closure Compiler command param. + */ + // $phpcc->reset(); + // $ary_result = $phpcc + // ->add("js/jquery-1.10.2.js") + // ->param("--angular_pass") + // ->param("--formatting","PRETTY_PRINT") + // ->exec("all.js"); + // print_r($ary_result); diff --git a/src/tureki/PhpCc.php b/src/tureki/PhpCc.php index 19f55e1..e8d9516 100644 --- a/src/tureki/PhpCc.php +++ b/src/tureki/PhpCc.php @@ -1,21 +1,5 @@ options = array( - 'java_file' => 'java', - 'jar_file' => __DIR__.'/vendor/closure-compiler/compiler.jar', - 'output_path' => '/', - 'optimization' => 'SIMPLE_OPTIMIZATIONS', - 'charset' => 'utf-8' - ); - - $this->options = array_merge($this->options,$options); - - $this->reset(); - - } - - /** - * Add javascript file to compiler list - * - * @param string $file - * @return self - */ - public function add($file) - { - - if(is_array($file)){ - - $this->js_files = array_merge($this->js_files,$file); - - }else{ - - $this->js_files[] = $file; - - } - - return $this; - - } - - /** - * Execute compiler. - * - * @param string $filename - * @return self - */ - public function exec($filename = 'all.min.js') - { - - $str_file = ''; - - if(substr($this->js_dir, -1)=="/") - { - $this->js_dir = substr($this->js_dir,0, strlen($this->js_dir)-1); - } - - if($this->bol_single){ - - $ary_result = array(); - - $num_js = count($this->js_files); - - for ($i=0; $i < $num_js; $i++) { - - $str_file = ' --js ' . $this->js_files[$i]; - - $filename = basename($this->js_files[$i]); - - $ary_result[] = $this->_get_argv($str_file,$filename); - - } - - $num_js = count($this->js_files_dir); - - for ($i=0; $i < $num_js; $i++) { - - $str_file = ' --js ' . $this->js_files_dir[$i]; - - $filename = str_replace($this->js_dir, '', $this->js_files_dir[$i]); - - $ary_result[] = $this->_get_argv($str_file,$filename); - - } - - - return $ary_result; - - }else{ - - if(count($this->js_files_dir)>0){ - - $this->js_files = array_merge($this->js_files,$this->js_files_dir); - - } - - $this->js_files = array_unique($this->js_files); - - sort($this->js_files); - - $num_js = count($this->js_files); - - for ($i=0; $i < $num_js; $i++) { - - $str_file .= ' --js ' . $this->js_files[$i]; - - } - - return $this->_get_argv($str_file,$filename); - - } - - } - - /** - * Help method will return "Closure Compiler --help" when setting success - * - * @return array - */ - public function help() - { - - $str_cmd = $this->_get_cmd() . ' --help'; - - return $this->_exec($str_cmd); - - } - - /** - * Compress all js to one file. - * - * @return self - */ - public function merge() - { - - $this->bol_single = false; - - return $this; - - } - - /** - * Add command param. exp:--angular_pass - * - * @param string $param - * @param string $value - * @return self - */ - public function param($param,$value=null) - { - - if($value){ - - $str_param = $param ." ". $value; - - }else{ - - $str_param = $param; - - } - - $this->shell_params[] = $str_param; - - return $this; - - } - - /** - * Reset all setting. - * - * @return self - */ - public function reset() - { - - $this->bol_single = false; - - $this->js_dir = ''; - - $this->js_files = array(); - - $this->js_files_dir = array(); - - $this->shell_params = array(); - - return $this; - - } - - /** - * Set directory you want to compiler - * - * @param string $path - * @param array $ext - * @return class phpcc - */ - public function setDir($path,$ext=array('js')) - { - - $this->js_dir = $path; - - $cls_objects = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path) - ); - - foreach($cls_objects as $str_name){ - - $str_filetype = pathinfo($str_name, PATHINFO_EXTENSION); - - if (in_array(strtolower($str_filetype), $ext)) { - - $this->js_files_dir[] = $str_name; - - } - - } - - return $this; - - } - - /** - * Do not merge javascript files - * - * @return class phpcc - */ - public function single() - { - - $this->bol_single = true; - - return $this; - - } - - private function _create($file_path) - { - - if(!file_exists($file_path)){ - - $pathinfo = pathinfo($file_path); - - $path = $pathinfo["dirname"]; - - try{ - if(!file_exists($path) || !is_writeable($path)){ - mkdir($path, 0777,true); - touch($file_path); - } - return true; - }catch(Exception $e){ - return false; - } - - } - - } - - private function _exec($str_cmd) - { - - exec($str_cmd. ' 2>&1', $out, $status); - - return array( - 'shell' => $str_cmd, - 'out' => $out, - 'status' => $status - ); - - } - - private function _get_argv($str_file,$filename) - { - - $opt = $this->_get_options(); - - $str_output = $opt["output_path"].$filename; - - $str_param = implode(" ", $this->shell_params); - - $str_cmd = $this->_get_cmd(); - - $str_cmd .= ' '. $str_param.' '. $str_file; - - $this->_create($str_output); - - if(!empty($str_file)){ - $str_cmd .= - ' --compilation_level '.$opt['optimization']. - ' --charset '.$opt['charset']. - ' --js_output_file '.$str_output; - } - - return $this->_exec($str_cmd); - - } - - private function _get_cmd() - { - - $opt = $this->_get_options(); - - $str_cmd = $opt['java_file'] . ' -jar ' . $opt['jar_file']; - - return $str_cmd; - - } - - private function _get_options() - { - - return $this->options; + * + */ - } - +class PhpCc +{ + + public function __construct($options) + { + $this->options = array( + 'java_file' => 'java', + 'jar_file' => __DIR__.'/../../closure-compiler/compiler.jar', + 'output_path' => '/', + 'optimization' => 'SIMPLE_OPTIMIZATIONS', + 'charset' => 'utf-8' + ); + + $this->options = array_merge($this->options, $options); + + $this->reset(); + } + + /** + * Add javascript file to compiler list + * + * @param string $file + * @return self + */ + public function add($file) + { + if (is_array($file)) { + $this->js_files = array_merge($this->js_files, $file); + } else { + $this->js_files[] = $file; + } + + return $this; + } + + /** + * Execute compiler. + * + * @param string $filename + * @return self + */ + public function exec($filename = 'all.min.js') + { + $str_file = ''; + + if (substr($this->js_dir, -1)=="/") { + $this->js_dir = substr($this->js_dir, 0, strlen($this->js_dir)-1); + } + + if ($this->bol_single) { + $ary_result = array(); + + $num_js = count($this->js_files); + + for ($i=0; $i < $num_js; $i++) { + $str_file = ' --js ' . $this->js_files[$i]; + + $filename = basename($this->js_files[$i]); + + $ary_result[] = $this->_getArgv($str_file, $filename); + } + + $num_js = count($this->js_files_dir); + + for ($i=0; $i < $num_js; $i++) { + $str_file = ' --js ' . $this->js_files_dir[$i]; + + $filename = str_replace($this->js_dir, '', $this->js_files_dir[$i]); + + $ary_result[] = $this->_getArgv($str_file, $filename); + } + + return $ary_result; + } else { + if (count($this->js_files_dir)>0) { + $this->js_files = array_merge($this->js_files, $this->js_files_dir); + } + + $this->js_files = array_values(array_unique($this->js_files)); + + $num_js = count($this->js_files); + + for ($i=0; $i < $num_js; $i++) { + $str_file .= ' --js ' . $this->js_files[$i]; + } + + return $this->_getArgv($str_file, $filename); + } + } + + /** + * Help method will return "Closure Compiler --help" when setting success + * + * @return array + */ + public function help() + { + $str_cmd = $this->_getCmd() . ' --help'; + + return $this->_exec($str_cmd); + } + + /** + * Compress all js to one file. + * + * @return self + */ + public function merge() + { + $this->bol_single = false; + + return $this; + } + + /** + * Add command param. exp:--angular_pass + * + * @param string $param + * @param string $value + * @return self + */ + public function param($param, $value = null) + { + if ($value) { + $str_param = $param ." ". $value; + } else { + $str_param = $param; + } + + $this->shell_params[] = $str_param; + + return $this; + } + + /** + * Reset all setting. + * + * @return self + */ + public function reset() + { + $this->bol_single = false; + + $this->js_dir = ''; + + $this->js_files = array(); + + $this->js_files_dir = array(); + + $this->shell_params = array(); + + return $this; + } + + /** + * Set directory you want to compiler + * + * @param string $path + * @param array $ext + * @return class phpcc + */ + public function setDir($path, $ext = array('js')) + { + $this->js_dir = $path; + + $cls_objects = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($path) + ); + + foreach ($cls_objects as $str_name) { + $str_filetype = pathinfo($str_name, PATHINFO_EXTENSION); + + if (in_array(strtolower($str_filetype), $ext)) { + $this->js_files_dir[] = $str_name; + } + } + + return $this; + } + + /** + * Do not merge javascript files + * + * @return class phpcc + */ + public function single() + { + $this->bol_single = true; + + return $this; + } + + private function _create($file_path) + { + if (!file_exists($file_path)) { + $pathinfo = pathinfo($file_path); + + $path = $pathinfo["dirname"]; + + try { + if (!file_exists($path) || !is_writeable($path)) { + mkdir($path, 0777, true); + touch($file_path); + } + return true; + } catch (Exception $e) { + return false; + } + } + } + + private function _exec($str_cmd) + { + exec($str_cmd. ' 2>&1', $out, $status); + + return array( + 'shell' => $str_cmd, + 'out' => $out, + 'status' => $status + ); + } + + private function _getArgv($str_file, $filename) + { + $opt = $this->options; + + $str_output = $opt["output_path"].$filename; + + $str_param = implode(" ", $this->shell_params); + + $str_cmd = $this->_getCmd(); + + $str_cmd .= ' '. $str_param.' '. $str_file; + + $this->_create($str_output); + + if (!empty($str_file)) { + $str_cmd .= + ' --compilation_level '.$opt['optimization']. + ' --charset '.$opt['charset']. + ' --js_output_file '.$str_output; + } + + return $this->_exec($str_cmd); + } + + private function _getCmd() + { + $opt = $this->options; + + $str_cmd = $opt['java_file'] . ' -jar ' . $opt['jar_file']; + + return $str_cmd; + } } -?> \ No newline at end of file diff --git a/src/tureki/README b/src/tureki/README deleted file mode 100644 index 8c45563..0000000 --- a/src/tureki/README +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright tureki.org [tureki11@gmail.com] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -PHPCC source directory. \ No newline at end of file diff --git a/tests/.gitkeep b/tests/.gitkeep new file mode 100644 index 0000000..e69de29