הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות > תכנות - מדריכים, code snippets

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 08-04-07, 20:28   # 1
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

[מדריך] PHP - למתחיל בOOP. חלק א' וב'.

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

[*] המדריך נכתב על ידי אמיר פרידמן. אין להעתיק או לפרסם מדריך זה בשום מקום ללא אישור ממני באימייל: INvisioN.net@gmail.com. המדריך נכתב בלשון זכר אך מיועד גם למתוקות שקוראות מדריך זה =]


חלק א'. - מה זה תכנות מונחה-אובייקטים?
כאשר אתה עובד עם תכנות מונחה-אובייקטים, אתה בעצם בונה "מזוודה" שבתוכה את ה"אורז" נתונים ופונקציות יחדיו כאובייקטים. בעזרת שיטת עבודה זו, אתם תוכלו לפצל את הקודים שלכם אפילו יותר.
בעזרת תכנות מונחה-אובייקטים תוכלו לבנות "מזוודה" ( מעכשיו נקרא לזה - "מחלקה" ) שתנהל לכם כמעט כל חלק באתר.

כמה דוגמאות למחלקות שימושיות ונפוצות:
  • מחלקת בסיס נתונים - תוכלו לבנות לכם מחלקה שבעזרתה תוכלו לעבוד עם מסדי נתונים בצורה הרבה יותר יעילה ומהירה.
  • מחלקה של יצירת תמונות - תוכלו לבנות מחלקה שתצור לכם תמונות בעזרת נתונים שתספקו לה.
  • מחלקה שמטפלת בחוקיות הקלט שהתקבל.
  • מחלקה שמטפלת במה שהגולש יראה על המסך - אפשר לקרוא לזה מחלקת עיצוב.

לאחר שהבנו מה זה מחלקות, השאלה הבאה נשאלת... כיצד זה עובד? ובכן, כאן מתחיל
חלק ב'. - עבודה עם תכנות מונחה-אובייקטים.
ראשית אנחנו צריכים ליצור את המחלקה. מחלקה מגדירה את סוג האובייקט, לדוגמא אנחנו יכולים ליצור מחלקה בשם Cars על ידי שימוש במשפט - "class", מחלקה זה יכולה להכיל בתוכה כמה מאפיינים פנימיים ( משתני מחלקה ) על ידי שימוש במשפט - "var".
  • דגם
  • צבע
PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

[ שים לב! ] ניתן לקבוע ערכים קבועים אך פשוטים מראש עבור המאפיינים ( משתני מחלקה ) בצורה הזאת:
PHP קוד:
    var $model "No model"
אך אי אפשר לקבוע ערכים מחושבים בדוגמא לזה: ( וגם אי אפשר להציב משתנים )
PHP קוד:
    var $model "Not"."good"
על מנת לפנות למאפיינים ( משתני מחלקה ) מתוך המחלקה אנחנו משתמשים במשתנה המובנה - "$this" המצביע אל המחלקה הנוחכית. במשתנה זה משתמשים עם אופרטור החץ - "<-" בצורה כזאת:
PHP קוד:
$this->model $model
לאחר שהגדרנו מחלקה, אנחנו יכולים להציב "מתודות" ( פונקציות ) במחלקה.
במקרה שלנו אנחנו ניצור כמה פונקציות:
  • set_model
  • set_color
  • get_model
  • get_color

PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

    function 
set_model($model)
    {
        
$this->model $model;
    } 

    function 
