הרשם | שאלות ותשובות | רשימת חברים | לוח שנה | הודעות מהיום | חיפוש |
|
|
כלים לאשכול | תצורת הצגה |
16-02-09, 19:56 | # 21 |
חבר וותיק
|
ניצן כתב לך פה על הרבה דברים נהדרים שאפשר ללמוד.
אומנם אני לא מסכים עם הכל(אהם, מה לעזאזל המחלקה המעצבנת הזו של ה SQL?? אם כבר אז PDO) עקרונית- במצב שלך הייתי מתחיל עם משהו הרבה יותר בסיסי- רכישת ניסיון. אתה אומר שאתה יודע ויודע ויודע, אך הקוד שלך לא מראה שאתה יודע ויודע ויודע. תעבוד יותר מסודר ויותר נקי- החל מאימות משתמש בSQL ולא ב PHP וכלה בשבירת סטרינגים כדי להכניס משתנים. פשוט ניסיון, זו מילת המפתח. |
16-02-09, 20:29 | # 22 |
חבר וותיק
|
מה קורה אלמוג =>
קבא 55 דפר 80 - מחכה לזימונים P: ובחזרה לנושא על איזה מחלקה מעצבנת אתה מדבר חח? לא דיברתי על שום מחלקה לדטאביס וPDO זה נחמד אבל יש יותר נוחים P: (לא יודע למה אני שנוא PREPARED STATEMENTS)
__________________
|
16-02-09, 21:46 | # 23 | |
משתמש - היכל התהילה
|
ציטוט:
PHP קוד:
חוץ מזה לא ראית מערכת, ראית קטע קטן ממערכת. ולפי מה זה לא נקי ולא מסודר? אתה לא מסביר אתה מה שאתה אומר, במיוחד שזה לא נכון. הקוד שלי דווקא כן מסודר, ולזה אני מודע בוודאות. |
|
16-02-09, 22:36 | # 24 | |
הוסטסניון
|
ציטוט:
במקרה הנוכחי, mysql_escape_string יספיק.
__________________
|
|
16-02-09, 22:47 | # 25 | |
חבר מתקדם
|
ציטוט:
|
|
16-02-09, 22:52 | # 26 |
משתמש - היכל התהילה
|
אוקי תודה לכם.
|
16-02-09, 23:16 | # 27 |
הוסטסניון
|
כן, זה ידוע
תודה על ההערה בכל זאת.
__________________
|
17-02-09, 12:26 | # 28 | |
חבר מתקדם
|
ציטוט:
אני רוצה לדעת עוד על מערכת plugins. כמו בDotNetNuke או בהרבה CMSים אחרים, אפשר להוריד נגיד קובץ ZIP ולהתקין אותו על ידי הפאנל ולהוסיף את הפונקציונאליות שלו לתוך אתר. |
|
17-02-09, 15:27 | # 29 |
חבר מתקדם
|
בתור מתכנת בעל עבר עשיר בהרבה שפות ,
יצא לי להעשיר את הידע מהתגובות של אנשים פה . אז נשאר לי רק להגיד , תודה .
__________________
|
17-02-09, 18:19 | # 30 | |
חבר וותיק
|
ציטוט:
פלאגינים הם למעשה תוספות, השאיפה שלך בכתיבת מערכת פלאגינים היא שהפלאגינים ידעו להשתלב במערכת הבסיסית בלי לפגום בה - כלומר אם תרצה לשפר את ההרשמה תוכל לעשות את זה מבלי לפגוע בקוד ולכתוב את הפלאגינים HARDCODED מה שנקרא שאיפה נוספת שלך זה כמו שיותר מודולאריות כלומר כאשר תעדכן גרסה של המערכת כמה שיותר פלאגינים ימשיכו לפעול (תאימות לאחורה) ותוכל לעדכן גרסה מבלי לחשוש שהפלאגינים ימותו אתה משיג את הדברים האלה בעזרת מספר נקודות חשובות שיש להתיחס אליהם בזמן הפיתוח: הוקים - HOOKS - אממ לא יודע איך לומר את זה בעברית, בגדול אתה צריך ליצור מערכת HOOKS שמה שהיא עושה זה למעשה EVALUATE() לקוד של הפלאגין שאמור להכנס באותו מקום דוגמא קלאסית - אני רוצה בסיום הצגת טופס ההרשמה להוסיף שדה שבו המשתמש יכניס לינק לפייסבוק, אז יש HOOK בקצה הטופס הרשמה, שאליו כל פלאגין יכול לשלוח מידע וכאשר העמוד הרשמה ירוץ במהלך זריקת הפלט המערכת תבדוק אם יש פלאגינים מותקנים שיש להם דברים להוסיף לאותו HOOK ואם כן היא תדפיס אותם. אותו דבר תקף גם בעיבוד (הרצה של קודי PHP) של הטופס - לאחר שהמשתמש שלח את הטופס יש עוד HOOK שבו יטען החלק שמעבד את המידע של הפיסבוק, לצורך הענין שולח אותו במייל בנוסף לזה כיוון שלפעמים יש שימוש באותו הוק על ידי 30 פלאגינים כדאי להגדיר סדר עדיפויות מ1 עד 10 כאשר הפלגינים בעלי הסדר עדיפות הכי רב יורצו קודם וכך הלאה מערכת דיבאגינג - עדיף לכתוב מערכת דיבאגינג לפחות ברמת הבסיס (סוג של SCAFFOLDING ) שתציג מה קורה בכל HOOK ותיתן למפתח אפשרות לדבג את הפלאגין שלו מבלי לגעת בקוד המקור - לא יודע אם אנשים נורמלים היו עושים את זה אבל עקב חיבה מיותרת לפיירפוקס הייתי יוצר INSTANCE של המחלקה של FIREPHP ונותן לאנשים לדבג איתה (: מערכת פלאגינים לאזור ניהול - כתיבת אפשרות נוחה ליצירת עמודי ניהול חדשים, עדיפות לתת טבלאת אקסטרה להגדרות קבועות של הפלאגינים - עוד רגע אסביר לעומק תהליך ההוספה וההסרה של פלגינים בדיוק לפני מספר ימים יצא לי לכתוב פלאגין לWORDPRESS אז יש לי כמה דברים להוסיף בנוסף לנאום הקבוע.. נקודות חשובות במערכת בנוגע להוספה: * כדי ליצור טבלאת משתנים שלמעשה תהיה במבנה כזה שכל שורה תקבל ID, NAME, VALUE וכמובן UNIQUE NAME וID AUTO INCREMENT כאשר הטבלה הזו מיועדת להחזיק ערכים כמו משתנים לדוגמא $a = 2; אז בדטאבייס נחזיק בNAME את a ובVALUE את 2 אולי אפשר להחזיק עוד עמודה לסוג המידע אחרכך יש לכתוב פונקציות להוספה של אופציחות לטבלה הזו ולשאיבה שלהם ולתת אופציה להשתמש בהם בפלאגינים * עמודי ניהול השיטה הכי נוחה ליצירת עמודי ניהול היא לתת כמה שיותר כוח - כוח ניתן בגישה מלאה - אין צורך ליצור (לפחות לדעתי) API לכתיבת עמודי ADMIN, אלא פשוט לבצע את זה באופן הבא: פונקציה A מחזיקה את התוכן של הADMIN PAGE, פונקציה B היא פונקציה שמוגדרת בAPI שכאשר אתה קורא לה כך: B('A', 'Menu Link Text', 'Page Title'); היא יוצרת עמוד חדש בעל לינק בתפריט שהוא כמו שהוזן וכותרת כמו שהוזנה כל שאר העמוד נוצר לאחר הרצה של הפונקציה A שהוזנה לפונקציה B שהיא כמובן מהAPI שכתבנו תהליך ההתקנה כאשר אתה מתקין פלאגין צריכים להיות מספר שלבים - כמובן שאפשר לשנות את זה ולALTER את זה כמה שתרצה (שוב - זה לפי מה שאני היתי עושה.. UP TO YOU) העלאת הקבצים צריכה להיות תיקית פלאגינים בשרת שאף אחד מלבד הקוד עצמו לא יכול לגשת אליה - אם ממש רוצים לחסום אפשר למקם מחוץ לתיקית הHTTP אבל HTACCESS יעשה את העבודה בעמוד התקנת הפלאגינים תראה את כל הקבצים בתיקיה קבצי ההתקנה של הפלאגינים יכילו איזהשהו מבנה של ההערות לדוגמא PHP קוד:
ברגע של הוספת הפלאגין אתה תגדיר HOOK מסוים וברגע של ההסרה עוד HOOK ברגע ההתקנה אתה תכתוב בפלאגין שלך קוד שיורץ כאשר נגיע לHOOK של ההתקנה (יצור טבלאות מסד נתונים יכניס דברים לזיפ יוסיף הגדרות לטבלאת המשתנים שהזכרתי קודם והלאה והלאה) לאחר מכן הכנסתי את הפלאגין בנוסף המערכת עצמה למען מערכת ניהול בפלאגינים תוסיף לטבלאת הפלגינים כי הפלאגין בעל שם הקובץ XYZA.PHP נוסף וכאשר תחזור לעמוד הצגת ההתקנות/הסרות תוכל לראות כי הפלאגין מסומן כפלאגין שמותקן מכאן והלאה הפלאגין מתפקד עם הHOOKS של המערכת לכל בוריה ויכול לגשת לכל דבר רצוי לספק בAPI את הROOTPATH של התיקיית פלאגינים למען גישה לוקאלית (להעלאת קבצים וכו') וגם URL מלא לכתובת האתר וURL לפאנל הניהול שמכאן הפלאגין ידע לנהל את עצמו לבד בתהליך ההסרה של הפלאגין מה שיקרה זה כשיגיע האינטרפרטר לHOOK של ההסרה הוא יריץ את קוד ההסרה של הפלאגין שלפני כן בפלאגין עצמו ביצענו ASSIGNMENT לפונקציית הסרה שכתבנו אל תוך הHOOK הזה וככה הוא יוסר מאותו הרגע נסיר אותו גם מטבלאת הפלגינים וכרגע הוא יוצג בתור פלאגין שלא מותקן קבצי הפלאגין ישארו בשרת - באמת שהם לא מפריעים לאף אחד אני הייתי עושה כמה שיפוצים אבל זאת הגישה הכי חכמה לכתיבת מערכת פלאגינים אני בטוח שיש פה חזרות שכתבתי ודברים שנכתבו לא טוב וכו' - אני לא ספץ עברית וגם קצת ישן כרגע בהצלחה לך (:
__________________
|
|
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|