معرفی سمفونی

by Ahmed on ۱۰/۰۱/۱۳۸۸

مدتی بود کتاب رسمی اموزش سمفونی رو با هزارو یه بدبختی میخوندم و وقتی چهار فصلشو خوندم یه ایده تو ذهنم جرقه زد!symfony-logo

قبل از هر چیزی از خانوم احمدی متشکرم که این کتاب رو برای دانلود گزاشتن و شما میتونید اونو از اینجا ببینید.

قبل از اینکه چیزی از ایدم بگم یه توضیح راجع به متن پایین بدم!

متن زیر ترجمه ازاد  و نادرست و دست و پا شکسته ی من از بخشی از فصل اول این کتابه که فقط برای این فارسیش کردم تا یه معرفی کوتاه از روی مرجع رسمی به زبان فارسی از سمفونی وجود داشته باشه!

و اما در مورد ایدم!

باید بگم فکر نکنم ترجمه کل کتاب به صورت صحیح توسط ما مقدور باشه ! شایدم باشه؟

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

خوب مسئله اینجاس که ممکنه نصف ادمهایی که این pdf رو میخونن همشون اون کلمه خاص رو بلد نباشن و اگر نفر اولی که این کتاب رو میخوند معنی اونو با نرم افزار Adobe Acrobat بر روی کلمه انگلیسیش کامنت میکرد و در اختیار بقه میگزاشت دیگه بقیه مشکلی نداشتن!!!

من این کارو تقریبا برای فصل اول کردم و شما میتونید در اینجا ببینیدش!

خوب پس با داشتن اکروبات و یکمی پشتکار میتونیم این کارو بکنیم ولی یه مشکل میمونه و اونم چگونگی اشتراک ایناس و من فکر میکنم یه SVN شاید بتونه این کارو بکنه ، البته من اطلاعات دقیقی ندارم و خوشحال میشم پیشنهاداتو انتقادات خودتونو بگید تا یه حرکت درست و اصولی رو انجام بدیم.

کوتاه راجع به سمفونی

یک فریم ورک یا قالب کاری اغلب به کدها ساختار میدهد، و باعث میشود تا کدهای طراحان بهتر نوشته شوند و خواناتر باشند و همچنین قابل نگه داری تر!

همچنین طراحی برنامه را قانونمند میکند باعث اسانتر شدن برنامه نویسی میشود زیرا عمل پیچیده را به دستورات ساده تبدیل میکنید.

سمفونی یک فریم ورک کامل است که برای بهینه کردن صفحات وب بوسیله چندین خاصیت بهینه شده!

برای مبتدی ها کاری که اون انجام میده جدا کردن لایه نمایش از کدهای برنامه و جدا کردن هر دوی اینها از منابع داده است.

به وسیله ابزارها و کلاسهای متعدد سمفونی میتواند در کمترین زمان ممکن برنامه های تحت وب پیچیده را به سر انجام برساندبعلاوه ان ، وظایف رایج را به صورت خودکار انجام میدهد تا طراحان بتوانند به صورت کامل بر روی نقاط خاص برنامه خود تمرکز کنند.

اخرین نکته ای که میتوان ذکر کرد اینست که از دوباره کاری و افتادن در یک چرخه ، در ایجاد پروژه های متعدد جلوگیری میکند.

سمفونی کاملا توسط php5 نوشته شده و ازمایش خودشو توسط برنامه های گوناگون دنیای واقعی پس داده!

اون با اکثر data base های موجود سازگاره مانند mysql و postgre sql و oracle و microsoft sql server

اون بر روی تمام سیستم های unix base و windows قابل اجراست .

خوب حالا یه نگاه دقیقتر به خصوصیاتش میندازیم:

سمفونی برای براوردن نیازهای زیر درست شده:

- نصب و تنظیم ساده دراکثر پلتفرم ها (( و تنظیم شده برای کار بروی پلتفرم های استاندارد unix base و windows ))

- موتور پایگاه داده مستقل

