Zend Framework – דרך טובה לבנות מערכות PHP

 

בזמן שלא הייתי כאן הייתי עסוק בבניית מערכת ניהול תוכן לחברת בניית האתרים שלי. את מערכת ניהול התוכן שלי בניתי ב-Zend Framwork שזהו Framework של PHP. מאוד נהנתי להשתמש בכלים שZF מעניקה, ורציתי לספר לכם קצת מה זה פריימוורק לPHP, מה זה ZF ולמה ומתי כדאי לכם להשתמש בהם בתכנות PHP.

Framework

פרייוורק היא למעשה ספריית קוד אשר בנויה על בסיס שפה מסויימת (כולם בוודאי מכירים את הספרייה JQuery שמרחיבה את Javascript). הספריה מרחיבה את אפשרויות השפה הקיימת ומאפשרת ליצור קוד בצורה מהירה יותר ואפקטיבית יותר. לרוב לפריימוורק יהיה API משלו אבל הוא יתמוך כמובן בAPI של השפה אותו הוא מרחיב.

באמצעות ה-API של הפרייוורק נוכל להשתמש בכלים מתקדמים שהפריימוורק מספק ובכך לייעל את עבודתנו בתור מתכנתים.

Zend Framework

טוב עכשיו אחרי שסיברתי את אוזנכם קצת בנוגע לספריות הרחבה לשפות תכנות (framework), אני אספר לכם על Zend Framework.

הספרייה Zend Framework או בקיצור ZF היא ספריית PHP שפותחה ע"י זאב סורסקי ואנדי גוטמנס, מכאן שמה (זאב+אנדי = זאנד). יוצרי הסביבה הם ישראלים יוצאי טכניון שפיתחו בין השאר גם את שפת PHP (נחמד לא?). בדומה לPHP, מטרת הספרייה היא בניית אפליקציות אינטרנטיות. הספרייה רשומה בקוד פתוח ובנויה על סביבה מונחת עצמים עם הפרדת Model-View-Controller (בקיצור MVC).

MVC – אחד הדברים היפים ביותר בZF. כל הרעיון מאחורי ההפרדה הזו (שתוכלו לקרוא עליה עוד בויקיפדיה), היא שהיא מכריחה אותנו (המתכנתים) להפריד בין עיצוב לבין קוד, וגם הקוד מחולק לשניים. שיטת MVC עושה זאת ע"י הפרדה ל-3 שכבות – המודל, שאחראי על האובייקטים המרכזיים במערכת, הבקר, שאחראי על יצירת התוכן המעובד, והתצוגה, שאחראית לסדר את האופן בו יראה כל דף. כעת נרחיב:

  • Model – זוהי השכבה שמכילה את אובייקטי המערכת המרכזיים (אלה שלא קשורים לתצוגה או לפעולה כלשהי), בשכבה הזו נבנה ונייצג כל אובייקט במערכת שלנו. השכבה הזו אינה מתממשקת באופן ישיר עם מסד הנתונים אך דרכה מתבצע הקישור. אני משתמש בשיטה ה-data mapper להתממשקות עם מסד הנתונים.
  • View – שכבת התצוגה. בשכבה זו צריך כמה שיותר להמנע מכתיבת סקריפטים ותפקידה העיקרי הוא להציג את פלט הקוד שנוצר בשכבת ה-Controller.
  • Controller – השכבה שבעצם מכילה את הפעולות של כל חלק באפלקציית האינטרנט. היא למעשה מחברת בין שכבות הModel והView בכך שהיא משתמשת במודולי המערכת ומעבירה מידע לשכבת התצוגה.

קשה מאוד להבין את השימוש ב-ZF לפני שפשוט מנסים אותה. אבל המלצה כנה ממני, תנסו ותרוויחו. ישנם ספריות רבות המרחיבות את PHP בינהם CodeIgniter ו-CakePHP, הספרייה ZF נחשבת למתקדמת ביותר ובל נשכח שהיוצרים שלה הם אלה שיצרו את ה-PHP, אני חושב שזה נותן להם קצת קרדיט. בכל מקרה למי שסקפטי ולא בטוח לגביי הספרייה אותה הוא רוצה ללמוד, האתר הבא מאפשר להשוות בין הפריימוורקים השונים לPHP והמאמר הבא מתוך nettuts מסביר כיצד כדאי לבחור פריימוורק באופן כללי (לא רק לPHP).

