Brook Framework

Brook Framework הוא שם לא הכי ברור עבור framework לפיתוח אתרי ווב דינאמיים באמצעות פסקל מונחת עצמים, המשוחררת תחת LGPL 2.brook-framework_hello-world

הסביבה מזכירה מאוד את הרעיון של framework כדוגמת dancer של פרל, וPadrino ברובי.

ההצהרה הרשמית של הפרוייקט היא בתמיכה קלה ב:

  • נהול ניתובים – כל הפעולות מתבצעות לפי ניתובים
  • יכולת עבודה עם פריימוורקים נוספים, המספקים תוספות לעבודה עם ווב
  • תמיכה מובנת בJSON ופעולות שונות עליו
  • תמיכה בפעולות REST והפרדת העבודה לפי סוג הבקשה
  • אינטגרציה עבור Lazarus
  • תמיכה בכתיבת תוספים עבור הframework

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

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

יחסית קל ופשוט מאוד ליצור ניתובים דינאמיים, וסביבת CGI טבעית לשרתי ווב כדוגמת אפצ'י, אך לא רק.
במידה ומשתמשים בלזרוס, אז בחירה ב Simple CGI application, זה כל מה שנדרש עבור Hello World, אך במידה ולא, יש צורך ליצור שלושה קבצים.
קובץ אחד הוא בעצם ה"תוכנה" שלנו, שהיא הcgi. קובץ נוסף הוא ברוקר שלנו שיודע לדבר עם שרת HTTP, והקובץ השלישי זו בעצם התוכנית שלנו. כמובן שניתן להוסיף עוד קבצים/מחלקות לפי הצורך.

אפשר להשוות זאת למשל לסינטרה, בה קובץ הראשון הוא כדוגמת config.ru, הקובץ השני הוא Rack והשלישי זה המודול של סינטרה.

הרעיון הוא שכל מחלקה אחראית על נתיב מסויים (path info), ממש כמו ב Rails למשל, ואנו רושמים את הנתיב בחלק הinitialization של היחידה:

...
initialization
  TMyClassHandler.register('/info/:user');
end.

המחלקה בעצם רשמה את עצמה לנתיב של info – כלומר http://example.com/info/ik

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

אתם מוזמנים לבדוק ואף לתרום חזרה לפרוייקט.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s