הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה בקשר למחלקות (https://hosts.co.il/forums/showthread.php?t=47291)

Rom 10-06-07 19:45

שאלה בקשר למחלקות
 
שלום,
יש לי שאלה בקשר למחלקות בPHP.
מה ההבדל אם אני בונה מחלקה בPHP ובתוכה אני בונה פונקציות,
ואם אני אבנה את אותן הפונקציות אבל לא יהיו בתוך מחלקה?

תודה, רום.

Source 10-06-07 20:39

הפונ' יוכלו להשתמש למשל במשתנים פנימיים של המחלקה בעזרת this.
למשל יש לך מחלקת מסד נתונים, ומשתנה חיבור $myConnectVar, תוכל לגשת אליו כך:
קוד:

$this->myConnectVar
ולא צריך לשמור במשתנים גלובאליים ולהתעסק איתם בקוד עצמו...
זה אחד היתרונות :) לדעתי המשמעותי ביותר.
נראה לי גם שבמחלקות זה יותר בטוח או שקל יותר לאבטח.

DorWD 10-06-07 20:49

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

RS324 10-06-07 21:15

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

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

Rom 10-06-07 22:13

המשתנים וההורשה הבנתי,
אבל הסדר למה?
אם אני בונה את הקובץ DATABASE.php
ופשוט הפונקציות לא נמצאות בתוך מחלקה אחת (וככה אני קורא לקובץ ע"י include).
זה לא יותר מסודר, פשוט ונוח?

Eran-s 10-06-07 22:26

ציטוט:

נכתב במקור על ידי Rom (פרסם 497141)
המשתנים וההורשה הבנתי,
אבל הסדר למה?
אם אני בונה את הקובץ DATABASE.php
ופשוט הפונקציות לא נמצאות בתוך מחלקה אחת (וככה אני קורא לקובץ ע"י include).
זה לא יותר מסודר, פשוט ונוח?

מסודר, פשוט ונוח? לא.
הרבה יותר קריא כמחלקה.

4ior 10-06-07 22:35

זה לא בגלל שאין לך חיבור ביניהם.
תמונה שמסבירה:
http://img53.imageshack.us/img53/1230/cvsfob3.th.jpg

Eran-s 10-06-07 22:39

ציטוט:

נכתב במקור על ידי 4ior (פרסם 497155)
זה לא בגלל שאין לך חיבור ביניהם.
תמונה שמסבירה:
http://img53.imageshack.us/img53/1230/cvsfob3.th.jpg

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

RS324 11-06-07 00:28

ציינתי כבר שבחלק מהמקרים זה עובד יותר מהר ?

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

בתוך מחלקה זה יהיה יותר מהיר (וכן ערן אני בדקתי את זה)...


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

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