אפליקציות מסוף ובקרה

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

Yii מייצגת כל משימה במסוף במונחים של פקודה -command, והאובייקט של console application נועד לשדר בקשת שורת פקודות לפקודה המתאימה. האובייקט של האפליקציה נוצר בסקריפט הכניסה הראשי. בכדי להריץ משימת מסוף, אנו מריצים את הפקודה הבאה בשורת הפקודות בצורה הבאה,

php entryScript.php CommandName Param0 Param1 ...

CommandName מתייחס לשם הפקודה (שאינו רגיש לאותיות גדולות-קטנות), ו Param0 , Param1 וכן הלאה הם פרמטרים המועברים לאובייקט של הפקודה.

סקריפט הכניסה הראשי לאפליקצית מסוף בדרך כלל נכתב בצורה הבאה, בדומה לסקריפט של אפליקצית ווב,

defined('YII_DEBUG') or define('YII_DEBUG',true);
//צירוף הקובץ הראשי של Yii
require_once('path/to/yii/framework/yii.php');
// יצירת אובייקט אפליקציה והרצתו
$configFile='path/to/config/file.php';
Yii::createConsoleApplication($configFile)run();

לאחר מכן אנו יוצרים מחלקות שצריכות להיות תחת המחלקה הבסיסית CConsoleCommand שמהוות בעצם כפקודות. כל מחלקה שמהווה פקודה צריכה להקרא בשם הפקודה שלה והוספת Command לסוף השם. לדוגמא, בכדי להגדיר פקודת email אנו צריכים ליצור מחלקה בשם EmailCommand. כל המחלקות של הפקודות צריכות להיות ממוקמות תחת התיקיה commands הנמצאת בתוך התיקיה הראשית של האפליקציה.

» Tip|טיפ: על ידי הגדרת המאפיין CConsoleApplication::commandMap, ניתן להגדיר פקודות בשמות שונים אשר לאו דווקא צריכים לעקוב אחרי מוסכמות נתינת השמות שתוארו למעלה והנמצאים בתיקיות שונות.

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

class EmailCommand extends CConsoleCommand
{
    public function run($args)
    {
        $receiver=$args[0];
        // send email to $receiver
    }
}

בכל זמן בפקודה, אנו יכולים לגשת לאובייקט של אפליקצית המסוף בעזרת Yii::app(). בדומה לאובייקט אפליקצית ווב, ניתן להגדיר אפליקציות מסוף בעזרת קובץ הגדרות אפליקציה. לדוגמא, אנו יכולים להגדיר רכיב אפליקציה בשם db בכדי לגשת למסד נתונים. ההגדרות בדרך כלל מאופיינות כקובץ PHP המחזיר מערך של הגדרות המועברות למתודה ההתחלתית של מחלקת אפליקצית הווב (או createConsoleApplication בסקריפט הכניסה הראשי).

1. שימוש בכלי yiic

אנו השתמשנו בכלי yiic בכדי ליצור את האפליקציה הראשונה שלנו. כלי ה yiic למעשה מיושם כאפליקצית מסוף שקוב הכניסה הראשי שלה הוא framework/yiic.php. בעזרת השימוש ב yiic, אנו יכולים לבצע משימות כמו יצירת שלד לאפליקציה חדשה, יצירת מחלקה עבור קונטרולר או מודל, יצירת קוד הדרוש עבור פעולות CRUD, קבלת הודעות שצריכות להיות מתורגמות, וכדומה.

אנו יכולים לשפר את yiic על ידי הוספת פקודות מותאמות אישית. בכדי לעשות זאת, אנו צריכים להתחיל עם שלד של אפליקציה חדשה הנוצרה בעזרת הפקודה yiic webapp, כפי שהוסבר יצירת אפליקציה ראשונה בעזרת Yii. הפקודה yiic webapp תיצור שני קבצים תחת התיקיה protected: הראשון yiic ו yiic.bat הם הגרסאות המקומיות של הכלי yiic שנוצרו במיוחד עבור אפליקצית הווב.

לאחר מכן אנו יכולים ליצור פקודות בעצמנו תחת התיקיה protected/commands. הרצת הכלי המקומי yiic אנו נראה את הפקודות שלנו רשומות ביחד עם הפקודות המובנות המגיעות עם המערכת. כמו כן אנו יכולים ליצור פקודות בעצמנו כדי שנוכל להשתמש בהם בעזרת כלי ה yiic shell. בכדי לבצע זאת, פשוט יש לשמור את מחלקת הפקודה תחת התיקיה protected/commands/shell.

החל מגרסא 1.1.1, אנו יכולים ליצור פקודות גלובאליות אשר ניתנות לשיתוף על גבי כל אפליקציות ה Yii הרצות על אותו שרת. כדי ליצור פקודות אלו, יש להגדיר משתנה שרתי ( "סביבתי" משתנה אשר נמצא תחת המשתנה הגלובאלי SERVER_$ בשרת ) בשם YII_CONSOLE_COMMANDS אשר צריך להיות מכוון לתיקיה קיימת בשרת. לאחר הגדרת המשתנה אנו מניחים את כל המחלקות של הפקודות שיצרנו שאנו רוצים שהם יהיו גלובאלים תחת התיקיה הזו, ואנו נראה את הפקודות הללו בכל מקום בו נשתמש בכלי yiic.

«div class="revision"»$Id: topics.console.txt 1870 2010-03-09 22:23:19Z qiang.xue $«/div»

Be the first person to leave a comment

Please to leave your comment.