make_methodp - מקוון בענן

זוהי הפקודה make_methodp שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


make_method - הפוך את קוד Perl לתיאור XML עבור RPC::XML::Server

תַקצִיר


make_method --name=system.identification --helptext='מחרוזת מזהה מערכת'
--signature=string --code=ident.pl --output=ident.xpl

make_method --base=שיטות/זיהוי

תיאור


זהו כלי פשוט ליצירת קבצי ה-XML התיאוריים לציון שיטות
פורסם על ידי א RPC::XML::שרתשרת מבוסס.

אם שרת נכתב כך שהשיטות שהוא מייצא (או מפרסם) הם חלק מה-
פועל קוד, אז אין צורך בכלי זה. עם זאת, במקרים בהם השרת עשוי
להיות נפרד ומובחן מהקוד (כגון שרת RPC מבוסס Apache), תוך ציון
השגרה ומילוי המידע התומך עלולים להיות מסורבלים.

פתרון אחד שה- RPC::XML::שרת הצעות חבילה הן האמצעי לטעינת הניתנים לפרסום
קוד מקובץ חיצוני. הקובץ הוא בניב XML פשוט שמתוחם בבירור את
שם גלוי כלפי חוץ, חתימות השיטה, טקסט העזרה והקוד עצמו. אלה
ניתן ליצור קבצים באופן ידני, או להשתמש בכלי זה כעזר.

נדרש טיעונים


אין טיעונים נדרשים, אבל אם לא יעברו מספיק אפשרויות תעשה זאת
נאמר בהודעת שגיאה.

אפשרויות


הכלי מזהה את האפשרויות הבאות:

- עזרה
מדפיס סיכום קצר של האפשרויות.

--name=STRING
מציין את השם המפורסם של השיטה המקודדת. זה השם שלפיו זה
יהיה גלוי ללקוחות של השרת.

--namespace=STRING
מציין מרחב שמות שבו יוערך הקוד של השיטה, כאשר ה-XPL
הקובץ נטען על ידי מופע שרת.

--type=STRING
ציין את הסוג עבור הקובץ המתקבל. "סוג" כאן מתייחס אם המיכל
תג המשמש ב-XML שיתקבל יציין א הליך או שיטה. ברירת המחדל היא
שיטה. המחרוזת מטופלת ללא תלות באותיות גדולות, ורק התו הראשון ("m" או
"p") נחשב למעשה.

--version=STRING
ציין חותמת גרסה לשגרת הקוד.

--מוּסתָר
אם זה יעבור, הקובץ שיתקבל יכלול תג שאומר לדמון השרת
לא להפוך את השגרה לגלויה דרך ממשקי התבוננות פנימה כלשהם.

--חתימה=STRING [ --חתימה=STRING ... ]
ציין חתימה אחת או יותר עבור השיטה. חתימות צריכות להיות שמות הסוג as
מונח בתיעוד ב-RPC::XML, כאשר האלמנטים מופרדים באמצעות נקודתיים. אתה
יכול גם להפריד אותם עם רווחים, אם אתה מצטט את הטיעון. אפשרות זו עשויה להיות
צוין יותר מפעם אחת, שכן לשיטות מסוימות עשויות להיות מספר חתימות.

--helptext=STRING
ציין את טקסט העזרה עבור השיטה כמחרוזת פשוטה בשורת הפקודה. לֹא
מתאים למחרוזות עזרה ארוכות נורא.

--helpfile=קובץ
קרא את טקסט העזרה עבור השיטה מהקובץ שצוין.

--קוד=קובץ
קרא את הקוד בפועל עבור השגרה מהקובץ שצוין. אם אפשרות זו אינה
בהינתן, הקוד נקרא מתאר קובץ הקלט הסטנדרטי.

--output=FILE
כתוב את ייצוג ה-XML המתקבל לקובץ שצוין. אם אפשרות זו אינה
נתון, אז הפלט עובר לתיאור קובץ הפלט הסטנדרטי.

--base=NAME
זוהי אפשרות מיוחדת, "הכל באחד". אם עוברים, מתעלמים מכל האפשרויות האחרות.

הערך משמש כאלמנט הבסיס לקריאת מידע מקובץ בשם
בסיס.בסיס. קובץ זה יכיל מפרט של השם, הגרסה, המצב הנסתר,
חתימות ומידע אחר על השיטה. כל שורה בקובץ צריכה להיראות כמו אחת
הבא:

שֵׁם: STRING
ציין את שם השגרה המתפרסמת. אם שורה זו לא מופיעה,
ואז הערך של ה --בסיס ארגומנט עם כל רכיבי הספרייה הוסרו יהיה
מְשׁוּמָשׁ.

גִרְסָה: STRING
ספק חותמת גרסה לפונקציה. אם אין קו תואם דפוס זה
קיים, לא ייכתב תג גרסה.

מוּסתָר: STRING
אם נמצא, STRING צריך להיות "כן" או "לא" (המקרה לא חשוב). אם זה
"כן", אז השיטה מסומנת להיות מוסתרת מכל API של אינטרוספקציה.

חתימה: STRING
שורה זו עשויה להופיע יותר מפעם אחת, והיא מטופלת במצטבר. אפשרויות אחרות
לעקוף ערכים קודמים אם הם מופיעים יותר מפעם אחת. החלק הבא של
חלק "חתימה:" נחשב כחתימה שפורסמה עבור השיטה, עם
אלמנטים מופרדים על ידי רווח לבן. לכל שיטה חייבת להיות לפחות חתימה אחת, אז
חוסר בכל יגרום לשגיאה.

קובץ עזרה: STRING
מציין את הקובץ שממנו יש לקרוא את טקסט העזרה. זו לא שגיאה אם ​​אין עזרה
טקסט מצוין.

קובץ קוד: STRING
מציין את הקובץ שממנו יש לקרוא את הקוד. ההנחה היא שהקוד הוא Perl, ו
יתויג ככזה בקובץ שיתקבל.

Codefile[lang]: מחרוזת
מציין את הקובץ שממנו יש לקרוא את הקוד, תוך זיהוי השפה
שהקוד נמצא בו. זה מאפשר יצירת א XPL קובץ הכולל
יישומי שפות מרובות של השיטה או ההליך הנתונים.

מתעלמים מכל קווים אחרים מלבד הדפוסים שלעיל.

אם לא נקרא קוד, הכלי ייצא עם הודעת שגיאה.

הפלט נכתב ל בסיס.xpl, שמירה על מידע הנתיב כך שה-
הקובץ המתקבל נמצא ממש לצד קבצי המקור. זה מאפשר מבנים כגון:

make_method --base=שיטות/התבוננות פנימית

קובץ פורמט ו DTD


פורמט הקובץ עבור השגרות שפורסמו הוא ניב XML פשוט מאוד. זה פחות
בגלל ש-XML הוא פורמט אידיאלי מאשר הזמינות של המנתח, בהתחשב בכך שה-
RPC::XML::שרת לכיתה כבר יהיה קוד המנתח בליבה. כותב חדש לגמרי
פורמט לא היה מרוויח כלום.

ניתן לסכם את הצהרת סוג המסמך עבור הפורמט על ידי:

<!ELEMENT proceduredef (שם, מרחב שמות?, גרסה?, מוסתר?,
חתימה+, עזרה?, קוד)>
<!ELEMENT methoddef (שם, מרחב שמות?, גרסה?, מוסתר?,
חתימה+, עזרה?, קוד)>
<!ELEMENT functiondef (שם, מרחב שמות?, גרסה?, מוסתר?,
חתימה+, עזרה?, קוד)>









לקובץ "rpc-method.dtd" שמגיע עם ההפצה יש קצת פרשנות בנוסף
למפרט בפועל.

קובץ מוגבל (בינתיים) להגדרה אחת. זה מתחיל על ידי אחד של הפתיחה
תגים" "," "או" ". אחריו בדיוק אחד
" מיכל המציין את שם השיטה, חותמת גרסה אופציונלית, אופציונלי
דגל הסתר מהתבוננות פנימית, אחד או יותר " "מכלים המציינים חתימות,
אופציונלי" " מכיל עם טקסט העזרה, ולאחר מכן " container with the " " container with the
קוד התוכנית בפועל. כל הטקסט צריך להשתמש בקידוד ישות עבור הסמלים:

& C<&> (אמפרסנד)
ה C<<> (פחות מ)
ה C<>> (גדול מ-)

תהליך הניתוח בתוך מחלקת השרת יפענח את הישויות. לעשות דברים
קל יותר, הכלי סורק את כל רכיבי הטקסט ומקודד את הישויות לעיל לפני כתיבת ה
קובץ.

השמיים מִפרָט of קופונים
זה לא "תִכנוּת 101 ", וגם לא "פרל ל מה היא במידה מסוימת עָמוּם". הקוד כלומר
המועבר דרך אחד מקבצי "*.xpl" מועבר ל-"eval" ללא כל שינוי
(ראה למטה). לפיכך, קוד שכתוב בצורה גרועה או זדוני יכול מאוד להמיט הרס אצלך
שרת. זו לא אשמת קוד השרת. המחיר של הגמישות במערכת זו
הצעות היא באחריות של המפתח לוודא שהקוד כן
נבדק ובטוח.

הקוד עצמו מטופל כמה שיותר מילולית. חלק מהעריכות עשויות להתרחש בצד השרת,
מכיוון שהוא הופך את הקוד למתאים ליצירת תת שגרה אנונימית מ. ה שיטת_עשה
הכלי ינסה להשתמש בקטע "CDATA" כדי להטביע את הקוד בתוך מסמך ה-XML, אז
שאין צורך לקודד ישויות או כאלה. זה מאפשר את התוצאה *.xpl
קבצים ניתנים לבדיקה בתחביר עם "perl -cx". אתה יכול לסייע בכך על ידי הבטחת הקוד
אינו מכיל אף אחד משני רצפי התווים הבאים:

]]>

__DATA__

הראשון הוא terminator "CDATA". אם זה מתרחש באופן טבעי בקוד, זה יפעיל
סוף הקטע במנתח. השני הוא אסימון Perl המוכר, שמוכנס
כך ששאר מסמך ה-XML לא יבלבל את מנתח Perl.

דוגמאות


השמיים RPC :: XML הפצה מגיעה עם מספר שיטות ברירת מחדל בספריית משנה בשם
(באופן מוצפן) "שיטות". כל אחד מאלה מבוטא כקבוצה של ("*.base",
קבצי "*.code", "*.help"). הקובץ Makefile.PL מגדיר את ה-Makefile שנוצר כזה
שהם משמשים ליצירת קבצי "*.xpl" באמצעות כלי זה, ולאחר מכן התקינו אותם.

דיאגנוסטיקה


רוב הבעיות מופיעות בצורה של הודעות שגיאה ואחריהן יציאה פתאומית.

יְצִיאָה סטָטוּס


הכלי יוצא עם סטטוס 0 עם הצלחה, ו-255 אחרת.

מערות


אני לא כל כך אוהב את הגישה הזו לציון השיטות, אבל אהבתי אפילו את הרעיונות האחרים שלי
פָּחוּת.

השתמש ב-make_methodp באינטרנט באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows