במאמר הקודם למדנו על ההגדרות הראשוניות של האפליקציה שלנו בזנד פריימוורק. גם ראינו איך המודל של controller -> action ->view עובד בפועל.
על מנת להבין את היחס המלא בין קונטרולרים ל-actions אנחנו צריכים ליצור actions. לכל קונטרולר יכולים להיות כמה actions. בואו ונבחן את הקונטרולר הראשון שהוא index. בעצם לכל קונטרולר יש כתובת ב-url. ננסה להכנס ל-/index בתיקיה שלנו – למשל: http://localhost/internet_site/index או your.ip.number/internet_site/index, אנו נראה שאנו מגיעים לאותו מסך. למה זה קורה? כי הקונטרולר הדיפולטיבי הוא index. לקונטרולר כאמור יכולים להיות כמה actions מלבד indexAction שהוא האינדקס הדיפולטיבי – בואו וניצור action כזה!
יצירת action
אם אנו ב-Wamp Server אנו נכנס אל התיקיה שבה הדבקנו את zf.bat ונכתוב zf FULLPATH action add. כש-FULLPATH הוא כמובן הנתיב המלא של הפרויקט שלנו (כמו למשל c:\wamp\www\internet_site) אם אנחנו משתמשים בלינוקס כל מה שעלינו לעשות זה להכנס לתיקית הפרויקט ולכתוב:
zf create action add
יופיע לנו המסר הבא:
Creating an action named add inside controller at /var/www/internet_site/application/controllers/IndexController.php
Updating project profile '/var/www/internet_site/.zfproject.xml'
Creating a view script for the add action method at /var/www/internet_site/application/views/scripts/index/add.phtml
Updating project profile '/var/www/internet_site/.zfproject.xml'
אם נסתכל נראה שבקונטרולר שלנו, IndexController נוספה מתודה חדשה:
public function addAction()
{
// action body
}
וכן נוסף view חדש בשם add.phtml (תחת תיקית views/index). בואו ונבחן את ה-action החדש שלנו! נכנס ל: http://localhost/internet_site/index/add או ל: your.ip.number/internet_site/index/add. אנו אמורים לראות שם את זה:
אם נלך ל-add.phtml שמכיל את ה-view, נראה את הטקסט שהוא כותב לנו וכמובן נוכל לשנות אותו כרצוננו ולהוסיף משתנים ב-action כדי שיופיעו ב-view.
יצירת controller
יצירת קונטרולר גם היא פשוטה ביותר, כל מה שצריך לעשות זה
zf create controller User
כל קונטרולר חייב להיות עם אות ראשונה גדולה. מה שיפה בכלי zf הוא שגם אם תכתבו את השם של הקונטרולר באות קטנה הוא מיד יעביר אותו לאות גדולה.
מבט ברשימת התיקיות יראה לכם שנוצר UserController.php בתיקית controllers. לקונטרולר החדש יש כמובן מתודת init ו-indexAction דפולטיבי. נוצרה לנו תיקיה חדשה ב-view ששמה הוא user וגם שם יש index.phtml שתשמש את ה-action הדפולטיבי החביב שלנו.
אם ננסה להכנס ל: internet_site/user אנו נראה את הדבר הבא:
גם כיף וגם פשוט.
במאמר הבא אנו ניצור אפליקצית דוגמא שתשתמש בזנד.