Die aktuellen Sourcen und die Dokumentation befindet sich auf: https://github.com/spiderbytes/SpiderBite
Was ist das hier?
SpiderBite ist ein Präprozessor für SpiderBasic, der es ermöglicht, in einem Code Bereiche zu markieren, die auf dem WebServer ausgeführt werden (der sogenannte ServerCode (PB2Web-User werden es kennen )).
Wie bekannt ist, kann und darf der von SpiderBasic generierte Code nicht direkt auf die Hardware des WebServers zugreifen. Somit ist es nicht möglich, direkte Datenbankabfragen, Filesystemzugriffe oder sonstiges aus SpiderBasic auszuführen. Die bisherige Vorgehensweise ist es, eine serverseitige Komponente zu programmieren (sei es als CGI oder PHP- (ASP-, Python-, ...) Script) und diese Komponente dann in SpiderBasic mittels HttpRequest() aufzurufen. Das funktioniert eigentlich ganz gut, ist aber meines Erachtens nicht besonders komfortabel. Aus diesem Grund habe ich mich entschlossen, SpiderBite zu entwickeln.
Ein simples Beispiel
Code: Alles auswählen
EnablePbCgi
; der Code in diesem Block wird auf dem Server ausgeführt
ProcedureDLL.s myPbCgiProcedure()
ProcedureReturn "Hello from myPbCgiProcedure"
EndProcedure
DisablePbCgi
Debug myPbCgiProcedure()
Wichtig ist, dass die auszuführende Prozedur als ProcedureDLL() angegeben wird. Somit ist sie clientseitig aufrufbar.
Neben der Möglichkeit, PureBasic-CGI zu erstellen stehen auch Blockbereiche für PHP, ASP und ASPX zur Verfügung. Ein Beispiel für PHP:
Code: Alles auswählen
EnablePHP
ProcedureDLL myPhpProcedure()
! return "Hello from myPhpProcedure";
EndProcedure
DisablePHP
Debug myPhpProcedure()
Es ist möglich unterschiedliche Blockbereiche in einem Source zu nutzen (hier: PbCgi und PHP):
Code: Alles auswählen
EnablePbCgi
ProcedureDLL.s myPbCgiProcedure()
ProcedureReturn "Hello from myPbCgiProcedure"
EndProcedure
DisablePbCgi
EnablePHP
ProcedureDLL.s myPhpProcedure()
! return "Hello from myPhpProcedure";
EndProcedure
DisablePHP
Debug myPbCgiProcedure()
Debug myPhpProcedure()
Have fun ... Peter
// Edit: Beitrag auf wesentliche Sachen gekürzt. Wer mehr wissen möchte, schaut sich den GitHub-Link an.
// Edit2: Codebeispiele angepasst, da ab der Version vom 01.10.2017 zwischen öffentlichen und privaten Prozeduren unterschieden wird.