# زبان های اسکریپتی > PHP > سوال: فریم ورک چیست؟

## sassan.samiei

سلام..
می خواستم بدونم که فریم ورک چیه ؟
و چطور کار میکنه؟
میشه چند تا معرفی کنید؟
ایا drupal هم فریم ورکه ؟
میشه در مورد Drupal توضیح بدید؟
با تشکر از همه دوستان :D

----------


## vahid4134

> سلام..
> می خواستم بدونم که فریم ورک چیه ؟
> و چطور کار میکنه؟
> میشه چند تا معرفی کنید؟
> ایا drupal هم فریم ورکه ؟
> میشه در مورد Drupal توضیح بدید؟
> با تشکر از همه دوستان :D


فریم ورک که خیلی در موردش بحث شده
http://www.iranphp.net/index.php?opt...=1934.msg12718
توضیح اضافه اینکه یک CMS می تونه از یک framework تشکیل شده باشه اما یک framework نمی تونه یک CMS باشه.
drupal هم یک cms هست

----------


## امید امرایی

> سلام..
> می خواستم بدونم که فریم ورک چیه ؟
> و چطور کار میکنه؟
> میشه چند تا معرفی کنید؟
> ایا drupal هم فریم ورکه ؟
> میشه در مورد Drupal توضیح بدید؟
> با تشکر از همه دوستان :D


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

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

----------


## sassan.samiei

ممنون از همه دوستان .
میشه بیشتر در مورد Drupal توضیح بدید ؟

----------


## hidensoft

Drupal یه CMS هست که برای کار های خبری خیلی مفید هستش . همین. البته اکثر CMS به یک Framework تبدیل میشن در نهایت.

----------


## tanha2007

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

----------


## vahid4134

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


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

----------


## sassan.samiei

> فریم ورکهای قوی همیشه دارای مثالها و داکیومنت قوی هستند و نیازی به این کار نیست. فریم ورک بدون داکیومنت و مثال اصلا به درد نمی خوره


میشه چندتا از این فریم ورک ها را معرفی کنید ؟
ممنوم

----------


## vahid4134

http://www.phpframeworks.com/

----------


## weblox

سلام دوستان

بهتر دیدم این تاپیک رو بالا بیارم به جای یک تاپیک جدید.

آیا Dreamweaver یک فریم ورکه؟!

ممنون

----------


## Reza1607

نه
دريم يك ويرايشگر هستش

----------


## shahin1986

