CML

CML (Creative Mind Library) همچنین معروف به General Lib یک کتابخانه کد متن باز تجاری نوشته شده با PHP Perl ، Javascript , HTML , CSS و ... است که شامل بیش از 60 بسته نرم افزاری است و هر کدام از این بسته ها شامل چندین کلاس هستند. بیش از 400 پروژه نرم افزاری با استفاده از نسخه های مختلف این کتابخانه کد نوشته شده اند.

لازم به ذکر است که این کتابخانه ترکیب و ادغام چندین کتابخانه کد است در نتیجه تا بحال نام های مختلفی داشته است. که از جمله این نام ها Salek Library ، CML ، CMF , IDEALIN است. می توان به نوعی گفت که نسخه کنونی ادغامی از کلیه این کتابخانه ها است.

این پروژه یکی از مهم ترین کدهایی است که تا بحال نوشته ام. و این اهمیت جدای از بحث فنی و قدمت کدهای این پروژه بخاطر تعداد بسیار زیاد پروژه هایی است که با آن نوشته اند. برخی از کدهای و کلاس های این پروژه چیزی حدود 10 سال قدمت دارند.

نکته قابل توجه دیگر ضریب کیفیت و امنیت است که بسیار بالا است. در نسخه های کنونی به ندرت باگ یا مشکل امنیتی پیدا می شود و بسیار پایدار است.

اما از نظر فنی می توانم ادعا کنم که در مقابل کتابخانه هایی نظیر PEAR ، Code Igniter و حرفی برای زدن دارد و خصوصیات منحصر به فرد خود را دارد. زمانی تصمیم داشته که از هسته PEAR نوشتن بسته های استفاده کنم ولی این بسیار زمان بر بود و پیچیدگی ها غیر ضروری بسیاری اضافه می نمود. در نتیجه هسته دیگری نوشتم که استفاده آن نه به سختی PEAR بود و نه معایب استفاده از هسته ساده یا عدم استفاده از هسته را داشت.

Design Pattern های مختلفی در این کتابخانه استفاده شده اند و نوآوری ها زیادی هم انجام شده است.

نکته آخر اینکه افراد مختلفی در این پروژه به شکل محدود مشارکت داشته اند. که مشارکت آنها شامل نوشتن تعداد بسته ، گزارش و رفع برخی خطاهای موجود بود است.

  • 2006 فصل اول : اولین نسخه کامل منتشر شد (نسخه 1)
  • 2007 فصل چهارم : دومین نسخه کامل منتشر شد (نسخه 2)
    در این نسخه از هسته جدید بسته های مهم کتابخانه کد CMF استفاده شد که در واقع از این نسخه به بعد می توان گفت که این کتابخانه حرفی برای زدن داشت و دارای خصوصیات منحصر به فرد خود شد
  • 2007/07/30 : منتقل شد به سیستم کنترل نسخه (VCS) خصوصی با نرم افزار Subversion
  • 2009/07/11 : سومین نسخه مهم تکمیلی و هماهنگ با کدهای نوشته شده با نسخه 2 منتشر شد (نسخه 2.5)
    این نسخه یکی از مهمترین انتشار ها محسوب می شود و شامل 13 بسته جدید ، سیستم مدیریت بسته و چندین ابزار کاربردی برای تولید کد ، مرکز بسته ها برای جستجو و دریافت نسخه به روز شده و بسیاری تغییرات دیگر است. با توجه به حجم زیاد پروژه های وابسته به این کتابخانه بسیاری از تغییرات نسخه 3 به نحوی به این نسخه منتقل شدند که مشکلی در پروژه های جاری به وجود نیاید
  • 2010 : سیستم کنترل نسخه به نرم افزار Bazaar تغییر کرد
  • ابتدای 2011 : دو انشعاب از مخزن اصلی در دو شرکت نرم افزاری به وجود آمد که از این تاریخ کاملا از خط اصلی توسعه مستقل شده اند
  • 2012/03/26 : نسخه 2.6 جهت بهبود پشتیبانی از PHP5 اضافه شد به همراه تغییرات مهمی از جمله پشتیبانی از وضعیت خطا در حالت E_ALL ، امکان افزودن مخزن بسته سفارشی توسعه داده شده توسط برنامه بنویسان ، بسته موجود در این مخازن از کلیه امکان سیستم مدیریت بسته CML برخوردار هستند
  • وضعیت کنونی : نسخه سوم که شامل بسیاری تغییرات بنیادی است و هنوز منتشر نشده است. اکثر تغییراتی که امکان داشت ، با نسخه 2.5 و 2.6 منتشر شده اند و فقط تغییرات بنیادی در این نسخه منتشر خواهند شد.

مشخصات

  • عمر: 
    1385-07-18 - 1392-07-18

دسته

تکنولوژی ها