בכדי לקבל ניסיון התחלתי עם 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.