Code/PHP

[php] php 코드를 Javascript 코드로 변환 ( PHP -> JS )

codens 2021. 6. 23. 06:16

    - PHP source code script convert to Javascript script
    - php 소스 코드 => 자바스크립트(JS) 코드 스크립트로 번역


//-----------------------------------------------------------------
* Kornel / babel-preset-php  (JS , Babel 이용)   <=== 추천
https://gitlab.com/kornelski/babel-preset-php - 163
    - 2020.03 , v1.4

* 설치
    - node.js 필요
npm update
npm i -g @babel/core @babel/cli @babel/preset-env
npm i -S babel-preset-php

* .babelrc 파일 수정
{
  "presets": ["php"]
}

* php 변환
babel src.php -o out.js

    - 변환 결과가 깔끔
//------------------------
// php
function str_limit2($_str, $limit, $last = '...')
{
    $str = mb_substr($_str, 0, $limit);
    if (mb_strlen($_str) > $limit && $limit > 4) {
        $str .= ($last ? $last : '');
    }
    return $str;
}

//------------------------
//변환 결과
// JS
function str_limit2(_str, limit, last = "...") {
    var str = mb_substr(_str, 0, limit);

    if (mb_strlen(_str) > limit && limit > 4) {
        str += last ? last : "";
    }

    return str;
};




//-----------------------------------------------------------------
//-----------------------------------------------------------------
* Danack / PHP-to-Javascript  (PHP, Composer 이용)
https://github.com/Danack/PHP-to-Javascript - 96
    - 2013.08 , v0.2.2

    - composer 설치 초기화
    - composer.json 파일 수정
{
   ...
    "require": {
        "base-reality/php-to-javascript": "^0.2.2"
    }
}

composer install
or
composer require base-reality/php-to-javascript

    - 테스트 파일 생성. test1.php
<?php
require_once '../vendor/autoload.php';

$phpToJavascript = new PHPToJavascript\PHPToJavascript();
$phpToJavascript->addFromFile('src.php');
$jsOutput = $phpToJavascript->toJavascript();
file_put_contents('out2.js', $jsOutput);
echo $jsOutput;

    - 실행
php test1.php

//------------------------
// php
function str_limit2($_str, $limit, $last = '...')
{
    $str = mb_substr($_str, 0, $limit);
    if (mb_strlen($_str) > $limit && $limit > 4) {
        $str .= ($last ? $last : '');
    }
    return $str;
}

//------------------------
//변환 결과
// JS
function str_limit2(_str, limit, last) {
    if (typeof last === "undefined") {
        last = '...';
    }

    var str = mb_substr(_str, 0, limit);
    if (mb_strlen(_str) > limit && limit > 4) {
        str += (last ? last : '');
    }
    return str;
}



//-----------------------------------------------------------------
//-----------------------------------------------------------------
// 참고
// 자바스크립트로 변환 가능한 언어들
List of languages that compile to JS
https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS#php
    - phype  중단됨

//-------------------------------------
* asmblah / uniter
https://github.com/asmblah/uniter - 410
    - v2.17.0 , 2021.03
    - php 코드를 브라우저나 Node.js에서 시키는 프로젝트

* uniter / phptojs
https://github.com/uniter/phptojs - 25
    - 2021.02
    PHP-to-JavaScript transpiler
    - 번환 모듈


//-------------------------------------
* niklasvh / php.js
https://github.com/niklasvh/php.js - 818
    - 2015.03
    - PHP VM : php 코드를 자바스크립트 상에서 실행 키는 가상머신 프로젝트

git clone https://github.com/niklasvh/php.js
cd php.js
npm install
grunt


//-----------------------------------------------------------------------------

*  glayzzle / php-transpiler 
https://github.com/glayzzle/php-transpiler - 15
- node.js용  php -> js 변환 api


//-------------------------------------

https://github.com/phpnode/YiiJS/blob/master/protected/commands/js/phpToJS.php


반응형