38 votes

Convertir PHP en code C ++

Je suis à la recherche d'un moyen de convertir du code PHP en C++. Il y a quelques raisons que je veux faire:

Principale raison: Il y a des tas de grands outils PHP/le logiciel que j'aimerais utiliser et à intégrer dans C++ GUI ou non des applications GUI

  1. Pour améliorer les performances
  2. Pour éviter la dépendance sur les bibliothèques PHP
  3. Pour éviter de divulguer le code source sur les environnements d'hébergement partagés
  4. Pour être habilité par le langage C++ fonctions et utiliser des frameworks comme Qt C++ et Poco

Jusqu'à présent, j'ai trouvé:

http://sourceforge.net/projects/binaryphp

http://www.mibsoftware.com/php2cpp/

Veuillez nous faire part de vos idées et des outils que vous connaissez. Je vous remercie à l'avance!

EDIT: J'ai aussi besoin de la croix-plate-forme de fonctionnement et bon match pour les $$, sucre syntaxique des fonctions et de l'Interface.

EDIT: Veuillez noter que les 2 outils ci-dessus 2 approches différentes. Le premier a intégré dans les bibliothèques de convertir PHP code de procédure et de le faire fonctionner. Ce dernier se traduit par (mot par mot) à partir de PHP C++.

37voto

Bob Somers Points 4186

Peut-être que je ne suis pas entièrement d'analyser le contexte d'pourquoi vous pensez que vous avez besoin de faire cela, mais je ne pense pas que les raisons que vous avez posté sont particulièrement convaincants.

  1. Pas très nombreuses applications web sont en CPU, donc je ne pense pas que vous serez impressionné par la poussée de la performance. Pour le compiler vers du code natif, ce n'est pas votre I/O ou DB attend plus courte. Il existe de meilleurs moyens à l'échelle d'une application web que de passer au C++, et la plupart d'entre eux impliquent la réduction du temps de votre script est en attente pour les données de la DB ou disque (tels que la fragmentation de votre DB ou le déplacement de données dans une mémoire cache).

  2. Sont les dépendances de la bibliothèque vraiment un problème? La plupart des bibliothèques populaires sont fournis avec le coeur de PHP maintenant, en plus de ceux qui sont généralement simples à installer. Une fois que vous avez 'em, vous ne touchez pas 'em, donc je ne suis pas sûr de savoir pourquoi cela est particulièrement convaincante de raison de passer à C++.

  3. C'est en fait une très MAUVAISE raison de passer à C++. La plupart partagé environnements d'hébergement vous permettra d'exécuter des scripts dans un environnement PHP, mais très peu à rien (sauf si vous êtes à la recherche à un VPS) permet d'exécuter un binaire arbitraire comme vous aurez avec un C++ application. Il y a de meilleurs moyens de contrôle de la source de la lisibilité dans des environnements partagés, comme l'utilisation des autorisations de fichier correctement. Si vous êtes inquiet au sujet de nos clients voler votre code PHP, eh bien, tant pis. Vous pouvez essayer de dissimuler ce que vous voulez, mais il est généralement inutile à la fin de la journée.

  4. Quelles fonctionnalités C++ ne vous ont si désespérément besoin que PHP n'offre pas? Pour être honnête, l'idée de la moyenne de votre codeur PHP marinage sur les pointeurs et l'allocation de mémoire peur la merde hors de moi. Il existe de très bons cadres disponibles pour PHP, et je vous suggère de vous épuiser la totalité de ces options avant de vous tourner pour changer la langue de l'ensemble de votre base de code juste pour certaines fonctionnalités que vous aimez dans le cadre particulier.

  5. Vous avez mentionné la croix-compatibilité de plate-forme dans votre commentaire... PHP est honnêtement va rendre cela plus facile que le C++ est. Le PHP de mise en œuvre est relativement standardisées sur toutes les plateformes (à l'exception de quelques bas-fonctions de niveau) alors que vous êtes probablement va être l'aide d'un compilateur différent et appels système en C++.

27voto

naugtur Points 12383

Cela pourrait également devenir intéressant dans un court laps de temps:

https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/

C'est ce qui maintient Facebook en vie;) Une technologie qui traduit et compile php en C ++ et va devenir open-source. Je m'attends à ce qu'il soit vraiment bien testé.

8voto

Viet Points 4688

Après beaucoup de recherches, j'ai trouvé http://www.phpcompiler.org/doc/maketea.pdf et http://rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.pdf . Depuis le code source PHP peut être analysé et puis traslated XML, convertir en C++ est juste une question de XSLT. En outre, PHPCompiler prend également en charge les plugins et les diverses transformations de code source (basé sur les AST transformations). Je pense que cela devrait être suffisant pour l'instant.

Quelques références supplémentaires:

  1. http://www.phpcompiler.org
  2. http://www.phpcompiler.org/doc/latest/devintro.html
  3. http://rosecompiler.org
  4. http://rosecompiler.org/ROSE_UserManual/ROSE-UserManual.pdf

Merci à tous pour la participation à la discussion!

8voto

bslima Points 172

Facebook hiphop est ouvert depuis un moment maintenant: https://github.com/facebook/hiphop-php/

3voto

Nick Berardi Points 31361

1-3 peut être accompli par le compilateur Zend

http://www.zend.com/en/

4 est un peu bizarre, car le Qt C ++ n'est-il pas un framework d'interface utilisateur de bureau?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X