- برای اکثر موارد براحتی استفاده میشه اما انقدر انعطاف داره که برای مواد پیچیده هم به کار بره

- با اکثر الگوهای طراحی و تمرینی سازگار است

- دارای کدهای بسیار خوانا است و برای خوانایی بیشتر برای مستند سازی از php documentor استفاده میکنه

- توسعه اسان و اجازه تلفیق ان با سایر کتابخانه ها

- خود کار سازی خصوصیات پروژهای وب

-

Based on the premise of convention over configuration—the developer needs to

configure only the unconventional

- Enterprise-ready—adaptable to existing information technology (IT) policies and

architectures, and stable enough for long-term projects

خود کار سازی خصوصیات پروژهای وب

اکثر خصوصیات رایج پروژه های وب به وسیله سمفونی خودکار سازی شده اند که به شرح زیرا ند:

- لایه های بین المللی درون ساخته اجازه ترجمه هر دو لایه داده و نمایش را برای محلی سازی محتوا میدهند.

- پوسته ها و لایه های ارائه محتوا (( رابط کاربری)) میتوانند توسط طراحان HTML ، بدون داشتن دانش از فریم ورک ساخته شوند . کمک کننده ها (( Helper)) موجب کاهش کدهای لایه ارائه بوسیله ایجاد قسمت های بزرگ ، تنها بوسیله صدا کردن توابع ساده میشوند.

- فرم ها از تصدیق اعتبار و تعدد خودکار پشتیبانی می کنند و این باعث تضمین کیفیت خوب داده در دیتابیس و یک تجربه کاربری بهتر میشوند.

- خصوصیت مدیریت حافظه نهان (( cash )) باعث کاهش پهنای باند مصرفی و تعداد مراجعات به سرور می شود.

- خصوصیت تصدیق و اعتبار موجب اسانتر شدن ساختن قسمت های محدود شده ی دسترسی می شود و همچنین موجب تسهیل مدیریت امنیت کاربرن می شود.

- مسیریابی و url های هوشمند موجب اسان شدن و دوستانه تر شده ادرس صفحات برای موتور های جستجو می شود.

- خصوصیت E-mail و API درون ساخته به برنامه ی وب اجازه عبور از فعل و انفعالات معمولی با مرورگر را میدهد.

- لیست ها بوسیله صفحه بندی و مرتب سازی و فیلترینگ خودکار ، کاربر پسند تر می شوند.

- وجود فاکتور های اضافه شونده ها (( plug-in )) و mixins قابلیت توسعه پذیری بالایی را ایجاد می کنند.

- فعل و انفعالات اجاکس راحتر انجام میشوند که این خود بخاطر وجود کمک کنندهای خاص این کار است

چه کسی سمفونی را ساخت و چرا؟

اولین شماره از سمفونی توسط بنیان گذار پروژه Fabien Potencier در سال ۲۰۰۵ منتشر شد.

فابین مدیر عامل شرکت Sensio است که به خاطر ایده های نو در گسترش وب یک نیروی فعال فرانسوی در زمینه وب محسوب می شود .

قبل از سال ۲۰۰۳ فابین زمانی رو صرف تحقیق در مورد ابزارهای اپن سورس توسعه وب در زبان php کرد ولی اون هیچ چیزی رو که نیازهاشو بر اورده کند پیدا نکرد !

زمانی که php5 منتشر شد ، اون به این نتیجه رسید که ابزارهای موجود به قدر کافی بالغ شدن که بتوان اونها رو در یک فریم ورک با تمام خصوصیات ادغام کرد .

متعاقبا اون یک سال زمان صرف ایجاد هسته ی سمفونی کرد و پایه کاری خودش رو بر روی قالب کاری MVC بنا کرد و اون رو به طرف ORM سوق داد و از کمک کنند های پوسته ی Ruby ON Rails هم استفاده کرد.

فابین اساسا سمفونی رو برای کارهای شرکت خودشون درست کرد تا یک قالب کاری موثر با راههای مشخص و منظم برای انجام سریعتر و موثر تر پروژه ها داشته باشند.

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

