PyHP
PyHP 3.1
PYHP ist ein Paket, mit dem Sie Python -Code wie PHP -Code in HTML und andere Textdateien einbetten können. Ein Skript wird entweder durch die Konfiguration des Webservers oder eines Schebangs aufgerufen und kommuniziert über WSGI mit dem Webserver.
<?pyhp und ?> enthaltenexit und sys.exit das Skript beenden, nicht den gesamten Serveratexit Registrierte Funktionen werden erst aufgerufen, wenn der Server -Herunterfahren im WSGI -Modus abgerufen wirdregister_shutdown_function ausgeführt werdenpyhp-clipyhp-cgipyhp.wsgi.appspyhp.wsgi.util -Submodul enthalten sind$_SERVER als SERVER$_REQUEST als REQUEST$_GET as GET$_POST as POST$_COOKIE als COOKIE$_FILES als FILEShttp_response_codeheaderheaders_listheader_removeheaders_sentheader_register_callback mit einem zusätzlichen Keyword -Argument replace , um mehrere Rückrufe zu registrierensetcookie mit einem zusätzlichen samesite -Keyword -Argumentsetrawcookie auch mit einem zusätzlichen samesite -Keyword -Argumentregister_shutdown_function mit umgekehrter Callback -Ausführungsreihenfolge (LIFO)opcache_compile_file , die Ausnahmen auslöst, anstatt False zurückzugeben, wenn die Kompilierung fehlschlägtopcache_invalidateopcache_is_script_cachedopcache_reset-c oder --config -Cli -Argument gegeben wirdPYHPCONFIG -Umgebungsvariable hingewiesen wurde~/.config/pyhp.toml/etc/pyhp.tomlRuntimeError , wenn nicht gefunden wirdpyhp.backends enthaltenpyhp-backend oder python3 -m pyhp.backends CLI -Befehle interagiert werden In diesem Abschnitt wird angezeigt, wie Sie PYHP auf Ihrem Computer installieren. Wenn Sie PYHP -Skripte auf Ihrer Website per CGI verwenden möchten, müssen Sie CGI zusätzlich in Ihrem Webserver aktivieren.
python3 setup.py bdist_wheelPYHPCONFIG Environ ein oder kopieren Sie PYHP.TOML in einen der Konfigurationsdateistellen, um die CLI -Befehle zu verwendendebian/build_deb.sh im Stammverzeichnis des Projekts aus.sudo dpkg -i python3-pyhp-core_{version}-1_all.deb installierenpython3-toml und python3-werkzeug für die Verwendung der CLI-Befehle installiert sindpyhp-backend clear wird im Deinstallieren oder Upgrade ausgeführt, wenn das Backend ein Cache ist. Beachten Sie dies, wenn Sie Pfade verwenden, ~ für den Datei-Cache enthaltenPYHPCONFIG -Umgebung fest oder kopieren Sie PYHP.toml an einen der Konfigurationsdateiortepyhp-* -Fands verwenden import sys
import re
import tempfile
from wsgiref . simple_server import make_server
from pyhp . compiler import parsers , util , generic
from pyhp . backends . files import Directory
from pyhp . wsgi . apps import ConcurrentWSGIApp
from pyhp . wsgi . proxys import LocalStackProxy
from pyhp . wsgi . interfaces . php import PHPWSGIInterfaceFactory
from pyhp . wsgi . interfaces . phputils import UploadStreamFactory
compiler = util . Compiler (
parsers . RegexParser (
re . compile ( r"<?pyhps" ),
re . compile ( r"s?>" )
),
util . Dedenter (
generic . GenericCodeBuilder ( - 1 )
)
)
interface_factory = PHPWSGIInterfaceFactory (
200 ,
[( "Content-type" , "text/html; charset= " UTF-8 " " )],
None ,
( "GET" , "POST" , "COOKIE" ),
8000000 ,
UploadStreamFactory (
tempfile . gettempdir (),
20
)
)
sys . stdout = proxy = LocalStackProxy ( sys . stdout )
with Directory ( "." , compiler ) as backend :
with ConcurrentWSGIApp ( "tests/embedding/syntax.pyhp" , backend , proxy , interface_factory ) as app :
with make_server ( "" , 8000 , app ) as httpd :
httpd . serve_forever () from wsgiref . simple_server import make_server
import toml
from pyhp . wsgi . util import ConcurrentWSGIAppFactory
config = toml . load ( "pyhp.toml" )
with ConcurrentWSGIAppFactory . from_config ( config ) as factory :
with factory . app ( "tests/embedding/syntax.pyhp" ) as app :
with make_server ( "" , 8000 , app ) as httpd :
httpd . serve_forever ()