JPHP - PHP 구현
JPHP는 Java VM을 사용하는 PHP의 새로운 구현입니다. PHP 언어(7.1+)의 다양한 기능을 지원합니다.
어떻게 작동하나요? JPHP는 javac
와 같은 컴파일러로, PHP 소스를 JVM 바이트코드로 컴파일한 다음 Java VM에서 결과를 실행할 수 있습니다.
- 공식 사이트: jphp.develnext.org
- 굉장한 JPHP
생산 중
우리는 Game Maker
또는 Scirra Construct
같은 초보자를 위한 새로운 IDE를 개발합니다. JPHP, JavaFX, Java 8, Gradle을 기반으로 하며 Linux, Windows 및 Mac(향후에는 Android 및 기타 플랫폼일 수도 있음)용 데스크톱 게임과 앱을 만들 수 있습니다. 프로젝트 이름은 DevelNext
(https://github.com/jphp-group/develnext-ide)이고, 프로젝트의 현재 상태와 버전은 BETA입니다. 이 프로젝트는 아직 영어로 현지화되지 않았습니다.
목표
JPHP는 Zend PHP 엔진이나 Facebook HHVM을 대체하지 않습니다. 우리는 JPHP용 zend 런타임 라이브러리(예: Curl, PRCE 등)를 구현할 계획이 없습니다.
우리 프로젝트는 2013년 10월에 시작되었습니다. 그 이유는 다음과 같습니다.
- PHP에서 Java 라이브러리를 사용하는 능력(자체 확장 기능 + 기타)
- Zend PHP의 추악한 런타임 라이브러리를 더 나은 런타임 라이브러리로 교체합니다.
- 웹뿐만 아니라 PHP 언어 사용
- Java 및 C#과 같은 멀티스레딩.
- 유니코드 문자열(UTF-8, UTF-16 완전 지원).
- PHP 언어로 GUI Android 및 데스크톱 애플리케이션 만들기.
특징
- PHP 7.1+(및 PHP 7.2, 7.3, 7.4의 다양한 언어 기능)
- JIT(PHP 5.6의 ~2.5배 빠름, PHP 7.0의 ~1.1배 빠름, PHP 7.4보다 ~13% 느림, 벤치).
- PHP 코드에서 Java 라이브러리 및 클래스 사용.
- 문자열용 유니코드(Java와 같은 UTF-16)
- 스레딩, 소켓, 환경 아키텍처(런킷 zend 확장의 샌드박스 개체와 유사).
- GUI(JavaFX 또는 SWT)
- 클래스 및 함수를 위한 임베디드 캐시 시스템
- 클래스 및 함수에 대한 선택적 핫 리로딩
- Android OS에서 사용 가능 : jphp-android
PHP 7.2에서 JPHP가 지원하는 것은 무엇입니까?
- RFC를 제외한 모든 기능: 매개변수 유형 확장
PHP 7.3에서 JPHP가 지원하는 것은 무엇입니까?
- RFC를 제외한 모든 기능: 유연한 Heredoc 및 Nowdoc 구문
PHP 7.4에서 JPHP가 지원하는 것은 무엇입니까?
- Typed Properties 2.0(일부 참조는 지원되지 않음)
- 약한 참조
- Arrow Functions 2.0 (+ 여러 줄 구문)
- __toString()에서 예외 발생 허용
- Null 병합 할당 연산자
- 숫자_리터럴_구분자
- 배열 표현식의 확산 연산자
자신의 확장 프로그램
- 표준 라이브러리 - 자체 런타임 표준 라이브러리
- HTTP 서버(+웹 소켓 +멀티스레드)
- GUI(JavaFX 또는 SWT)
- Git(JGit 기반)
- JSoup - jQuery 스타일로 html을 구문 분석하는 데 사용됩니다.
- SQL(MySQL, PostgreSQL, SQLite, Firebird 지원)
- SSH - SSH 프로토콜 작업용입니다.
- Yaml - yaml을 구문 분석하고 형식화하는 데 사용됩니다.
- 압축 - tar, gz, bz2, lz4, zip 아카이브 작업용입니다.
- HttpClient - 약속이 있는 http 클라이언트입니다.
- SemVer - SemVer 표준의 버전을 구문 분석하는 데 사용됩니다.
- 메일 - SMTP 서버를 통해 이메일을 보내는 데 사용됩니다.
- MongoDB - Mongo DB 3.0+용 드라이버입니다.
선적 서류 비치
- 여기에서 최신 API 문서를 찾을 수 있습니다: jphp-runtime/api-docs
- 여기 위키: 읽기
시작하기(Hello World)
- jphp 패키지 관리자(jppm) 설치, 설치방법.
- 기본값을 사용하여 새 프로젝트(jppm 패키지)를 초기화합니다.
- 콘솔
jppm start
에서 실행하세요.
콘솔에 Hello World
표시되며 이 프로그램의 소스는 src/index.php
에 있습니다.
- (선택 사항) 이전 프로젝트의 jphp 버전을 업데이트하려면:
벤치마크를 실행하는 방법은 무엇입니까?
// via jphp
./gradlew bench
// via php
php -f bench/src/bench.php
소스에서 SNAPSHOT 빌드
gradle install
사용하여 jphp 모듈과 라이브러리를 mavel 로컬 저장소에 빌드하고 설치합니다. 그런 다음 프로젝트에서 jphp를 Maven 종속성으로 사용할 수 있습니다.
org.develnext.jphp:jphp-<module>:<version>-SNAPSHOT