ນີ້ແມ່ນຄໍາສັ່ງ make_methodp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
make_method - ປ່ຽນລະຫັດ Perl ໃຫ້ເປັນຄໍາອະທິບາຍ XML ສໍາລັບ RPC::XML::Server
ສະຫຼຸບສັງລວມ
make_method --name=system.identification --helptext='System ID string'
--signature=string --code=ident.pl --output=ident.xpl
make_method --base=methods/ການກໍານົດ
ລາຍລະອຽດ
ນີ້ແມ່ນເປັນເຄື່ອງມືງ່າຍດາຍເພື່ອສ້າງໄຟລ໌ອະທິບາຍ XML ສໍາລັບການລະບຸວິທີການທີ່ຈະເປັນ
ຈັດພີມມາໂດຍ RPC::XML::ເຊີບເວີ-based server.
ຖ້າເຄື່ອງແມ່ຂ່າຍຖືກຂຽນເຊັ່ນວ່າວິທີການທີ່ມັນສົ່ງອອກ (ຫຼື ເຜີຍແຜ່) ແມ່ນສ່ວນຫນຶ່ງຂອງ
ແລ່ນລະຫັດ, ຫຼັງຈາກນັ້ນບໍ່ຈໍາເປັນຕ້ອງມີເຄື່ອງມືນີ້. ຢ່າງໃດກໍຕາມ, ໃນກໍລະນີທີ່ເຄື່ອງແມ່ຂ່າຍອາດຈະ
ແຍກແລະແຕກຕ່າງຈາກລະຫັດ (ເຊັ່ນເຄື່ອງແມ່ຂ່າຍ RPC ທີ່ອີງໃສ່ Apache), ການລະບຸ
ປົກກະຕິແລະການຕື່ມຂໍ້ມູນສະຫນັບສະຫນູນສາມາດ cumbersome.
ການແກ້ໄຂຫນຶ່ງທີ່ RPC::XML::ເຊີບເວີ ການສະເຫນີຊຸດແມ່ນວິທີການໂຫຼດທີ່ສາມາດເຜີຍແຜ່ໄດ້
ລະຫັດຈາກໄຟລ໌ພາຍນອກ. ໄຟລ໌ແມ່ນຢູ່ໃນພາສາ XML ງ່າຍໆທີ່ອະທິບາຍຢ່າງຊັດເຈນ
ຊື່ທີ່ເຫັນໄດ້ຈາກພາຍນອກ, ລາຍເຊັນວິທີການ, ຂໍ້ຄວາມຊ່ວຍເຫຼືອ ແລະລະຫັດຕົວມັນເອງ. ເຫຼົ່ານີ້
ໄຟລ໌ອາດຈະຖືກສ້າງຂື້ນດ້ວຍຕົນເອງ, ຫຼືເຄື່ອງມືນີ້ອາດຈະຖືກໃຊ້ເປັນຜູ້ຊ່ວຍ.
ຕ້ອງການ ການໂຕ້ຖຽງ
ບໍ່ມີການໂຕ້ຖຽງທີ່ຕ້ອງການ, ແຕ່ຖ້າບໍ່ມີທາງເລືອກທີ່ພຽງພໍຜ່ານທ່ານ
ໄດ້ຮັບການບອກໂດຍຂໍ້ຄວາມຜິດພາດ.
OPTIONS
ເຄື່ອງມືຮັບຮູ້ທາງເລືອກຕໍ່ໄປນີ້:
- ຊ່ວຍ
ພິມບົດສະຫຼຸບສັ້ນຂອງທາງເລືອກ.
--name=STRING
ລະບຸຊື່ທີ່ເຜີຍແຜ່ຂອງວິທີການທີ່ຖືກເຂົ້າລະຫັດ. ນີ້ແມ່ນຊື່ທີ່ມັນ
ຈະເຫັນໄດ້ໂດຍລູກຄ້າຂອງເຄື່ອງແມ່ຂ່າຍ.
--namespace=STRING
ລະບຸ namespace ທີ່ລະຫັດຂອງວິທີການຈະໄດ້ຮັບການປະເມີນໃນ, ໃນເວລາທີ່ XPL
ໄຟລ໌ຖືກໂຫລດໂດຍເຊີບເວີຕົວຢ່າງ.
--type=STRING
ລະບຸປະເພດສໍາລັບໄຟລ໌ຜົນໄດ້ຮັບ. "ປະເພດ" ໃນທີ່ນີ້ຫມາຍເຖິງວ່າບັນຈຸ
tag ທີ່ໃຊ້ໃນ XML ຜົນໄດ້ຮັບຈະລະບຸ a ລະບຽບການ ຫຼື ວິທີການ. ຄ່າເລີ່ມຕົ້ນແມ່ນ
ວິທີການ. ສະຕຣິງຖືກປະຕິບັດຕໍ່ກໍລະນີທີ່ບໍ່ຂຶ້ນກັບຕົວຕົນ, ແລະມີພຽງແຕ່ຕົວອັກສອນທໍາອິດ ("m" ຫຼື
"p") ແມ່ນຖືວ່າຕົວຈິງແລ້ວ.
--version=STRING
ລະບຸສະແຕມສະບັບສໍາລັບລະຫັດປະຈໍາ.
-- ເຊື່ອງໄວ້
ຖ້າອັນນີ້ຜ່ານໄປ, ໄຟລ໌ຜົນໄດ້ຮັບຈະປະກອບມີແທັກທີ່ບອກ server daemon
ເພື່ອບໍ່ໃຫ້ຄວາມເປັນປົກກະຕິສາມາດເຫັນໄດ້ໂດຍຜ່ານການໂຕ້ຕອບ introspection ໃດ.
--signature=STRING [ --signature=STRING ... ]
ລະບຸໜຶ່ງ ຫຼືຫຼາຍລາຍເຊັນສຳລັບວິທີການ. ລາຍເຊັນຄວນເປັນຊື່ປະເພດ
ວາງໄວ້ໃນເອກະສານໃນ RPC::XML, ທີ່ມີອົງປະກອບທີ່ແຍກອອກໂດຍຈໍ້າສອງເມັດ. ເຈົ້າ
ອາດຈະແຍກພວກມັນດ້ວຍຊ່ອງຫວ່າງ, ຖ້າທ່ານອ້າງເຖິງການໂຕ້ຖຽງ. ທາງເລືອກນີ້ອາດຈະເປັນ
ລະບຸຫຼາຍກວ່າຫນຶ່ງຄັ້ງ, ເນື່ອງຈາກວ່າບາງວິທີການອາດຈະມີລາຍເຊັນຫຼາຍ.
--helptext=STRING
ລະບຸຂໍ້ຄວາມຊ່ວຍເຫຼືອສຳລັບວິທີການເປັນສະຕຣິງງ່າຍໆໃນແຖວຄຳສັ່ງ. ບໍ່ແມ່ນ
ເຫມາະສໍາລັບສາຍການຊ່ວຍເຫຼືອຍາວ terribly.
--helpfile=FILE
ອ່ານຂໍ້ຄວາມຊ່ວຍເຫຼືອສໍາລັບວິທີການຈາກໄຟລ໌ທີ່ລະບຸໄວ້.
--code=FILE
ອ່ານລະຫັດຕົວຈິງສໍາລັບການປົກກະຕິຈາກໄຟລ໌ທີ່ລະບຸໄວ້. ຖ້າທາງເລືອກນີ້ບໍ່ແມ່ນ
ໃຫ້, ລະຫັດຖືກອ່ານຈາກຕົວອະທິບາຍໄຟລ໌ວັດສະດຸປ້ອນມາດຕະຖານ.
--output=FILE
ຂຽນການສະແດງຜົນ XML ໄປຫາໄຟລ໌ທີ່ລະບຸ. ຖ້າທາງເລືອກນີ້ບໍ່ແມ່ນ
ໃຫ້, ຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບໄປຫາຕົວອະທິບາຍໄຟລ໌ຜົນຜະລິດມາດຕະຖານ.
--base=NAME
ນີ້ແມ່ນທາງເລືອກພິເສດ, "ທັງຫມົດໃນຫນຶ່ງ". ຖ້າຜ່ານ, ທາງເລືອກອື່ນທັງໝົດຈະຖືກລະເລີຍ.
ຄ່າຖືກນໍາໃຊ້ເປັນອົງປະກອບພື້ນຖານສໍາລັບການອ່ານຂໍ້ມູນຈາກໄຟລ໌ທີ່ມີຊື່
ພື້ນຖານ.ຖານ. ໄຟລ໌ນີ້ຈະມີສະເພາະຂອງຊື່, ສະບັບ, ສະຖານະພາບທີ່ເຊື່ອງໄວ້,
ລາຍເຊັນ ແລະຂໍ້ມູນວິທີການອື່ນໆ. ແຕ່ລະແຖວຂອງໄຟລ໌ຄວນຈະຄ້າຍຄືຫນຶ່ງຂອງ
ຕໍ່ໄປນີ້:
ຊື່ຂອງທ່ານ: ຄັກ
ລະບຸຊື່ຂອງສິ່ງທີ່ເຮັດປະຈຳທີ່ກຳລັງຖືກເຜີຍແຜ່. ຖ້າເສັ້ນນີ້ບໍ່ປາກົດ,
ຫຼັງຈາກນັ້ນ, ມູນຄ່າຂອງ --ຖານ ການໂຕ້ຖຽງກັບອົງປະກອບໄດເລກະທໍລີທັງຫມົດທີ່ຖືກໂຍກຍ້າຍອອກຈະເປັນ
ໃຊ້ແລ້ວ.
Version: ຄັກ
ສະໜອງສະແຕມສະບັບສຳລັບຟັງຊັນ. ຖ້າບໍ່ມີເສັ້ນກົງກັບຮູບແບບນີ້
ປະຈຸບັນ, ບໍ່ມີແທັກສະບັບໃດຈະຖືກຂຽນ.
ເຊື່ອງໄວ້: ຄັກ
ຖ້າມີ, ຄັກ ຄວນຈະເປັນ "ແມ່ນ" ຫຼື "ບໍ່" (ກໍລະນີບໍ່ສໍາຄັນ). ຖ້າມັນເປັນ
"ແມ່ນ", ຫຼັງຈາກນັ້ນວິທີການຖືກຫມາຍທີ່ຈະເຊື່ອງໄວ້ຈາກ API introspection ໃດ.
ລາຍເຊັນ: ຄັກ
ເສັ້ນນີ້ອາດຈະປາກົດຫຼາຍກວ່າຫນຶ່ງຄັ້ງ, ແລະຖືກປະຕິບັດຢ່າງສະສົມ. ທາງເລືອກອື່ນ
ລົບລ້າງຄ່າທີ່ຜ່ານມາຖ້າພວກມັນປາກົດຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ສ່ວນດັ່ງຕໍ່ໄປນີ້
"ລາຍເຊັນ:" ສ່ວນຫນຶ່ງແມ່ນເອົາເປັນລາຍເຊັນທີ່ເຜີຍແຜ່ສໍາລັບວິທີການ, ກັບ
ອົງປະກອບທີ່ແຍກອອກໂດຍຊ່ອງຫວ່າງ. ແຕ່ລະວິທີຕ້ອງມີຢ່າງນ້ອຍໜຶ່ງລາຍເຊັນ, ດັ່ງນັ້ນ
ການຂາດການໃດໆຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດ.
ໄຟລ໌ຊ່ວຍເຫຼືອ: ຄັກ
ລະບຸໄຟລ໌ທີ່ຈະອ່ານຂໍ້ຄວາມຊ່ວຍເຫຼືອ. ມັນບໍ່ແມ່ນຄວາມຜິດພາດຖ້າບໍ່ມີການຊ່ວຍເຫຼືອ
ຂໍ້ຄວາມຖືກລະບຸ.
ລະຫັດໄຟລ໌: ຄັກ
ລະບຸໄຟລ໌ທີ່ຈະອ່ານລະຫັດ. ລະຫັດແມ່ນສົມມຸດວ່າ Perl, ແລະ
ຈະຖືກ tagged ເຊັ່ນນັ້ນໃນໄຟລ໌ຜົນໄດ້ຮັບ.
Codefile[lang]: string
ລະບຸໄຟລ໌ທີ່ຈະອ່ານລະຫັດ, ໃນຂະນະທີ່ຍັງລະບຸພາສາ
ວ່າລະຫັດຢູ່ໃນ. ນີ້ອະນຸຍາດໃຫ້ສ້າງ a XPL ໄຟລ໌ທີ່ປະກອບມີ
ການຈັດຕັ້ງປະຕິບັດຫຼາຍພາສາຂອງວິທີການ ຫຼືຂັ້ນຕອນທີ່ໃຫ້ໄວ້.
ສາຍອື່ນນອກເໜືອໄປຈາກຮູບແບບຂ້າງເທິງແມ່ນຖືກລະເລີຍ.
ຖ້າບໍ່ມີລະຫັດຖືກອ່ານ, ຫຼັງຈາກນັ້ນເຄື່ອງມືຈະອອກດ້ວຍຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ.
ຜົນຜະລິດແມ່ນຂຽນໃສ່ ພື້ນຖານ.xpl, ຮັກສາຂໍ້ມູນເສັ້ນທາງເພື່ອວ່າ
ໄຟລ໌ຜົນໄດ້ຮັບແມ່ນຢູ່ຄຽງຂ້າງໄຟລ໌ແຫຼ່ງ. ນີ້ອະນຸຍາດໃຫ້ການກໍ່ສ້າງເຊັ່ນ:
make_method --base=ວິທີການ / introspection
ເອກະສານ ຮູບແບບ ແລະ ບໍລິສັດດີເອ
ຮູບແບບໄຟລ໌ສໍາລັບລາຍການທີ່ເຜີຍແຜ່ເຫຼົ່ານີ້ເປັນພາສາ XML ທີ່ງ່າຍດາຍຫຼາຍ. ນີ້ແມ່ນຫນ້ອຍ
ເນື່ອງຈາກ XML ເປັນຮູບແບບທີ່ເຫມາະສົມກ່ວາມັນແມ່ນຄວາມພ້ອມຂອງ parser, ເນື່ອງຈາກ
RPC::XML::ເຊີບເວີ class ຈະມີລະຫັດ parser ຢູ່ໃນຫຼັກແລ້ວ. ການຂຽນໃຫມ່ຫມົດ
ຮູບແບບຈະບໍ່ໄດ້ຮັບຫຍັງ.
ການປະກາດປະເພດເອກະສານສໍາລັບຮູບແບບສາມາດສະຫຼຸບໄດ້ໂດຍ:
<!ELEMENT proceduredef (ຊື່, namespace?, version?, ເຊື່ອງໄວ້?,
ລາຍເຊັນ+, ຊ່ວຍເຫຼືອ?, ລະຫັດ)>
<!ELEMENT methoddef (ຊື່, namespace?, version?, ເຊື່ອງໄວ້?,
ລາຍເຊັນ+, ຊ່ວຍເຫຼືອ?, ລະຫັດ)>
<!ELEMENT functiondef (ຊື່, namespace?, version?, ເຊື່ອງໄວ້?,
ລາຍເຊັນ+, ຊ່ວຍເຫຼືອ?, ລະຫັດ)>
ໄຟລ໌ "rpc-method.dtd" ທີ່ມາພ້ອມກັບການແຈກຢາຍມີບາງຄໍາເຫັນເພີ່ມເຕີມ
ກັບສະເພາະຕົວຈິງ.
ໄຟລ໌ແມ່ນ (ສໍາລັບໃນປັດຈຸບັນ) ຈໍາກັດຫນຶ່ງຄໍານິຍາມ. ນີ້ແມ່ນເລີ່ມຕົ້ນໂດຍການເປີດຫນຶ່ງ
tags " ", " "ຫຼື" ". ນີ້ແມ່ນປະຕິບັດຕາມໂດຍແນ່ນອນຫນຶ່ງ
" " container ການລະບຸຊື່ວິທີການ, ສະແຕມສະບັບທາງເລືອກ, ເປັນທາງເລືອກ
ທຸງເຊື່ອງຈາກ introspection, ຫນຶ່ງຫຼືຫຼາຍ " "ຕູ້ຄອນເທນເນີທີ່ລະບຸລາຍເຊັນ,
ທາງເລືອກ " " container with the help , then the " container with the
ລະຫັດໂຄງການຕົວຈິງ. ຂໍ້ຄວາມທັງໝົດຄວນໃຊ້ການເຂົ້າລະຫັດ entity ສໍາລັບສັນຍາລັກ:
& C<&> (ampersand)
E C<<> (ຫນ້ອຍກວ່າ)
E C<>> (ໃຫຍ່ກວ່າ)
ຂະບວນການວິເຄາະພາຍໃນຫ້ອງຮຽນເຊີບເວີຈະຖອດລະຫັດຫົວໜ່ວຍຕ່າງໆ. ເພື່ອເຮັດໃຫ້ສິ່ງຕ່າງໆ
ງ່າຍຂຶ້ນ, ເຄື່ອງມືຈະສະແກນອົງປະກອບຂໍ້ຄວາມທັງໝົດ ແລະເຂົ້າລະຫັດໜ່ວຍງານຂ້າງເທິງກ່ອນທີ່ຈະຂຽນ
ຍື່ນ.
ໄດ້ ຂໍ້ມູນ of ລະຫັດ
ນີ້ບໍ່ແມ່ນ "ການຂຽນໂປຼແກຼມ 101 ", ຫຼືບໍ່ແມ່ນ "Perl ສໍາລັບການ ໄດ້ ບາງຢ່າງ ມືດມົວ". ລະຫັດທີ່ເປັນ
ສົ່ງຜ່ານໜຶ່ງໃນໄຟລ໌ "*.xpl" ຈະຖືກສົ່ງຜ່ານໄປຫາ "eval" ໂດຍບໍ່ມີການດັດແກ້
(ເບິ່ງຂ້າງລຸ່ມນີ້). ດັ່ງນັ້ນ, ລະຫັດທີ່ຂຽນບໍ່ດີ ຫຼືເປັນອັນຕະລາຍສາມາດສ້າງຄວາມເສຍຫາຍໃຫ້ກັບເຈົ້າໄດ້ເປັນຢ່າງດີ
ເຊີບເວີ. ນີ້ບໍ່ແມ່ນຄວາມຜິດຂອງລະຫັດເຊີບເວີ. ລາຄາຂອງຄວາມຍືດຫຍຸ່ນຂອງລະບົບນີ້
ຂໍ້ສະເຫນີແມ່ນຄວາມຮັບຜິດຊອບໃນສ່ວນຂອງຜູ້ພັດທະນາເພື່ອຮັບປະກັນວ່າລະຫັດແມ່ນ
ທົດສອບແລະປອດໄພ.
ລະຫັດຕົວມັນເອງຖືກປະຕິບັດເປັນ verbatim ທີ່ເປັນໄປໄດ້. ການແກ້ໄຂບາງອັນອາດຈະເກີດຂຶ້ນຢູ່ຂ້າງເຊີບເວີ,
ເນື່ອງຈາກວ່າມັນເຮັດໃຫ້ລະຫັດທີ່ເຫມາະສົມສໍາລັບການສ້າງ subroutine ທີ່ບໍ່ເປີດເຜີຍຊື່ຈາກ. ໄດ້ make_method
ເຄື່ອງມືຈະພະຍາຍາມໃຊ້ສ່ວນ "CDATA" ເພື່ອຝັງລະຫັດພາຍໃນເອກະສານ XML, ດັ່ງນັ້ນ
ວ່າບໍ່ຈໍາເປັນຕ້ອງເຂົ້າລະຫັດຫນ່ວຍງານຫຼືສິ່ງດັ່ງກ່າວ. ນີ້ອະນຸຍາດໃຫ້ສໍາລັບຜົນໄດ້ຮັບ *.xpl
ໄຟລ໌ທີ່ຈະເປັນ syntax-testable ກັບ "perl -cx". ທ່ານສາມາດຊ່ວຍໄດ້ໂດຍການຮັບປະກັນວ່າລະຫັດ
ບໍ່ມີທັງສອງລຳດັບຕົວອັກສອນຕໍ່ໄປນີ້:
]]>
__ຂໍ້ມູນ__
ທໍາອິດແມ່ນ "CDATA" terminator. ຖ້າມັນເກີດຂື້ນຕາມທໍາມະຊາດໃນລະຫັດ, ມັນຈະກະຕຸ້ນ
ສ່ວນທ້າຍຂອງພາກໃນຕົວວິເຄາະ. ອັນທີສອງແມ່ນ Perl token ທີ່ຄຸ້ນເຄີຍ, ເຊິ່ງຖືກໃສ່
ດັ່ງນັ້ນສ່ວນທີ່ເຫຼືອຂອງເອກະສານ XML ບໍ່ clutter ເຖິງ Perl parser.
ຕົວຢ່າງ
ໄດ້ RPC::XML ການແຈກຢາຍມາພ້ອມກັບວິທີການເລີ່ມຕົ້ນຈໍານວນຫນຶ່ງໃນ subdirectory ທີ່ເອີ້ນວ່າ
(cryptically ພຽງພໍ) "ວິທີການ". ແຕ່ລະອັນນີ້ສະແດງອອກເປັນຊຸດຂອງ ("*.base",
"*.code", "*.help") ໄຟລ໌. ໄຟລ໌ Makefile.PL ກຳນົດຄ່າ Makefile ດັ່ງກ່າວ
ສິ່ງເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອສ້າງໄຟລ໌ "*.xpl" ໂດຍໃຊ້ເຄື່ອງມືນີ້, ແລະຫຼັງຈາກນັ້ນຕິດຕັ້ງພວກມັນ.
ທິດສະດີວິທະຍາ
ບັນຫາສ່ວນໃຫຍ່ອອກມາໃນຮູບແບບຂອງຂໍ້ຄວາມຄວາມຜິດພາດທີ່ຕິດຕາມມາດ້ວຍການອອກທັນທີທັນໃດ.
ອອກ STATUS
ເຄື່ອງມືອອກດ້ວຍສະຖານະ 0 ເມື່ອປະສົບຄວາມສຳເລັດ, ແລະ 255 ຖ້າບໍ່ດັ່ງນັ້ນ.
ຂໍ້ຄວນລະວັງ
ຂ້ອຍບໍ່ມັກວິທີການນີ້ເພື່ອກໍານົດວິທີການ, ແຕ່ຂ້ອຍມັກແນວຄວາມຄິດອື່ນໆຂອງຂ້ອຍ
ຫນ້ອຍ.
ໃຊ້ make_methodp ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net