*فریم ورک چیست و چگونه فریم ورک مناسب را انتخاب کنیم ؟* نویسنده دانیال, در موضوع شی گرایی, فریم ورک, پی اچ پی خیلی وقته که چیزی ننوشتم .. بیشتر بخاطر درگیری و فشار زیاد کاری بود. به هر حال .. می رم سر اصل مطلب *فریم ورک چیست ؟* در نگاه اول فریم ورک به هر کتابخانه ای گفته می شود که نوشته شده باشد. اما فریم ورک چیزی بیش از یک کتابخانه است. به عنوان مثال یک شرکت سازنده خودرو در نظر بگیرید. آیا این شرکت ها هر بار برای ساختن خودرو جدید تمام نقشه ها را از از اول طراحی می کنند ؟ مطمئنا جواب منفی هست. فریم ورک ها در برنامه نویسی چنین معنی دارند. اصولا فریم ورک ها بر اساس ساختار برنامه نویسی شی گرایی تحت عنوان *M*odel , *V*iew , *C*ontroller به اختصار MVC ساخته می شوند. اما نمی توان گفت کتابخانه هایی که بر اساس شی گرایی ساخته نشده اند فریم ورک نیستند. عموما پرتال ها و سیستم های مدیریت محتوا مثل جوملا ، مامبو ، نیوک ، وردپرس و … در نهایت تبدیل به یک کتابخانه یا فریم ورک می شوند. *چرا باید از فریم ورک استفاده کنیم ؟* هیچ اجباری برای اینکه از فریم ورک استفاده کنید وجود نداره. اگر شما یک پرتال خوب رو بدون استفاده از فریم ورک بسازید می تونه خودش یک فریم ورک یا کتابخانه خوب باشه اما دلیل بر ضعف شما در برنامه نویسی نیست. برنامه نویس ها معمولا دلایل بسیار زیادی برای استفاده یا عدم استفاده از فریم ورک دارند و معمولا بیشتر برای اثبات اینکه استفاده از فریم ورک صحیح است به مثال ” چرخ را نباید دو بار اختراع کرد ” روی می آورند که این هم غلط است. دلیلی برای اختراع دوباره چرخ وجود نداره مگر اینکه چرخ جدید چرخی بهتر از چرخ قدیم باشه. کلا می خواستم بگم که هیچ وقت از اینکه از فریم فرک استفاده نمی کنید احساس پشیمونی نکنید. *چه زمانی باید شروع به نوشتن فریم ورک کرد ؟* متاسفانه یکی از ضعف های برنامه نویس های ما این هست که به محض یادگیری زبان PHP شروع به نوشتن یک فریم ورک می کنند. البته جوان هستند و جویای نام اما ساخت یک فریم ورک از صفر وقتی شما تجربه کافی ندارید در نهایت باعث می شود که پروژه شما منحل یا بدون استفاده کننده تبدیل شود. این مورد رو من زیاد دیدم متاسفانه. زمانی می تونید به ساختن یک فریم ورک روی بی آورید که شما مهارت و دانش کافی رو داشته باشید و هیچ کدام از فریم ورک های موجود توان برآورده کردن نیاز های شما را ندارد. در این زمان به نظر من شما می تونید شروع به ساخت یک فریم ورک کنید اما همیشه این رو باید به یاد داشته باشید که بروز رسانی و گرفتن باگ ها به عهده شماست. *کدام فریم  ورک را انتخاب کنیم ؟* من با فریم ورک های Codeigniter , Cakephp , ZendFramework , Symfony آشنایی دارم. عموما برنامه نویس ها از CodeIgniter و Cakephp استفاده می کنند در ایران. به نظر من اگر شما یک پروژه خیلی ساده و کوچک دارید Codeigniter انتخاب خوبی خواهد. چرا که از سرعت بالا و سادگی بالایی برخوردار است. Cakephp فریم ورک قوی با ساختار مناسب برای کار های حرفه ای می تونه باشه . اما خب من ضعف هایی در Cakephp دیدم ولی یکی از بهترین قسمت های این فریم ورک لایه Model و ORM هست و در این مورد می توان گفت بسیار خوب عمل کرده اند طوری که کار با دیتابیس برای  برنامه نویس بسیار راحت شده. ZendFramework یکی از بهترین فریم ورک هاست . بخاطر اینکه مثل یک کتابخانه معمولی در کنار پروژه شما قرار می گیرد و شما قادر هستید که از تمامی قسمت ها هر طور که مایل هستید استفاده کنید و یا تغییرات لازم را بدهید. دقیقا مانند یک کتابخانه قوی و مستحکم. در نهایت به نظر بنده symfony قدرت مطلق فقط و فقط برای پروژه های حرفه ای و عظیم ساخته شده . البته این گفته تا نسخه ۱٫۴ درسته و در نسخه ۲ و تغییراتی که داده شده سرعت اینقدر بالا هست که شما در پروژه های کوچک هم می توانید به سادگی از این فریم ورک استفاده کنید. نهایتا انتخاب فریم ورک باید خیلی دقیق باشه . معمولا برنامه نویس ها نمی تونن با چندین فریم ورک هم زمان کار کنند. پس سعی کنید فریم ورکی را انتخاب کنید که بتونید همیشه استفاده کنید و کمتر دچار مشکل بشوید. *آیا فریم ورک سرعت اسکریپت را پایین می آورد ؟* بله. چون فریم ورک ها از کلاس های زیادی استفاده می کنند معمولا این مشکل وجود دارد که مقدار حافظه بیشتری مورد استفاده قرار می گیرد. اما سرعت آنچنان لامس نخواهد بود که شما بتوانید تشخیص دهید فلان اسکریپت از فریم ورک استفاده کرده یا خیر. همه چیز بستگی به ساختار فریم ورک دارد و نحوه فراخوانی کلاس ها و استفاده از Cache تاثیر بسیار بالایی در سرعت نرم افزار خواهد داشت.

----------


## dashjalal

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

----------


## dashjalal

سلام دوستان
نرم افزار برلند هم یک فریم ورک هست ؟

----------


## arenaw

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

----------


## dashjalal

