Skip to main content

PHP to Python transpiler.

Project description

php2py

image

PHP to Python transpiler.

  • Free software: GNU General Public License v3

Use cases

  • Helping port PHP code to Python (provides a first pass, which can then be manually edited).

Features

  • Translates a subset of PHP to Python.

Install

  • You need PHP and composer installed on your system.
  • You need Python 3.10+.

For development

  • From a git checkout, run
poetry shell
poetry install
composer install

For actual use

This should work:

pipx install php2py

Architecture

  • Front-end (PHP parser): uses an external PHP parser (nikic/php-parser) to parse PHP code and build an AST.
  • Back-end (Python generator): uses the AST to generate Python code, via pattern matching.
  • Python code is generated from AST using the unparse from the stdlib.

TODO

  • Add test cases (real programs) and make sure they pass.
  • Make a runtime / stdlib of common PHP functions in Python.
  • Cleanup.

Prior art

Contributing

I don't have time to work on this project ATM, but I'm happy to review pull requests.

If you are a student (or a group of students) in a computer science or engineering program, and you want to work on this, please contact me (mailto:sf@abilian.com).

If you think this project can be useful for your company, you can support the development effort through a sponsorship via my company, Abilian: https://abilian.com/.

Credits

This package was created with Cruft and the abilian/cookiecutter-abilian-python project template.

This project uses the nikic/php-parser PHP parser (in PHP).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

php2py-0.2.0.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

php2py-0.2.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file php2py-0.2.0.tar.gz.

File metadata

  • Download URL: php2py-0.2.0.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for php2py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8a5356bda5793efe6b097cd01939f900c513fe96c2661665081a41a38f502f37
MD5 a014c2bcc9ef6058e98501f622da2d2e
BLAKE2b-256 c4eb3ec8b9a0e01d0fbfd84b371a147ab6f4848d951dfd59378283b2d6c83064

See more details on using hashes here.

File details

Details for the file php2py-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: php2py-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for php2py-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16a5ceb3c5e74d5101fb7a816f1432596ae4ac793e4a7ebebe7930f8ac3edc02
MD5 bc168b2b4b534dec6096cf4fc0ea59ac
BLAKE2b-256 c9ec12b34e8ea686a8b8491aed78a3f05b706ff718a0e6f5f0352ca117ddc535

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page