بعد از اینکه از سمفونی به طور موفقیت امیز در چند پروژه استفاده شد ، فابین تصمیم به انتشار اون تحت لیسانس اپن سورس کرد.

فابین این پروژه رو به اجتماع بخشید تا از بازخورد کاربران بهره مند شه و همچنین برای نشان دادن ورزیدگی شرکتش این کارو کرد و همچنین این کارو کرد چون جالب بود!

برای اینکه سمفونی یک پروژه موفقیت امیز اپن سورس باشه باید به طور گسترده به زبان انگلیسی مستند سازی میشد . فابین از کارمند دیگه شرکتش François Zaninotto خواست تا بر روی کدها مطالعه کند و یک راهنمای انلاین بنویسد!

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

ایا سمفونی برای من است؟

چه شما تازه کار باشید یا یک فرد خبره در php5 ، خواهید توانست که از سمفونی استفاده کنید . عامل اصلی در تصمیم گیری در استفاده از سمفونی برای پروژه شما اندازه ی پروژه شماست

اگر شما قصد طراحی یک وب سایت ساده با پنج الی ده صفحه و دسترسی محدود بانک اطلاعاتی دارید و هیچ لزومی ندارد که کارایی اون و مستند سازیشو تضمین کنید باید فقط از php استفاده کنید.

در این حالت شما هیچ سودی از استفاده از یک فریم ورک نمی کنید و استفاده از فریم ورک یا حتی شی ء گرایی و MVC فقط موجب کند شدن چرخه طراحی شما میشود.

یک نکته دیگر هم وجود دارد و ان اینست که سمفونی برای اجرا بر روی هاست های اشتراکی (( shared server )) بهینه سازی نشده است.

از طرف دیگر اگر شما وب سایت های پیچیده طراحی می کنید با یک منطق سنگین تجاری ، php تنها کافی نیست!

اگر در اینده قصد نگه داری و توسعه کدهای خود را دارید ، باید کدهای شما کم ، خوانا و تاثیر گذار باشد.

اگر میخواهید امکانات پیشرفته ای را مانند Ajax را در سایتتان به کار ببرید نمی تواند فقط چند صد کد جاوا اسکریپت را بنویسید.

اگر میخواهید سریع طراحی کنیدو لذت ببرید ، php تنها مایوس کننده هست.

در تمام این موارد سمفونی برای شماست

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

بیشتر نگردید ، سمفونی چاره مشکلات شماس

خلاصه

سمفونی یک فریم ورک طراحی برنامه های وب بر پایه php5 است.

اون یک لایه جدید بر روی php اضافه کرده و با فراهم کردن ابزارهایی موجب تسریع و تسهیل فرایند ایجاد وب سایت های پیچیده میشود.

برای درک اون باید یک ذهنیت ساده از oop یا شی ء گرایی ، ORM یا نگاشت ارتباطات اشیاء و rapid application development (RAD) داشته باشیم.

تنها چیزی که باید به طورفنی از قبل بدانید php است.

قبل از اینکه شما کار کردن با سمفونی را شروع کنید ، شما باید چند مفهوم پایه ای را بدانید و انها عبارت اند از :

OOP , ORM , RAD, DRY , KISS , TDD , YANL , PEAR

[email protected]