> فریم ورک ربطی به نرم افزار ویرایشگر نداره تا اونجایی که من میدونم، برای مثال شما یه فانکشن مینویسید که شامل 20 خط کد هستش و یه مقداری رو برمیگردونه،
> اگه شما این رو فقط توی کار خودت استفاده کنی خب میشه یه فانکشن یا کلاس ساده، ولی یه زمانی هست این فانکشنا و کلاسایی که شما نوشتی توی برنامه نویسا جا میافتن و همه ازشون استفاده میکنن و تبدیل به یه کدهای کاربردی و واجب واسه برنامه نویسا میشن، خب دیگه اینجاس که این کدها رو همه به یک فریم ورک میشناسن.
> البته این فانکشنا باید یک سری استانداردهایی داشته باشن و نیازهای برنامه نویسی که ازش استفاده میکنه رو کاملا براورده کنه تا تبدیل به یه فریم ورک بشن.


 سلام
ممنون از پاسخ .
پس کاملش کنم :
فریمورک چیست ؟
فریمورک به برنامه ای که دربرگیرنده ی کلاس ها و توابع باشد و برای خلاصه تر شدن برنامه نویسی و اجرای سریعتر سایر نرم افزار های نوشته شده برپایه ی همان برنامه ( فریمورک ) باشد گقته میشود . فرقی هم ندارد چه تحت وب باشد و چه سیستمی .

----------


## siavash82ir

کیک پی اچ پی سال 2005 توسط یک برنامه نویس لهستانی بنام Michal Tatarynowicz آغاز شد که هدف اصلی آن یک چهارچوب کاربردی و سریع در پی اچ پی بود که پس از آن برنامه نویسان دیگری توانستند برای بهبود این پروژه کمک کنند و در سال 2006 نیز اولین نسخه از آن منتشر شد.

طراحی سایت با کیک پی اچ پی


CAKE يک FRAMEWORK با قابليت گسترش سريع براي  پي اچ پي است که از الگوهاي عمومي برنامه مانند frot controller , active record ,… و براساس  معماریmodel, view, controller) MVC) ایجاد شده  است که هم باعث قدرتمند سازی نرم افزار و هم به آسانی قابل درک است.cakephp تحت لیسانس MIT بصورت کاملا رایگان عرضه می شود و در صورت تمایل می توانید برای ارتقا کیفی این نرم افزار در سایت رسمی کیک کمک مالی کنید .فریم ورک کیک پی اچ پی ساختار بنیادی برای برنامه نویسان  ایجاد کرده است که براحتی بتوانند بدون کاهش انعطاف پذیری برنامه های کاربردی وب را ایجاد نمایند.

فریم ورک (FRAMEWORK) چیست؟

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

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

دلیل اصلی استفاده از فریم ورک کیک نسبت به بقیه فریم ورکهای پی اچ پی مانند symphony , codeignter ,… این است که نیاز به استفاده از دستورات پیچیده برنامه نویسی مانند آرایه ها و توابع وکلاسها نیست همچنین فریم ورک cake php نیز نشان دهنده پایگاه قوی از کتابخانه و توابع است که به کاربران اجازه می دهد به راحتی نرم افزار خود را بصورت سفارشی ایجاد نمایند.

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

مدل ها  Models :

مدل بازنمایی فعال جداول پایگاه داده و در برنامه های کاربردی کیک پی اچ پی برای اهداف دسترسی به داده ها استفاده می شود. آنها می توانند به پایگاه داده شما متصل شوند، مدل معمولا نشان دهنده یک جدول پایگاه دادها است که برای دسترسی به هر چیزی که داده ها از قبیل فایل ها، سوابق LDAP،  iCal یا ردیف در یک فایل CSV ذخیره شده است مورد استفاده قرار می گیرد و برای منطق نیز باید از کنترل کننده ها استفاده شود.

نماها  view :

نمایش محتوای فایلها به صورت قالب و دسته بندی شده به کاربر .متغیرها، آرایه ها و هر گونه اشیاء که در نماها استفاده می شود از طریق یک کنترل کننده ثبت شده است نماها نیز شامل منطق پیچیده ای نیست و در عوض تنها ساختارهای کنترل لازم برای انجام عملیات خاص، مانند تکرار داده های جمع آوری شده از طریق یک ساختار مانند حلقه foreach، در نماها موجود است.

کنترل کننده ها Controller :

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

کمک کننده ها Helpers :

کمک کننده ها نشان دهنده طبقات مولفه مانند ارائه درخواست به لایه ها برنامه است، که حاوی منطق و نماها و عناصر مشترک بین آنها است.

----------


## MMSHFE

تاپیک 2 سال قبل رو بالا نیارین. تاپیک قفل شد.

----------

