Comment supporter les fonctions / variables PHP prédéfinies dans un serveur que j'ai écrit


Answers

Question

J'écris actuellement mon propre serveur en C ++ pour les systèmes Posix. Avant que quelqu'un ne dise quelque chose sur la façon dont je devrais vraiment utiliser un serveur préconstruit, s'il vous plaît soyez conscient que j'utilise des serveurs préconstruits pour tout ce qui touche aux affaires. Ce projet est entièrement une expérience d'apprentissage.

Je voudrais que ce système prenne en charge les scripts côté serveur ainsi que l'hébergement statique. Je rencontre un problème lorsque j'essaie d'inclure le support du langage de script côté serveur le plus important: PHP.

La norme PHP fournit plusieurs variables prédéfinies qui donnent accès à des informations sur une requête entrante. Il fournit également des fonctions HTTP standard qui interagissent avec la requête de manière spécifique. En outre, il est supposé être possible d'effectuer des opérations d'E / S sur les corps de requête et de réponse en utilisant les noms de fichiers php://input et php://output respectivement pour désigner le socket et les permissions appropriés.

Je sais que je serais capable de définir toutes ces variables et d'implémenter toutes ces fonctions moi-même dans le haut d'un script wrapper, puis utiliser include pour exécuter le script de l'utilisateur dans le même contexte, mais cela semble lourd. Je ne sais pas non plus comment mapper php://input ou php://output au descripteur de fichier de la socket de requête.

Je ne connais pas beaucoup les interprètes PHP. Est-il possible de fournir des données de requête essentielles (user-agent, adresse INET, méthode, URI, version, en-têtes, descripteur de fichier socket et peut-être quelque chose que j'oublie) à l'interpréteur PHP pour accéder aux définitions natives et implémentations de ces variables et fonctions? Ou est-ce une pratique standard pour l'auteur du serveur de les définir et de les mettre en œuvre lui-même?

Le plus important, si je dois implémenter ces choses moi-même, comment mapper php://input et php://output au descripteur de fichier correct et autorisations?

Merci à tout le monde. Toute aide est appréciée.




Related