ABA


"מישהו מוכן סוף סוף להסביר לי על Classים בPHP??"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #14896 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14896
hi_miz

דרג אמינות חבר זה
   00:03   17.03.09   
אל הפורום  
  מישהו מוכן סוף סוף להסביר לי על Classים בPHP??  
 
   לעזאזל עם הCLASS האלה!!!

אני מנסה להבין מה זה? למה צריך את זה? במה זה מועיל?
והכי חשוב איך מבצעים את זה?

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

תודה רבה לעוזרים


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  במיוחד בשביל OOP ronen333  17.03.09 09:08 1
  מצטרף, אני לא מבין איך זה בא לידי ביטוי באתר עצמו... CaTz 17.03.09 11:12 2
     מה? =/ ronen333  17.03.09 13:09 3
         תן לנו דוגמא למחלקה וכיצד היא משפיעה באתר מסוים hi_miz 17.03.09 13:18 4
             =/ ronen333  17.03.09 13:51 5
                 תודה רבה קודם כל :), עכשיו עוד שאלה: hi_miz 17.03.09 14:29 6
                     לא יודע בדיוק איך זה בPHP אבל אני מאמין שאותו דבר ronen333  17.03.09 14:39 7
                         בPHP זה Mr Andersson 17.03.09 16:34 8

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   09:08   17.03.09   
אל הפורום  
  1. במיוחד בשביל OOP  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 17.03.09 בשעה 09:14 בברכה, ronen333
 
אם נסתכל על יתרונות שיטת העבודה הOO :

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

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

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

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   11:12   17.03.09   
אל הפורום  
  2. מצטרף, אני לא מבין איך זה בא לידי ביטוי באתר עצמו...  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 17.03.09 בשעה 11:14 בברכה, CaTz
 
איך מחליטים מה יהיה אובייקט ומה יהיה רשום בעמוד עצמו?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   13:09   17.03.09   
אל הפורום  
  3. מה? =/  
בתגובה להודעה מספר 2
 
   א.עניתי.
ב.מה זאת אומרת איך אתה מחליט מה יהיה האוביקט? אתה מייצג נגיד כל טבלה בDB יהיה אוביקט, או כל מבנה אחר שאתה חושב שהוא הגיוני לעשותו |=
מחלקות צריך לתכנן, זה לא נופל מהשמיים. בדומה לתכנון DB.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hi_miz

דרג אמינות חבר זה
   13:18   17.03.09   
אל הפורום  
  4. תן לנו דוגמא למחלקה וכיצד היא משפיעה באתר מסוים  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   13:51   17.03.09   
אל הפורום  
  5. =/  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 17.03.09 בשעה 13:54 בברכה, ronen333
 
א.אומרים בבקשה.
ב.סתם דוגמה למחלקה פשוטה- מחלקת לקוח:

public class Customers
{
private int id;
private string name;
private string lastname;
private string password;
private string phone;
private string email;
public Customers()
{
//
// TODO: Add constructor logic here
//
}
public int ID
{
get { return this.id; }
set { this.id = value; }
}
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public string LastName
{
get { return this.lastname; }
set { this.lastname = value; }
}
public string Password
{
get { return this.password; }
set { this.password = value; }
}
public string Phone
{
get { return this.phone; }
set { this.phone = value; }
}
public string Email
{
get { return this.email; }
set { this.email = value; }
}

}


כמובן שזו מחלקה מאוד פשוטה.. כדי לעשות אותה באמת מכל טוב אתה תעשה לה פונקציות מתאימות שמטפלות בלקוח.


ונניח שאתה יוצר מחלקת שירות שמכילה את כל הפונקצנליות שלך-


public class ServiceMovies : System.Web.Services.WebService
{
[WebMethod]
public void RegisterCustomer(Customers customer)
{

string st = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath("~/App_Data/MyData.mdb");
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = st;

OleDbCommand cmmd = new OleDbCommand("INSERT INTO Customers (CustomerID,CustomerName,CustomerPassword,CustomerLastName,CustomerEmail,CustomerPhone)"+
"VALUES(@idParam,@nameParam,@passwordParam,@lastnameParam,@emailParam,@phoneParam)", conn);

cmmd.Parameters.Add("@idParam", OleDbType.Numeric).Value = (int)customer.ID;
cmmd.Parameters.Add("@nameParam", OleDbType.VarChar).Value = customer.Name.ToString();
cmmd.Parameters.Add("@passwordParam", OleDbType.VarChar).Value = customer.Password.ToString();
cmmd.Parameters.Add("@lastnameParam", OleDbType.VarChar).Value = customer.LastName.ToString();
cmmd.Parameters.Add("@emailParam", OleDbType.VarChar).Value = customer.Email.ToString();
cmmd.Parameters.Add("@phoneParam", OleDbType.VarChar).Value = customer.Phone.ToString();

conn.Open();
cmmd.ExecuteNonQuery();
conn.Close();

}
}

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

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hi_miz

דרג אמינות חבר זה
   14:29   17.03.09   
אל הפורום  
  6. תודה רבה קודם כל :), עכשיו עוד שאלה:  
בתגובה להודעה מספר 5
 
   לדוגמא הכנו את הCLASS שעשית למעלה
איך אנחנו מפעילים את כל האפשרויות שנמצאות שם?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות, דרג אמינות חבר זה
   14:39   17.03.09   
אל הפורום  
  7. לא יודע בדיוק איך זה בPHP אבל אני מאמין שאותו דבר  
בתגובה להודעה מספר 6
 
   אתה רושם נקודה ואז אתה ניגשם לממברס והפונצקיות של האוביקט.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Mr Andersson
חבר מתאריך 19.3.02
6234 הודעות, 1 פידבק, -2 נקודות
   16:34   17.03.09   
אל הפורום  
  8. בPHP זה  
בתגובה להודעה מספר 7
 
   ערכתי לאחרונה בתאריך 17.03.09 בשעה 16:34 בברכה, Mr Andersson
 
->
ולא נקודה

http://i60.tinypic.com/35aowg8.jpg


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net