PDA

View Full Version : اموزش و ترجمه سمفونی



pesarkhobeee
سه شنبه 11 فروردین 1388, 01:12 صبح
مدتی بود کتاب رسمی اموزش سمفونی رو با هزارو یه بدبختی میخوندم و وقتی چهار فصلشو خوندم یه ایده تو ذهنم جرقه زد!http://pitm.net/Blog/wp-content/uploads/symfony-logo.png (http://pitm.net/Blog/wp-content/uploads/symfony-logo.png)
قبل از هر چیزی از خانوم احمدی متشکرم که این کتاب رو برای دانلود گزاشتن و شما میتونید اونو از اینجا (http://i.jamejamins.ir/category/%D8%B1%D9%88%D8%B2%D9%86%D9%88%D8%B4%D8%AA/symfony) ببینید.

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

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



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

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

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

خوب مسئله اینجاس که ممکنه نصف ادمهایی که این pdf رو میخونن همشون اون کلمه خاص رو بلد نباشن و اگر نفر اولی که این کتاب رو میخوند معنی اونو با نرم افزار Adobe Acrobat (http://www.p30download.com/archives/utility/office/download_adobe_acrobat_reader_writer_full/) بر روی کلمه انگلیسیش کامنت میکرد و در اختیار بقه میگزاشت دیگه بقیه مشکلی نداشتن!!!

من این کارو تقریبا برای فصل اول کردم و شما میتونید در اینجا (http://blog.pitm.net/downloads/The%20Definitive%20Guide%20to%20symfony.rar) ببینیدش!

خوب پس با داشتن اکروبات و یکمی پشتکار میتونیم این کارو بکنیم ولی یه مشکل میمونه و اونم چگونگی اشتراک ایناس و من فکر میکنم یه SVN (http://codex.wp-persian.com/index.php?title=SVN_%DA%86%DB%8C%D8%B3%D8%AA_%D9%8 8_%DA%86%DA%AF%D9%88%D9%86%D9%87_%D8%A8%D8%A7_%D8% A2%D9%86_%DA%A9%D8%A7%D8%B1_%DA%A9%D9%86%DB%8C%D9% 85%D8%9F) شاید بتونه این کارو بکنه ، البته من اطلاعات دقیقی ندارم و خوشحال میشم پیشنهاداتو انتقادات خودتونو بگید (http://pitm.net/Blog/?p=75) تا یه حرکت درست و اصولی رو انجام بدیم.

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

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

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

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

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

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

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

سمفونی کاملا توسط 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 در سال 2005 منتشر شد.

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

قبل از سال 2003 فابین زمانی رو صرف تحقیق در مورد ابزارهای اپن سورس توسعه وب در زبان 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