JPHP #0 - Вводный урок
В данном цикле статей я постараюсь подробно рассказать о JPHP.
Первая статья, как полагается, вводная - рассмотрим хелло ворлд.
Собственно, JPHP - это реализация php для виртуальной машины Java. Что позволяет писать не только бэкенд для веб-приложений и скрипты, но и в том числе нативные приложения для ПК, и даже для android.
Помимо этого существует IDE для разработки приложений на jphp - DevelNext, но в этом цикле статей она рассматриваться не будет.
На данный момент, текущей поддерживаемой версией можно назвать php 7.1 (с поддержкой различных возможностей php 7.2, 7.3 и 7.4). Но в любом случае, большинство пакетов для обычного php поддерживаться не будут. И можно забыть про composer, но для jphp есть свой менеджер пакетов - jppm, хоть и без такого обильного количества пакетов.
Разработчики помимо этого обещают более быструю работы по сравнению с обычным php в некоторых операциях - ссылка на тесты.
Для работы с jphp достаточно установить менеджер пакетов jppm.
Основные команды для jppm:
jppm init - создать новый проект в текущей директории
jppm add %package_name% - добавить в проект и установить проект
jppm remove %package_name%
jppm start
jppm build
Для начала создадим новый проект. Структура файлов будет следующая:И, как вы уже догадались, весь код на текущий проект хранится в файле index.php. Его содержимое следующее:
Да, это обычный hello world, всё так банально. В вводном уроке даже строчки кода не потребуется писать. Запустим проект. При первом запуске или компиляции будут скачены все зависимости.jppm start-> win -> app:run -> install -> get versions of package jphp-core, source: http://api.develnext.org -> get versions of package jphp-runtime, source: http://api.develnext.org -> get versions of package jphp-zend-ext, source: http://api.develnext.org -> get versions of package jphp-json-ext, source: http://api.develnext.org -> install jphp-core@1.3.1 --> install jphp-runtime@1.3.1 -> install jphp-zend-ext@1.1.0 --> install jphp-json-ext@1.0.0 Hello World
Если попробовать скомпилировать приложение, то структура файлов станет следующей:
Теперь рассмотрим структуру файлов повнимательнее
- build- папка с собранным проектом
- Помимо самого jar файла так-же есть sh и bat скрипт для запуска. Так-же, следует обратить внимание, что все библиотеки не собраны в один jar файл, а находятся в отдельном каталоге. При желании, можно собрать приложение в виде одного jar файла с помощью one-jar. Помимо этого, если открыть jar файл как архив, то всё содержимое исходного кода приложения можно будет увидеть
У jphp есть возможность компиляции программы в байт-код, это не только защитит исходный код программы, но и в том числе позволить увеличить скорость выполнения программы. Но об этом подробнее будет в следующих статьях.
- Помимо самого jar файла так-же есть sh и bat скрипт для запуска. Так-же, следует обратить внимание, что все библиотеки не собраны в один jar файл, а находятся в отдельном каталоге. При желании, можно собрать приложение в виде одного jar файла с помощью one-jar. Помимо этого, если открыть jar файл как архив, то всё содержимое исходного кода приложения можно будет увидеть
- src - папка с исходным кодом программы
- vendor - папка с зависимостями
- package.php.yml - конфиг. Помимо конфигурации программы тут так-же записаны все зависимости.