set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_model()
    {
        return 
$this->model;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 

על מנת לפנות לפונקציות ( מתודות ) מתוך המחלקה אנחנו משתמשים במשתנה המובנה - "$this" המצביע אל המחלקה הנוחכית. במשתנה זה משתמשים עם אופרטור החץ - "<-" בצורה כזאת:
PHP קוד:
$this->set_color("Black"); 
לפיכך אפשר להבין שבעצם המשתנה $this משמש גם לפניה למאפיינים וגם למתודות.

כעת, לאחר שסיימנו להגדיר את המחלקה אפשר ליצור אובייקטים של אותה מחלקה תוך כדי שימוש במשפט - "new". לדוגמא אנחנו יכולים ליצור אובייקט $BMW. את האובייקטים אנחנו מאכסנים במשתנים רגילים.
בצורה הבאה אנחנו יוצרים את האובייקט:
PHP קוד:
$BMW = new Cars
כעת, לאחר שכבר יש לנו את האובייקט, אין לו עדין צבע ומודל מוגדר, לשם כך אנחנו צריכים לפנות אל הפונקציות שבנינו מקודם.

קודם כל חשוב להבהיר, שברגע שאנחנו פונים למאפיינים ומתודות מחוץ למחלקה אנחנו פונים אליהם בצורה שונה מאשר "$this->". אנחנו עושים את זה בעזרת משתנה האובייקט ( במקרה שלנו $BMW ).
PHP קוד:
$BMW->set_model("Z4M"); 
וככה זה נראה לאחר שהגדרנו את המודל ואת הצבע, ולאחר מכן פנינו אל המתודות get_model וget_color על מנת לקבל את המודל והצבע:
PHP קוד:
class Cars
{
    var 
$model;
    var 
$color;

    function 
set_model($model)
    {
        
$this->model $model;
    } 

    function 
set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_model()
    {
        return 
$this->model;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 


$BMW = new Cars;
$BMW->set_model("Z4M");
$BMW->set_color("red");
echo 
"Are you sure you want to purchase <font color=\"".$BMW->get_color()."\"> ".$BMW->get_color()."</font> BMW ".$BMW->get_model()."?"
לסיום חלק ב' נעשה סיכום קצר על הקוד המלא שמלמעלה ^:
תחילה הגדרנו את המחלקה על ידי שימוש במשפט - "class" ופתחנו אותה באמצעות סוגריים מסולסלים:
PHP קוד:
class Cars

לאחר מכן הגדרנו את שני המאפיינים של המחלקה שלנו:
PHP קוד:
    var $model;
    var 
$color
ועכשיו הגדרנו את ארבעת המתודות המתוקות שלנו ( אני אציג רק את set_color ואת get_color כדי לחסוך במשאבי הפורום, במילא הקוד המלא למעלה. ):
PHP קוד:
    function set_color($color)
    {
        
$this->color $color;
    } 

    function 
get_color()
    {
        return 
$this->color;
    } 
סגרנו את המחלקה באמצועת סוגריים מסולסים:
PHP קוד:

עכשיו הגדרנו אובייקט למחלקה:
PHP קוד:
$BMW = new Cars
הכנסנו ערכים למשתנים: [*] במידה והקצתם ערך ברירת מחדל למשתנה זה לא ישפיע, זה בעצם כמו שתעשו:
PHP קוד:
$str "LOL";
$str "Muhahaha";
echo 
$str// Return's Muhahaha 
אז שוב, XD, הכנסנו למשתנים ערכים:
PHP קוד:
$BMW->set_model("Z4M");
$BMW->set_color("red"); 
ולבסוף הבאנו לפלט משפט נחמד במידה ואתם עושים אתר קניית מכוניות { יש אתר כזה? [ טוב נו נגיד וזה אתר של קניית פסלים של מכוניות בגודל קטן...( מינאטורי ) ] }
PHP קוד:
echo "Are you sure you want to purchase <font color=\"".$BMW->get_color()."\"> ".$BMW->get_color()."</font> BMW ".$BMW->get_model()."?"
וכאן מסתיים לו חלק ב' הסקסי!
מתי שיהיה לי שוב זמן פנוי ( יום שבת הבא כנראה ), אכתוב את החלקים הבאים =]

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

מקווה שהמדריך הזה עזר לכם, ושתפיקו ממנו את המיטב שיש לו להציע.
אשמח לענות על כל שאלה בהודעה פרטית או במסנג'ר: INvisioN.net@gmail.com, או באימייל ( בדיוק כמו המסן ).

בהצלחה P:
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql

Last edited by reXtea; 08-04-07 at 20:39..
  Reply With Quote
ישן 08-04-07, 20:38   # 2
DorWD
תודה על תרומתך.
 
DorWD's Avatar
 
מיני פרופיל
תאריך הצטרפות: Jan 2006
מיקום: עפולה
גיל: 31
הודעות: 2,259

DorWD לא מחובר  

כל הכבוד על היוזמה!.
אשמח לקרוא עוד מדריכים שלך
__________________
מתכנת WEB
  Reply With Quote
ישן 08-04-07, 20:55   # 3
Eran-s
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,609

Eran-s לא מחובר  

ח"ח על היוזמה.
מזכיר לי את ההסברים של המורה המטורף שלי לג'אווה. חח
__________________
מפתח ומתחזק אתרים.
  Reply With Quote
ישן 08-04-07, 20:59   # 4
חיים
חבר וותיק
 
חיים's Avatar
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: עפולה
גיל: 32
הודעות: 1,548
שלח הודעה באמצעות ICO אל חיים שלח הודעה באמצעות MSN אל חיים Send a message via Skype™ to חיים

חיים לא מחובר  

נראה לי שזה לפורום מדריכים לא?
תודה רבה על המדריך מדריך מצויין!!!
עריכה:
תוכל לפרט יותר על הדוגמה שלך למחלקה של מסד נתונים?איך אני יכול להשתמש בזה?
__________________
בברכה, חיים.


Last edited by חיים; 08-04-07 at 21:49..
  Reply With Quote
ישן 08-04-07, 21:03   # 5
הכומר
קידום ושיווק אתרים
תודה על תרומתך איש! (:
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: תל אביב, ישראל
גיל: 34
הודעות: 1,503

הכומר לא מחובר  

ציטוט:
נכתב במקור על ידי Eran-s צפה בהודעה
ח"ח על היוזמה.
מזכיר לי את ההסברים של המורה המטורף שלי לג'אווה. חח
חחח כן בדיוק מה שאני חשבתי עליו רק שאצלנו אחרי המכוניות עברנו לקלפים[או שאולי זה היה לפני].
אבל קבל ח"ח.
  Reply With Quote
ישן 08-04-07, 21:16   # 6
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

תודה על התגובות חברים!

ציטוט:
נכתב במקור על ידי הכומר צפה בהודעה
חחח כן בדיוק מה שאני חשבתי עליו רק שאצלנו אחרי המכוניות עברנו לקלפים[או שאולי זה היה לפני].
אבל קבל ח"ח.
XD, תודה הבאתי לי רעיון למחלקה במדריך הבא D:
זה בדיוק מחלקה מתאימה להורשה = ]
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql
  Reply With Quote
ישן 08-04-07, 21:43   # 7
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

נחמד +
חבל רק שזה לא OOP אמיתי וזה מתאים לגרסא 4 של PHP

גרסא 5 תומכת ב OOP בצורה יותר טוב עם construct ו destruct והצהרות כגון public , private ,static,protected וכד'.
מדריך על זה יכול להיות למשתמשים הרבה יותר מועיל

בכל מקרה כל הכבוד על המאמץ
  Reply With Quote
ישן 08-04-07, 21:49   # 8
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

ציטוט:
נכתב במקור על ידי RS324 צפה בהודעה
נחמד +
חבל רק שזה לא OOP אמיתי וזה מתאים לגרסא 4 של PHP

גרסא 5 תומכת ב OOP בצורה יותר טוב עם construct ו destruct והצהרות כגון public , private ,static,protected וכד'.
מדריך על זה יכול להיות למשתמשים הרבה יותר מועיל

בכל מקרה כל הכבוד על המאמץ
חבל שלא שמת לב ולא קראת את הכל
כי זה רק חלק א' של המדריך

ציטוט מהמדריך - "וכאן מסתיים לו חלק ב' הסקסי!
מתי שיהיה לי שוב זמן פנוי ( יום שבת הבא כנראה ), אכתוב את החלקים הבאים =]

בפעם הבא נלמד על בנאים, הגבלת גישה למתודות ומאפיינים. ובחלק האחרון נלמד על הורשה ( וכל מה שמסביבה )."

אם הייתי קורא הייתי רואה שזה רק חלק מהמדריך, ואת כל הדברים שציינת אני אלמד במדריך הבא..
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql
  Reply With Quote
ישן 09-04-07, 03:51   # 9
Ori The Man
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: חיפה
גיל: 33
הודעות: 3,694
שלח הודעה באמצעות MSN אל Ori The Man Send a message via Skype™ to Ori The Man

Ori The Man לא מחובר  

תודה רבה!!!
מדריך מצוייןןןן!! מוסבר כמו שצריך!! ומובן!!
עזרתה מאוד..!!
  Reply With Quote
ישן 09-04-07, 08:04   # 10
Gal Shafrir
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,626

Gal Shafrir לא מחובר  

תודה רבה מדריך מעולה וקליט!
__________________
בברכה,
גל שפריר - מעצב ומפתח אתרים.

עופר שפריר - במאי, תסריטאי ומפיק.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
מדריך למתחילים, מדריך oop, מדריך php


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 11:40.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