לסיום אני רוצה לצרף לכם לינק לאתר נפלא שנותן מספר סרטוני הדרכה בוידאו ללימוד ZF. אני התחלתי ללמוד משם, ובאמת שזו דיי דרך טובה להתחיל להשתמש בZF (הסרטונים באנגלית).
כמו כן בטח תוכלו להעזר בדוקומניזציה של ZF, היא מלאה בהרבה מאוד תוכן ועם שילוב של חיפוש בגוגל היא תענה לכם על הרבה שאלות.

בתחילת הדרך ללימוד ZF בטח תיתקלו בכל מיני באגים מעצבנים שלא תבינו למה הם קורים, אני עברתי רבים מהם ואתם מוזמנים לשאול שאלות כאן למטה בתגובות.

שתפו את הפוסט הזה:
http://www.htm.co.il/wp-content/plugins/sociofluid/images/digg_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/google_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/myspace_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/facebook_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/twitter_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/bookmark_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/email_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/print_48.png

עוד באותו נושא:

 

דיון פתוח

מה אתם חושבים? רשמו את תגובתכם.

תגובות
עמיתNo Gravatar 18 באפריל

תודה נתת לי דרך איך להתחיל :)

[תגובה]

אורן רוט

בשמחה :)

[תגובה]

רותםNo Gravatar 9 במאי

תודה רבה גבר, אחלה של מאמר =]

[תגובה]

אילן פינקלNo Gravatar 26 ביוני

תודה , הורדתי עכשיו אחרי הייתי על הפרונטפייג והתרגלתי לדריימוייבר נתרגל לזאנד :)

[תגובה]

אורן רוט

זאנד בניגוד לשני הראשונים שהזכרת זו לו תוכנה אלא סביבת עבודה…
אם תנסה תבין.

[תגובה]

אילן פינקל

תודה, אני אנסה, דרך אגב הסביבת עבודה זה התוכנה Zend Studio נכון?
כי חפשתי באתר שלהם וזה מה שמצאתי

[תגובה]

אורן רוטNo Gravatar 27 ביוני

לא – זה לא תוכנה – זו סביבת עבודה.

לא צריך תוכנה לזה , רק קבצים.

[תגובה]

אילן פינקלNo Gravatar 27 ביוני

זה קצת מבלבל, אני יודע PHP ואני גם יודע מה זה ספריית JAVESCRIPT אבל לא הבנתי מה זה…איך זה עובד? מה אני אמור לעשות כדי להפעיל את זה?

[תגובה]

He - ImcoupleNo Gravatar 26 ביולי

פשוט הסבר מעולה בעברית.

[תגובה]

ינוןNo Gravatar 12 בפברואר

שלום,
עד היום עבדתי על גרסא 5 מבלי ליצור פרויקטים ופשוא לעבוד על קבצים במחשב שלי עם ניווט רגיל בין התיקיות, כיצד עושים זאת בגרסא 8 מבלי ליצור פרויקטים?

[תגובה]

אורן רוט

על מה אתה מדבר? גרסא של ZEND FRAMEWORK?

[תגובה]

ינון

zend development – טעיתי בפוסט?

[תגובה]

אורן רוט

לא ברור לי עדיין…

הפוסט מדבר על ZEND FRAMEWORK, שזה פרייוורק של PHP על זה אתה מדבר?

ינון

כן אני הבנתי אני טעיתי בפוסט.
הבעיה שלי היא הממשק בו אני כותב את הקוד:
ZendStudio 8 שלפני כן עבדתי ב-zend development studio 5.5
אתה יודע היכן אני יכול לשאול שאלות בהקשר הזה אולי?
תודה וסליחה.

אורן רוטNo Gravatar 13 בפברואר

האמת שאני לא מכיר את התוכנה הנ"ל. מצטער.. תנסה לגגל על זה.

[תגובה]

ינון

אוקיי אני אחפש. תודה.

[תגובה]

בניית אתריםNo Gravatar 10 בספטמבר

יש גם את YII FRAMEWORK, עוד לא החלטתי איזו טובה יותר אבל קראתי כאן כמה דברים שלא ידעתי על ZD. תודה רבה

[תגובה]

כתיבת תגובה

אבטחה: שאלת אבטחה

ניסיון