לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 19-06-2008, 20:50
  משתמש זכר eXtruct eXtruct אינו מחובר  
 
חבר מתאריך: 27.10.05
הודעות: 1,067
MVC , והפרדת PHP מ HTML

טוב העלתי את זה גם בפורום אחר (בחו"ל).
בקצרה שתי דברים שכנראה קשורים בצורה כל שהיא.
1. מאז שאני זוכר את עצמי מסתכל בקוד של PHPBB (לפני כ הממ 3-4 שנים?) ורואה את קבצי ה TPL התהבתי ב TEMPLATES. ניסיתי לכתוב מחלקות משלי שיטפלו בזה ועוד כל מיני דברים, עד שלבסוף הגעתי ל Smarty. הכל טוב ויפה סינטקס חדש ללמוד (לא קשה 30-40דקות) ואז עליתי על דברים כלשהם בחיפוש שערכתי:
האם זה באמת כל כך קריטי לכתוב:
קוד:
{section name=a loop=$a} <div> {$a.foo}</div> {/section}

במקום:
קוד:
<?php foreach($a as $v){?> echo '<div> ', $v, '</div>'; <?php}?>

הרי מעצב (שבישבילו אנחנו כל כך טורחים להפריד את הלוגיקה מהעיצוב, הכל בגלל המעצב המסכן שלנו שלא יודע PHP) כנראה גם לא יודע את הסינטקס של Smaty (או כל מנוע טיימפלייט אחר שתבחרו) וניתן לראות מהדוגמא שלי ששני הבלוקים של הקוד נורא דומים, אז מה אפכת לו מה ללמוד?
ואז באחת התגובות בפורום אני מקבל תשובה: "לרוב מנועי טיימפלייט נועדו ליצור סינטקס חדש אשר יגביל הכנסת קוד PHP טרי לעיצוב" ופה נפלתי. "וואלה הבן אדם צודק" חשבתי לעצמי, אבל מה Smarty (וכנראה כל מנוע אחר) דאגו לזה על ידי הוספת התגים {php} {/php} אשר מאפשרים לכם להכניס כל קוד PHP בתוך העיצוב שלכם.
אז אחרי חפירה עמוקה אנו מגיעים לשאלה בשביל מה? בשביל להוסיף לתוכנית שלכם עוד 1500 שורות של קוד ואיזה 4-5 קבצים אשר מגידירם שפה חדשה ומקשים על עליית העמוד שלכם?
אז מה ש MVC דורש הפרדה בין "מודל" ל"מבט"? הכנסת לולאות section של SMARTY נקרא הפרדה בין הלוגיקה לעיצוב? לא הרבה יותר פשוט לעשות משהוא כזה:
קוד:
<div id="cart"> <?php display_cart(); ?> </div>

מה המעצב המסכן שלנו לא יוכל לזכור שכל פעם שהוא רוצה להציג עגלת קניות יש לכתוב 18אותיות? אז מה ש display_cart() יכיל בתוכו כמה divs and spans לעיצוב הטבלה של עגלת הקניות?
לא יודע זו דעתי, כלומר אני רוצה לומר שאין שחור ולבן ושאפשר לגוון אבל למה להמציא שפה חדשה על גבי PHP שבסופו של דבר בכל מקרה עוברת הידור לעמוד PHP שאנחנו נראה על המסך?
אשמח לדעת את תגובתכם בנושא.

2. מכיוון שהתחלתי להתעניין בפטרן MVC אשמח לדעת מה דעתכם על מימוש זה http://www.phpit.net/article/simple-mvc-php5/ של הפטרן ב PHP והאם אתם מכירים עוד דרכים לממש MVC ב PHP? אשמח לדעת.

תודה רבה מראש וסוף שבוע נעים.

(חשוב לציין: אני חס וחלילה לא מנסה לפגוע במעצבים כל שהם, הם אנשים נהדרים אשר ממלאים את הרשת שלנו בצבעים עליזים ויוצרים עיצובים מדהימים. אני בעצמי מעצב בצורה כלשהיא, אז קבלו את כל ההתיחסיות למעצבים שהזכרתי בצחוק ולא בלעג כי זה לא באמת מה שניסיתי להעביר).
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 20-06-2008, 02:12
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 1 שנכתבה על ידי eXtruct שמתחילה ב "MVC , והפרדת PHP מ HTML"

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

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

1. למד XML (אלא אם כבר עשית זאת ואז מספיק שתתמה למה צריך xHTML כשיש לנו html. למה צריך CSS כשניתן לעצב עם תגי html - ולא, התשובה אינה כי CSS מוסיף אפשרויות, כיון שלו זאת היתה הסיבה, היו מוסיפים את האותן אפשרויות בשפת html)

2. גגל על הפרדת עיצוב מתוכן וסביר להניח שתקבל מענה.

3. אני חושב שהמקום ממנו כדאי לך להתחיל ללמוד על MVC הוא ויקיפדיה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 25-06-2008, 21:53
  משתמש זכר vadim88 vadim88 אינו מחובר  
 
חבר מתאריך: 14.04.06
הודעות: 331
בתגובה להודעה מספר 12 שנכתבה על ידי tnadav1 שמתחילה ב "אני לא עורך דין, ואני לא רוצה..."

לא צריך להיות עורך דין או משהו בסגנון בישביל להבין את זה הנה הרשיון בעצם החלק הראשון מראה בידיוק מה אפשר לעשות.

ציטוט:
Copyright (c) <year>

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 11:34

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר