Actions ו-Controllers ב-Zend Framework

יצירה ושינוי של Controllers ו-Actions באמצעות Zend Framework.

במאמר הקודם למדנו על ההגדרות הראשוניות של האפליקציה שלנו בזנד פריימוורק. גם ראינו איך המודל של 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. אנו אמורים לראות שם את זה:
ה-action החדש שיצרנו

אם נלך ל-add.phtml שמכיל את ה-view, נראה את הטקסט שהוא כותב לנו וכמובן נוכל לשנות אותו כרצוננו ולהוסיף משתנים ב-action כדי שיופיעו ב-view.

לסיכום, מבנה ה-URL עובד ככה:
מבנה URL

יצירת controller

יצירת קונטרולר גם היא פשוטה ביותר, כל מה שצריך לעשות זה


zf create controller User

כל קונטרולר חייב להיות עם אות ראשונה גדולה. מה שיפה בכלי zf הוא שגם אם תכתבו את השם של הקונטרולר באות קטנה הוא מיד יעביר אותו לאות גדולה.

מבט ברשימת התיקיות יראה לכם שנוצר UserController.php בתיקית controllers. לקונטרולר החדש יש כמובן מתודת init ו-indexAction דפולטיבי. נוצרה לנו תיקיה חדשה ב-view ששמה הוא user וגם שם יש index.phtml שתשמש את ה-action הדפולטיבי החביב שלנו.

אם ננסה להכנס ל: internet_site/user אנו נראה את הדבר הבא:
controller חדש

גם כיף וגם פשוט.

במאמר הבא אנו ניצור אפליקצית דוגמא שתשתמש בזנד.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

גלילה לראש העמוד