مقایسه کد ایگنایتر و لاراول بدون تعصب
این بحث خیلی تو گروه های تلگرامی مطرح میشه و خیلی جنگا بر اساس تعصب راه میوفته ولی برای شما که حق انتخاب دارید چند گزینه وجود داره تا انتخاب بر سر نیازتون انجام بدید هر دو فریم ورک مزایا و معایبی داره میخوام یه خورده تخصصی تر بهش بپردازم :
حجم و سرعت :
از لحاظ حجم کدایگنایتر( ورژن ۳٫۱٫۹ ) ۲ مگابایتِ و لاراول ( ورژن ۵٫۶ ) برابر ۲۴ مگابایتِ
حجم کم کدایگنایتر دلایلی داره از دلایل مهم اون نزدیک بودن این فریم ورک به php خام و کمبود تو کلاس ها و لایه بندی ها می باشه ولی به شدت میشه اونو کاستوم شخصی کرد و از این سادگی به نفع خودمون باشه و ازش بهره ببریم ولی باز شما کد زنی شخصی داریم که باید یه فریم ورک خوب در اختیارمون بزاره ! به نظر من اگه شما قصد ساخت وب سرویسی دارید و سرعت براتون مهمه حتما از کدایگنایتر استفاده کنید و سمت لومن یا کدایگنایتر نرید .
حجم زیاده لاراول به خاطر کتابخونه های زیاد و پروایدر های که به سیستم اینجکت میشه اگه لاراول رو نصب کنید و وارد پوشه و فایل config/app.php بشید و حداقل پروایدر های که به سیستم اینجکت شده رو میبینید ولی وقتی که میخوایین وب سایت رو سرورتون آپلود کنید میتونید خیلی از حجم اضافی رو بردارید و کتابخونه های اضافی رو بردارید و میتونید راحت فایل ۲۴ مگ اولیه رو به ۱۱ مگ برسونید .
نوع نوشتار :
لاراول بهترین انتخاب میتونه باشه داخل این فریم ورک میتونید شی گرایی رو درک کنید و باهاش زندگی کنید . داخل کدایگنایتر از namespace و use نمیدونم برای چی ! ولی به دلایلی انجام نشده و همین باعث میشه ما همیشه داخل کنترلر یه خط زشت load استفاده کنیم .
این نمونه کد واکشی تمام کاربران از دیتابیس با لاراول
use App\User ;
class indexController extends Controller
{
function index() {
return User::all() ;
}
}
و داخل کدایگنایتر روند واکشی به صورت زیره
class indexController extends CI_controller
{
function __construct(){
$this->load->model('User') ;
}
function index() {
$this->db->get('users')->result() ;
}
}
میان افزار ها
یکی از امکانات قابل ستایش لاراول میشه به این بحث پرداخت داخل استفاده از میدلور میتونیم از اینجکت های احتمالی و از رسیدن درخواست ها قبل از اینکه وارد کنترلر بشه از فیلتر های رد بشه مثل فیلتر ماشین از پخش آلودگی میتونید جلوگیری کنید این به نظرم بهترین خصوصیت داخل هسته لاراول هستش ولی داخل کدایگنایتر وارد این بخش نشده … شاید بعدا روش زدن ساخت میدلور ها رو توضیح دادم تا با روش کار باهاش آشنا بشید .
تمپلیت انجین و cache
داخل view , لاراول از کد های اختصاصی استفاده میشه که اسم خودشو بلید گذاشته این صفحات توسط موتور بلید ترجمه میشه و از اون استفاده میشه این کد ها جز خلاصه کد زدن و زیباکردن کد زنی استفاده دیگه ای نداره ولی کار رو خیلی راحت میتونیم باهاش پیش ببریم مثلا
@php($name = "aminGhaninia")
داخل این روش ویو ما دو بار کامپایل میشه و باعث میشه سرعت نسبتا پایین بیاد به خاطر همین لاراول از کش ویو استفاده میکنه و کد های ما داخل پوشه storage\framework\views به صورت پایه تبدیل به کد های خام php میشه وبعد از هر بار خوندن صفحه فایل های کش شده نمایش داده میشن . داخل کد ایگنایتر ما چیزی به اسم کش ویو نداریم به دلیل اینه که ما اصلا از تملپت انجین استفاده نمیکنیم داخل کدایگنایتر و لاراول دارای سیستم کش هستش ولی لاراول دیسک های بیشتری برای ذخیره کش داره مثل دیتابیس , ردیس , فایل و ..
شاید باز هم امکانات خیلی مهم رو به این مطلب بیام اضافه کنم پس این بحث رو نمیبندم ...