There are 22 comments in this article:

  1. ۱۱/۰۱/۱۳۸۸چالیست says:

    خیلی خوب بود
    چن وقت پیش باهاش آشنا شدم ولی فرصت نشده که تستش کنم
    آفرین
    سپاسگذارم

  2. ۱۱/۰۱/۱۳۸۸چالیست says:

    نمی دونم چرا از فونت تاهوما استفاده نمی کنید
    چشم آدم در میاد

  3. ۱۱/۰۱/۱۳۸۸فرید says:

    حواسم نبود اخه ساعت ۲ نصف شب دیگه مخ ادم هنگ میکنه!

  4. ۱۱/۰۱/۱۳۸۸مهدی says:

    سلام فرید جان.
    من کاملاْ با نظر شما موافقم و همین الان اعلام همکاری می‌کنم.
    اما یه نکته هم هست که باید به اون توجه شه!
    اونم انتخاب کتابی است که باید ترجمه شه.
    من برای شروع کار با سیمفونی Jobeet رو انتخاب کردم. چون فکر می‌کنم برای مبتدی‌های سیمفونی مناسب‌تر باشه. چرا که قسمت‌ها و جنبه‌های مختلف سیمفونی را در قالب Tutorial آموزش می‌ده که این می‌تونه خیلی موثر‌تر باشه.
    کتاب انتخابی شما فکر می‌کنم بیشتر بکار دوستانی می‌یاد که تا حدودی کار با این فریم‌ورک رو بلدن.
    در هر صورت من آمادم!!!
    راستی می‌شه در صورت انتخاب jobeet برای ترجمه، ترجمه رو در سایت رسمی پروژه در این آدرس برای همه منتشر کرد!!!
    http://www.symfony-project.org/jobeet/1_2/Doctrine/en/
    موفق باشید…

  5. ۱۲/۰۱/۱۳۸۸فرید says:

    سلام مهدی خان
    من این اموزش ها رو ندیده بودم!
    به نظرم که نظر شما معقولتره.
    از یک جهت موقع ترجمه به این نکته بر خوردم که سمفونی ظاهرا با هاست های شیر شده مشکل داره و برای اونا بهینه نشده و این یکم منو نگران کرده
    ولی در کل منم امادم
    شما هم موفق باشید

  6. ۱۶/۰۱/۱۳۸۸مهدی says:

    سلام فرید جان
    من فصل اول کتاب jobeet رو ترجمه کردم. (کامل)همین امروز فردا منتشرش می کنم.
    اما هنوز با کامنت گذاشتن تو Adobe Reader مشکل دارم.
    می گه باید document right فعال باشه تا بتونم کامنت بذارم
    مشکل رو اینجا هم مطرح کردم که هنوز جوابش پیدا نشده.
    http://www.technotux.org/html/PNphpBB2-viewtopic-t-17624.html
    شما نمی دونی باید چکار کرد؟ البته من تو لینوکسم!

  7. ۱۶/۰۱/۱۳۸۸فرید says:

    سلام مهدی خان
    خیلی خوشحال شدم و برای دیدن ترجمه لحظه شماری میکنم
    در اون مورد هم باید بگم ادوب اکروبات ریدر این امکان رو نمیده!!!
    برا همین من اومدم تو ویندوز تا بتونم از ادوب اکروبات که این امکانا رو میده استفاده کنم
    توجه داشته باش اکروبات خالی با اکروبات ریدر متفاوته و میتونی از لینک زیر دانلودش کنی
    http://www.p30download.com/archives/utility/office/download_adobe_acrobat_reader_writer_full/
    موفق باشی

  8. ۲۲/۰۱/۱۳۸۸جوملا says:

    سیار عالی بوى با تشکر از موضوعات زیبا و جالب شما و با امید پیشرفت روزافزون شما در بهبود این سایت

  9. ۲۳/۰۱/۱۳۸۸سید علی ساعدی says:

    دوست عزیز سلام

    ازتون دعوت میکنیم به گروه PHP در ایران بپیوندید تا مرجع کاملی تشکیل بشه برای رشد کیفی و کمی PHP در ایران.

    http://www.phpgroup.ir
    http://forum.phpgroup.ir
    http://blog.phpgroup.ir

  10. ۱۶/۰۲/۱۳۸۸نوید says:

    سلام، من الان یه پروژه با symfony برای یکی از سازمانهای دولتی دارم کار میکنم. خوشحال میشم بتونم کمک کنم.
    موفق باشید

  11. ۱۶/۰۲/۱۳۸۸فرید says:

    انشا الله که تجربیاتتونو به اشتراک بزارین تا همه استفاده کننئ!
    موفق باشید

  12. ۹/۰۷/۱۳۸۸احسان says:

    اگه هاستی که سیمفونی را ساپورت کنه میخواید میتونید از http://www.PersianDot.com بگیرید

  13. ۲۸/۱۰/۱۳۸۸hidensoft says:

    فکر می کنم منظورت از YANL همون YAML بود دیگه یا بهتر بگم YML فایل

  14. ۲۸/۱۰/۱۳۸۸فرید says:

    خدا بخاد فکر کنم منظورم همون بوده!
    :P

  15. ۲۵/۰۲/۱۳۸۹baran says:

    salam
    maqale shoma k dar morede moarefi mvc va sakhte proje mvc-gallery bod ra khondam.
    shoma bar mabnae kodom framework on ro neveshtid.man tazekaram.dar hale hazer roe 1 proje ba php kar mikonam.vali chon mikham proje sakht yafte e bashe daram dar morede mvc mikhonam.lotfan sari javabam ro bedid
    (rasti yadam raft tashakor konam projeye khobi bod )tnx

  16. ۲۵/۰۲/۱۳۸۹فرید says:

    سلام اگر به دقت اول مقاله رو میخوندین میفهمیدین که بر مبنای فریم ورک خاصی نبود بلکه یه پیاده سازی خالی از mvc بود! راجع به اینکه به شما فریم ورکی رو پیشنهاد کنم اگر وقت و حوصلتون کمه و کاربزرگیم نمیخواهید بکنید code igniter و در مورد عکس این شرایط cake php رو پیشنهاد میدم.موفق باشیدو شنگول !

  17. ۲۷/۰۲/۱۳۸۹baran says:

    سلام
    فکر نمی کردم بشه به همین راحتی مدل mvcرا پیاده کرد،شاید چون هنوز درک درستی از فریم ورک ها ندارم چنین سوالی برایم پیش اومده.
    در مورد CIچیز زیادی نشنیدم،خودم می خواستم با سیمفونی کار کنم .
    اگر منبع خوبی برای CIدارید لطفا لینکش را بذارید .

    با تشکر

  18. ۲۷/۰۲/۱۳۸۹فرید says:

    والا بهترین منبع همون سایتشه ! http://codeigniter.com . اینکه چیزی نشنیدین شاید بخاطر ضعیف تر بودنشه ولی من برای باغچه از بیلچه استفاده میکنمو برای جاده از بیل مکانیکی! امیدوارم منظورمو فهمیده باشین. در مورد سمفونیم خیلی خوبه ، فقط بر طبق مستنداتش یه نکته داره رو هاستای شیر نمیشه اجراش کرد! بهرحال صلاح مملکت خویش خسروان دانند کیک رو هم نگاه کنید ;) موفق باشین

  19. ۲۷/۰۲/۱۳۸۹baran says:

    سرعته کیک خیلی کنده ،حالا در مورده این بیلچه هم فکر می کنم.ebookiهم اگه پیدا کردین لطفا بگین.
    فوری فوتیه!سریع باید سایتم رو جمع کنم.
    ممنون

  20. ۲۸/۰۲/۱۳۸۹فرید says:

    والا میدونم ایبوک داره ولی فیلمای اموزشی خود سایتش محشرن + منابع اموزشی دیگش! مشالم خواستین به myfavoritecms من مراجعه کنید

  21. ۲۳/۰۵/۱۳۹۱Javad says:

    عزیزم یه لینکی بذار که بشه استفاده کرد،لینک دانلود کتاب کار نمیکنه!
    ممنون

  22. ۲۵/۰۵/۱۳۹۱pesarkhobeee says:

    ببخش اما از این مطلب مدتها گذشته و من چند بار ادرس وبلاگمو عوض کردم و در این بین چیزهایی دیگه نیست. در کل مطمئنم با گوگل کردن به حاهای بهتری میرسی
    موفق باشی

Write a comment: