کتاب آموزش برنامه نویسی Ext JS
برای اولین بار در ایران
Ext JS
در مورد Ext JS بیشتر بدانید
خرید کتاب
مقایسه فریم ورک CodeIgniter و فریم ورک CakePHP قسمت اول
دسته بندی ها :فریم ورک php
۱۷ مهر ۱۳۹۳
2685 بازدید
فریم ورک کدایگنایتر

فریم ورک کدایگنایتر

رویکردهای فریم ورک های CakePHP و CodeIgniter از جهات زیادی شبیه به یکدیگر است، مانند پشتیبانی هر دو آنها از PHP4. هر گاه از یکی از آنها نام برده شود، به دیگری نیز اشاره خواهد شد.
هر دو یک معماری MVC ایجاد می کنند که به این معناست که آنها Model (داده)،Controller (که داده را از Model گرفته و به View می دهد) و View (آنچه که کاربر می بیند) جدا کرده اند.
هر دوی آنها از Routing (مسیریابی) استفاده می کنند که یک URL را انتخاب کرده و آن را به یک کاربرد خاص در یک کنترلر (که در CakePHP به آن action می گویند) map می کنند.فریم ورک CodeIgniter از عبارات با قاعده (Regular Expression) برای مسیریابی پشتیبانی می کند. در حالی که این ویژگی در CakePHP نسخه ی ۱٫۱ وجود داشت اما خیلی کامل نبود که در نسخه ی CakePHP 1.2 آپدیت شد.
هر دوی آنها از روش Scaffolding پشتیبانی می کنند که روشی خودکار برای تولید View بر اساس Model می باشد. Scaffolding به معنای ایجاد پروتوتایپ ساده می باشد و CodeIgniter با درخواست کردن یک کلمه ی کلیدی در URL برای دسترسی به Scaffolding، آن را به سطح بالاتری می برد. این امکان وجود دارد که فرد بتواند کلمه کلیدی را حذف کند، این گزینه کاملا اختیاری است. اغلب برنامه نویسان ترجیح می دهند که از این کلمه کلیدی استفاده نکنند زیرا گاهی پروژه های آنها شخصی می باشد و تمایلی ندارند که در مشاهده ی عمومی قرار گیرد و استفاده از کلمه کلیدی در این گونه موارد آزار دهنده خواهد بود.
رویکرد سادگی
اعتقاد بر این است که بخش اعظم جاذبه ی فریم ورک CodeIgniter مربوط به سادگی کار با آن است. اکثر کارها در کنترلر انجام می شود، در کتاب خانه ها بارگذاری شده، داده ها از Model دریافت می شود و در View نمایش داده می شود. همه چیز به صورت ساده و شفاف است و شما به راحتی می توانید نحوه ی انجام کارها را ببینید.
سادگی CakePHP در اتوماسیون آن است (که اصلاحا به آن جادوی خودکار هم می گویند). فرآیند کد نویسی در آن سریع تر انجام می شود اما بدون تحلیل هسته به سختی می توانید بفهمید که چه کاری در حال انجام شدن است. برخی از برنامه نویسانی که تمایل دارند روند انجام شدن کارها را بدانند، کار با فریم ورک CakePHP در ابتدا گیج کننده و دشوار است.

فریم ورک cakephp

فریم ورک cakephp

کار با Model ها

کار با Model ها در CodeIgniter بسیار روان است و اساسا به شما این امکان را می دهد که یک کوئری استاندارد SQL را با اندکی فرامین ساده مانند نمونه ی زیر، شبیه سازی کنید.

$query = $this->db->getwhere('mytable', array(id => $id), $limit, $offset);

$this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20);

$query = $this->db->get();

نکته: تغییر متد که در بخش دوم این مثال آورده شده است، فقط در PHP5 موجود است.

شما می توانید یک Model Object نیز ایجاد کرده، بار گذاری کرده و برای انجام یک task سفارشی، متد های سفارشی نیز ایجاد کنید. شما ترجیح می دهید که این کار را در Model انجام دهید و نه در کنترلر. CakePHP روش متفاوتی را با بارگذاری در مدلی که با کنترلر جاری منطبق است (کنترلر ها نیز همنام مدل مربوط به خود خواهند بود)، ارائه می دهد. شما می توانید این بارگذاری خودکار را غیر فعال کرده یا حتی model هایی را assign کنید که باید توسط کنترلر بارگذاری شوند.

فریم ورک CakePHP نیز از طریق ایجاد تمام موارد مربوط به model، کارها را برای شما ساده تر می سازد و این کار برای شما امکان کوئری گرفتن را بسیار ساده می سازد. برای مثال فرض کنید که یک کنترلر به نام post-controller  وجود دارد، این کنترلر می تواند کار زیر را انجام دهد:

$this->Post->Comment->findAllByPostId($id)

این کوئری خاص به این دلیل انتخاب شد که دو مفهوم مختلف را نشان می شود. اول این که می توان از طریق Post Model (با فرض اینکه رابطه ای در Post Model ایجاد شده باشد) به Comment Model دسترسی داشت. دوم این که یک متد به نام findAllbyPostId وجود دارد. CakePHP این امکان را به وجود می آورده که رکورد ها از طریق کوئری های findByX و findAllByX به دست آورد که در این جا X برابر با نام فیلیدی است که در تلاش برای یافتن آن هستید. جایی که گمان می رود فریم ورک Cake برتری داشته باشد، توانایی آن در به دست آوردن تمام داده های مرتبط به صورت خودکار است. کوئری زیر را به عنوان یک مثال در نظر داشته باشید:

$this->Post->findById($id)

این کوئری به صورت خودکار تمام فرامین مرتبط با این Post را متوقف می سازد. ابزار بسیار کاربردی و مناسبی می باشد.

ادامه ی این مقاله را در مقاله ی قسمت دوم مقایسه ی فریم ورک Codeigniter و فریم ورک Cakephp دنبال کنید.




نظراتتان را با ما در میان بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *