בכדי לקבל ניסיון התחלתי עם Yii, אנו מתארים בחלק זה כיצד ליצור את האפליקציה הראשונה שלנו ב Yii. אנו נשתמש בכלי yiic המאפשר יצירה אוטומטית של קוד בעבור משימות מסויימות. לנוחות, אנו מניחים ש YiiRoot הינה התיקיה בה Yii מותקן, ו WebRoot הינה התיקיה הראשית של שרת הווב שלנו.
יש להריץ את yiic בשורת הפקודות בצורה הבאה:
% YiiRoot/framework/yiic webapp WebRoot/testdrive
» Note|הערה: בעת הרצת yiic על גבי מחשבים Mac OS, Linux או Unix, יהיה צורך בשינוי הרשאות של קובץ ה yiic בכדי שיהיה ניתן להריץ אותו. לחלופין, ניתן להריץ את הכלי בצורה הבאה,
» ~~~
» % cd WebRoot/testdrive
» % php YiiRoot/framework/yiic.php webapp WebRoot/testdrive
» ~~~
זה יצור שלד לאפליקצית Yii תחת התיקיה WebRoot/testdrive. לאפליקציה יש מבנה של תקיות שנחוץ למרבית אפליקציות ה Yii.
ללא צורך בכתיבת שורת קוד אחת, אנו יכולים לנסות את האפליקציה שיצרנו כרגע על ידי כניסה לקישור הבא בדפדפן:
http://hostname/testdrive/index.php
כפי שניתן לראות, לאפליקציה יש ארבע עמודים: עמוד הבית, עמוד האודות, עמוד ההתחברות ועמוד היצירת קשר. עמוד יצירת הקשר מציג טופס יצירת קשר שמשתמש יכול להזין ולשלוח למנהל האתר, ועמוד ההתחברות מאפשר למשתמש לאמת את עצמו לפני שהוא ניגש לתוכן שהוא מוגבל לבעלי גישה בלבד.
עמוד הבית

עמוד יצירת הקשר

עמוד יצירת קשר עם שגיאות

עמוד יצירת קשר לאחר שליחת הטופס בהצלחה

עמוד התחברות

הדיאגרמה הבאה מציגה את מבנה התיקיות של האפליקציה שלנו. אנא קרא אודות מוסכמות בכדי לקבל הסבר מדוייק למבנה זה.
testdrive/
index.php קובץ הכניסה הראשי של האפליקציה
index-test.php קובץ הכניסה הראשי למטרת בדיקות
assets/ מכיל קבצי נכסים הנגישים למשתמשים
css/ מכיל קבצי css
images/ מכיל תמונות
themes/ מכיל תבניות עיצוב לאפליקציה
protected/ מכיל קבצים מוגנים של האפליקציה
yiic קובץ פקודות עבור לינוקס ויוניקס
yiic.bat קובץ פקודות עבור וינדווס
yiic.php קובץ פקודות PHP
commands/ מכיל פקודות 'yiic' מותאמים אישית
shell/ מכיל פקודות 'yiic shell' מותאמים אישית
components/ מכיל רכיבים אשר משתמשים בהם שוב ושוב
Controller.php מחלקת הבסיס לכל הקונטרולרים
Identity.php מחלקת הזיהוי של משתמשים
config/ מכיל קבצי הגדרות
console.php קובץ הגדרות לאפליקציה דרך מסוף
main.php קובץ הגדרות לאפליקצית ווב
test.php קובץ הגדרות לבדיקות פונקצנליות
controllers/ מכיל קבצי מחלקות קונטרולר
SiteController.php קונטרולר ברירת המחדל
data/ מכיל את מסדי הנתונים לדוגמא
schema.mysql.sql תרשים מסד הנתונים של MySQL
schema.sqlite.sql תרשים מסד נתונים של SQLite
testdrive.db קובץ מסד הנתונים לדוגמא של SQLite
extensions/ מכיל הרחבות צד שלישי
messages/ מכיל קבצי תרגום
models/ מכיל קבצי מחלקות המודל
LoginForm.php מודל הטופס לפעולה של התחברות
ContactForm.php מודל הטופס לפעולה של יצירת קשר
runtime/ מכיל קבצים זמניים
tests/ מכיל קבצי סקריפט לבדיקה
views/ מכיל קבצי תצוגה ותבניות של קונטרולרים
layouts/ מכיל קבצי תבניות
main.php התבנית הראשית אשר מופיע בכל העמודים
column1.php תבנית לעמודים אשר משתמשים בעיצוב של עמודה אחת
column2.php תבנית לעמודים אשר משתמשים בעיצוב של שני עמודות
site/ מכיל קבצי תצוגה לקונטרולר 'site'
pages/ מכיל עמודים סטטיים
about.php קובץ התצוגה לעמוד אודות
contact.php קובץ תצוגה לעמוד יצירת קשר
error.php קובץ תצוגה להצגת שגיאות במידה ויש
index.php קובץ תצוגה לפעולה 'index'
login.php קובץ תצוגה לפעולה 'login'
מרבית אפליקציות הווב מגובות בעזרת מסד נתונים. אפליקצית הניסיון שלנו היא אחת מהם. בכדי להשתמש במסד נתונים, אנו צריכים להגדיר לאפליקציה כיצד להתחבר אליה. זה נעשה בקובץ הגדרות האפליקציה אשר ממוקם WebRoot/testdrive/protected/config/main.php, המובלט בצורה הבאה,
return array(
......
'components'=»array(
......
'db'=»array(
'connectionString'=»'sqlite:protected/data/testdrive.db',
),
),
......
);הקוד למעלה מנחה את Yii שהאפליקציה צריכה להתחבר למסד נתונים SQLite תחת WebRoot/testdrive/protected/data/testdrive.db בעת הצורך. מסד הנתונים SQLite כבר כלול בשלד האפליקציה שיצרנו זה עתה. מסד נתונים מכיל טבלה אחת בלבד בשם tbl_user:
CREATE TABLE tbl_user ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL );
במידה והינך רוצה לעבוד עם מסד נתונים מסוג MySQL במקום, תוכל להשתמש בקובץ התרשים של MySQL המצורף הנמצא ב WebRoot/testdrive/protected/data/schema.mysql.sql בכדי ליצור את מסד הנתונים.
» Note|הערה: בכדי להשתמש באפשריות מסדי הנתונים, אנו צריכים להתקין ולהפעיל את תוסף ה PHP בשם PDO ואת התוספים הספציפים לדרייברים בהם אנו נשתמש. בעבור אפליקצית הבדיקה הזו אנו צריכים להפעיל את התוספים php_pdo ו php_pdo_sqlite.
עכשיו זה החלק המהנה. אנו נרצה ליישם את פעולות ה-CRUD שזה קיצור של יצירה, קריאה, עדכון, מחיקה (Create, Read, Update, Delete) עבור הטבלה User שהרגע יצרנו. אפשרות זו הכרחית עבור אפליקציות אשר תלויות במשתמשים במערכת. במקום לבזבז את הזמן לכתיבת הקוד עצמו, אנו נשתמש ב-Gii -- מחולל קוד מבוסס אינטרנט (ווב).
» Info|מידע: Gii קיים החל מגרסא 1.1.2. עבור גרסאות ישנות יותר, אנו יכולים להשתמש בכלי yiic בכדי להשיג את אותה המטרה. למידע נוסף, אנא עיין במדריך ליצירת פעולות CRUD על ידי הכלי yiic. יישום פעולות CRUD בעזרת yiic
בכדי להשתמש ב Gii, אנו קודם צריכים לערוך את הקובץ WebRoot/testdrive/protected/config/main.php, הידוע בשמו כ-קובץ הגדרות האפליקציה.
return array(
......
'import'=»array(
'application.models.*',
'application.components.*',
),
'modules'=»array(
'gii'=»array(
'class'=»'system.gii.GiiModule',
'password'=»'יש להזין סיסמא כאן',
),
),
);לאחר מכן, יש לגשת לקישור http://hostname/testdrive/index.php?r=gii. אנו נראה מסך המבקש מאתנו להזין סיסמא, אותה סיסמא שציינו בשלב הקודם בקוד המוצג למעלה.
לאחר ההתחברות, יש ללחוץ על הקישור Model Generator. זה יביא אותנו לעמוד יצירת מודל הבא,
יצירת מודל

בשדה של Table Name יש להזין tbl_user. בשדה של Model Class, יש להזין User. לאחר מכן יש ללחוץ על כפתור Preview. זה יציג לנו את הקוד שיווצר. כעת יש ללחוץ על כפתור Generate. קובץ חדש בשם User.php יווצר תחת התיקיה protected/models. כפי שאנו נסביר במהלך המדריך הזה, מחלקת המודל User שהרגע יצרנו מאפשרת לנו לתקשר עם הטבלה tbl_user אשר נמצאת תחת המחלקה באופן מונחה עצמים.
לאחר יצירת קובץ מחלקת המודל, אנו ניצור את הקוד אשר מיישם את פעולות ה CRUD עבור המשתמש. אנו בוחרים במחולל ה-CRUD במערכת ה-Gii, כפי שמוצג בתמונה למטה,
מחולל CRUD

בשדה Model Class, יש להזין User. בשדה Controller ID, יש להזין user (באותיות קטנות בלבד). עכשיו יש ללחוץ על כפתור התצוגה מקדימה - Preview ולאחר מכן על כפתור היצירה - Generate. סיימנו עם יצירת הקוד עבור פעולות ה-CRUD.
הבא ונראה את התוצאה הסופית של העבודה שנעשתה:
http://hostname/testdrive/index.php?r=user
עמוד זה יציג רשימה של רשומות משתמשים מהטבלה tbl_user.
לחץ על כפתור ה Create User בעמוד. אנו נעבור לעמוד ההתחברות במידה ולא התחברנו עדיין. לאחר ההחברות, אנו נראה טופס שמאפשר לנו להוסיף משתמש חדש. מלא את הטופס ולחץ על כפתור Create.
במידה וישנם שגיאות כלשהם בטופס או בתוכן שהוזן, תוצג שגיאה שתמנע מאיתנו לשלוח את הטופס. בחזרה לעמוד רשימת המשתמשים, אנו אמורים לראות את המשתמשים החדשים אותם יצרנו ברשימה.
חזור על השלבים למעלה כדי להוסיף עוד משתמשים. שים לב שעמוד רשימת המשתמשים יציג עמודים אוטומטית אם ישנם יותר מדי משתמשים המוצגים בעמוד אחד.
אם נתחבר כמנהלים עם הפרטים admin/admin, אנו נוכל לצפות בעמוד ניהול המשתמשים בקישור הבא:
http://hostname/testdrive/index.php?r=user/admin
עמוד זה יציג את רשימת המשתמשים בפורמט טבלאי. אנו נוכל ללחוץ על כותרות העמודות בכדי למיין את הרשימה לפי אותה עמודה עליה לחצנו. נוכל ללחוץ על הכפתורים בכל רשומה בכדי לצפות, לערוך או למחוק את אותה רשומה. אנו יכולים לצפות בעמודים שונים. כמו כן אנו יכולים לסנן ולחפש אחר מידע אותו אנו מחפשים.
כל האפשרויות הללו מגיעות ללא צורך בכתיבת שורת קוד אחת!
עמוד ניהול משתמשים

עמוד יצירת משתמש חדש

Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.