EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

make_methodp - Online in der Cloud

Führen Sie make_methodp im kostenlosen OnWorks-Hosting-Provider über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl make_methodp, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


make_method - Verwandeln Sie Perl-Code in eine XML-Beschreibung für RPC::XML::Server

ZUSAMMENFASSUNG


make_method --name=system.identification --helptext='System-ID-String'
--signature=string --code=ident.pl --output=ident.xpl

make_method --base=Methoden/Identifikation

BESCHREIBUNG


Dies ist ein einfaches Werkzeug zum Erstellen der beschreibenden XML-Dateien zum Angeben von Methoden
veröffentlicht von an RPC::XML::Server-basierter Server.

Wenn ein Server so geschrieben ist, dass die von ihm exportierten Methoden (oder veröffentlicht) sind ein Teil der
Code ausführen, dann ist dieses Tool nicht erforderlich. In Fällen, in denen der Server jedoch möglicherweise
getrennt und unterscheidbar vom Code sein (z. B. ein Apache-basierter RPC-Server) und angeben
die Routinen und das Ausfüllen der unterstützenden Informationen können mühsam sein.

Eine Lösung, die RPC::XML::Server Paketangebote ist das Mittel zum Laden von Veröffentlichungen
Code aus einer externen Datei. Die Datei ist in einem einfachen XML-Dialekt, der die
nach außen sichtbarer Name, die Methodensignaturen, der Hilfetext und der Code selbst. Diese
Dateien können manuell erstellt werden, oder dieses Tool kann als Hilfe verwendet werden.

ERFORDERLICH ARGUMENTE


Es sind keine Argumente erforderlich, aber wenn nicht genügend Optionen übergeben werden, werden Sie es tun
durch eine Fehlermeldung informiert werden.

OPTIONAL


Das Tool erkennt die folgenden Optionen:

--help
Druckt eine kurze Zusammenfassung der Optionen.

--name=ZEICHENFOLGE
Gibt den veröffentlichten Namen der zu codierenden Methode an. So heißt es
wird für Clients des Servers sichtbar sein.

--namespace=ZEICHENFOLGE
Gibt einen Namensraum an, in dem der Code der Methode ausgewertet wird, wenn die XPL
Datei wird von einer Serverinstanz geladen.

--type=STRING
Geben Sie den Typ für die resultierende Datei an. "Typ" bezieht sich hier darauf, ob der Container
-Tag, das in der resultierenden XML verwendet wird, gibt a . an Verfahren oder eine Methode. Der Standardwert ist
Methode. Die Zeichenfolge wird unabhängig von der Groß-/Kleinschreibung behandelt und nur das erste Zeichen ("m" oder
"p") wird tatsächlich betrachtet.

--version=STRING
Geben Sie einen Versionsstempel für die Coderoutine an.

--versteckt
Wenn dies passe ist, enthält die resultierende Datei ein Tag, das dem Server-Daemon mitteilt
die Routine nicht durch irgendwelche Introspektion-Schnittstellen sichtbar zu machen.

--signature=ZEICHENFOLGE [ --signature=ZEICHENFOLGE ... ]
Geben Sie eine oder mehrere Signaturen für die Methode an. Signaturen sollten die Typnamen sein wie
in der Dokumentation in RPC::XML dargestellt, wobei die Elemente durch einen Doppelpunkt getrennt sind. Du
können sie auch durch Leerzeichen trennen, wenn Sie das Argument in Anführungszeichen setzen. Diese Option kann sein
mehrfach angegeben, da einige Methoden mehrere Signaturen haben können.

--helptext=STRING
Geben Sie den Hilfetext für die Methode als einfachen String in der Befehlszeile an. Nicht
geeignet für furchtbar lange Hilfssaiten.

--helpfile=DATEI
Lesen Sie den Hilfetext zur Methode aus der angegebenen Datei.

--code=DATEI
Lesen Sie den eigentlichen Code für die Routine aus der angegebenen Datei. Wenn diese Option nicht verfügbar ist
gegeben, wird der Code aus dem Standard-Eingabedateideskriptor gelesen.

--output=DATEI
Schreiben Sie die resultierende XML-Darstellung in die angegebene Datei. Wenn diese Option nicht verfügbar ist
gegeben, dann geht die Ausgabe an den Standard-Ausgabedateideskriptor.

--base=NAME
Dies ist eine spezielle „All-in-One“-Option. Bei Übergabe werden alle anderen Optionen ignoriert.

Der Wert dient als Basiselement zum Lesen von Informationen aus einer Datei namens
BASIS.Base. Diese Datei enthält Angaben zu Name, Version, verstecktem Status,
Signaturen und andere Methodeninformationen. Jede Zeile der Datei sollte wie eine von . aussehen
die folgende:

Name: STRING
Geben Sie den Namen der zu veröffentlichenden Routine an. Wenn diese Zeile nicht erscheint,
dann der Wert von --Base Argument mit allen entfernten Verzeichniselementen wird
benutzt.

Version: STRING
Geben Sie einen Versionsstempel für die Funktion an. Wenn keine Zeile mit diesem Muster übereinstimmt
vorhanden, wird kein Versions-Tag geschrieben.

Versteckt: STRING
Falls vorhanden, STRING sollte entweder "ja" oder "nein" sein (Fall nicht wichtig). Wenn es ist
"ja", dann wird die Methode als vor jeder Introspektion-API verborgen markiert.

Signatur: STRING
Diese Zeile kann mehr als einmal vorkommen und wird kumulativ behandelt. Andere Optionen
überschreiben vorherige Werte, wenn sie mehr als einmal vorkommen. Der Teil nach dem
Der Teil "Signatur:" wird als veröffentlichte Signatur für die Methode angesehen, mit
Elemente durch Leerzeichen getrennt. Jede Methode muss mindestens eine Signatur haben, also
das Fehlen eines führt zu einem Fehler.

Hilfedatei: STRING
Gibt die Datei an, aus der der Hilfetext gelesen werden soll. Es ist kein Fehler, wenn keine Hilfe
Text angegeben.

Codedatei: STRING
Gibt die Datei an, aus der der Code gelesen werden soll. Es wird angenommen, dass der Code Perl ist, und
wird in der resultierenden Datei als solche gekennzeichnet.

Codedatei[lang]: Schnur
Gibt die Datei an, aus der der Code gelesen werden soll, und identifiziert gleichzeitig die Sprache
dass der Code enthalten ist. Dies ermöglicht die Erstellung von a XPL Datei, die enthält
mehrere Sprachimplementierungen der angegebenen Methode oder Prozedur.

Alle anderen Zeilen als die obigen Muster werden ignoriert.

Wenn kein Code gelesen wurde, wird das Tool mit einer Fehlermeldung beendet.

Die Ausgabe wird geschrieben in BASIS.xpl, wobei die Pfadinformationen erhalten bleiben, damit die
resultierende Datei befindet sich direkt neben den Quelldateien. Dies ermöglicht Konstrukte wie:

make_method --base=Methoden/Introspektion

FILE FORMAT UND DTD


Das Dateiformat für diese veröffentlichten Routinen ist ein sehr einfacher XML-Dialekt. Das ist weniger
Da XML ein ideales Format ist, ist es die Verfügbarkeit des Parsers, da die
RPC::XML::Server -Klasse hat den Parser-Code bereits im Kern. Ein komplett neues schreiben
Format hätte nichts gebracht.

Die Dokumenttyp-Deklaration für das Format kann wie folgt zusammengefasst werden:

<!ELEMENT proceduredef (name, namespace?, version?, hidden?,
Signatur+, Hilfe?, Code)>
<!ELEMENT methoddef (name, namespace?, version?, hidden?,
Signatur+, Hilfe?, Code)>
<!ELEMENT functiondef (name, namespace?, version?, hidden?,
Signatur+, Hilfe?, Code)>









Die der Distribution beiliegende Datei "rpc-method.dtd" enthält zusätzlich einige Kommentare
zur tatsächlichen Spezifikation.

Eine Datei ist (vorerst) auf eine Definition beschränkt. Dies beginnt mit der Eröffnung
Stichworte " ", " " oder " ". Darauf folgt genau ein
" " Container, der den Methodennamen angibt, einen optionalen Versionsstempel, einen optionalen
Ausblenden-vor-Introspektion-Flag, ein oder mehrere " " Container mit Signaturen,
ein optionales " "-Container mit dem Hilfetext, dann der " " container with the
eigentlicher Programmcode. Der gesamte Text sollte Entity-Codierung für die Symbole verwenden:

& C<&> (kaufmännisches Und)
E C<<> (weniger als)
E C<>> (größer als)

Der Parsing-Prozess innerhalb der Serverklasse dekodiert die Entitäten. Dinge zu machen
einfacher, das Tool scannt alle Textelemente und codiert die oben genannten Entitäten, bevor es die
Datei.

Das Normen of Code
Das ist nicht "Programmierung 101", noch ist es "Perl für Etwas Schwach". Der Code, der ist
über eine der "*.xpl"-Dateien übergeben wird nahezu unverändert an "eval" übergeben
(siehe unten). Somit kann schlecht geschriebener oder bösartiger Code sehr gut verheerende Auswirkungen auf Ihr
Server. Dies liegt nicht am Servercode. Der Preis für die Flexibilität dieses Systems
Angebote liegt in der Verantwortung des Entwicklers, um sicherzustellen, dass der Code
geprüft und sicher.

Code selbst wird so wörtlich wie möglich behandelt. Einige Änderungen können serverseitig erfolgen,
da es den Code zum Erstellen einer anonymen Unterroutine geeignet macht. Die make_method
Tool versucht, einen "CDATA"-Abschnitt zu verwenden, um den Code in das XML-Dokument einzubetten
dass keine Notwendigkeit besteht, Entitäten oder dergleichen zu codieren. Dies ermöglicht die resultierenden *.xpl
mit "perl -cx" syntaktisch testbar. Sie können dies unterstützen, indem Sie sicherstellen, dass der Code
keine der beiden folgenden Zeichenfolgen enthält:

]]>

__DATEN__

Der erste ist der Terminator "CDATA". Wenn es natürlich im Code vorkommt, würde es auslösen
das Ende des Abschnitts im Parser. Das zweite ist das bekannte Perl-Token, das eingefügt wird
damit der Rest des XML-Dokuments den Perl-Parser nicht überfüllt.

Beispiele:


Das RPC::XML Distribution enthält eine Reihe von Standardmethoden in einem Unterverzeichnis namens
(kryptisch genug) "Methoden". Jeder von diesen wird als eine Menge von ("*.base",
"*.code", "*.help")-Dateien. Die Datei Makefile.PL konfiguriert das resultierende Makefile wie
dass diese verwendet werden, um mit diesem Tool "*.xpl"-Dateien zu erstellen und diese dann zu installieren.

DIAGNOSE


Die meisten Probleme treten in Form von Fehlermeldungen auf, gefolgt von einem abrupten Beenden.

EXIT STATUS


Das Tool wird bei Erfolg mit dem Status 0 beendet, andernfalls mit 255.

VORSICHTEN


Ich mag diesen Ansatz zur Spezifizierung der Methoden nicht sehr, aber meine anderen Ideen gefielen mir sogar
Weniger.

Verwenden Sie make_methodp online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad