ایراکد > آکادمی > آموزش برنامه نویسی > فریم ورک لاراول چیست و چرا باید از فریم ورک Laravel استفاده کنیم ؟
زبان برنامه نویسی PHP یکی از برترین و محبوبترین زبانهای برنامه نویسی در حوزه طراحی وب است. این زبان برنامه نویسی Framework های بسیار زیادی دارد که لاراول یکی از آنها است. عاملی که فریم ورک لاراول را از سایر فریم ورکهای زبان PHP متمایز میسازد، ویژگیهای زیادی است که در ادامهی مقالهی فریم ورک لاراول چیست، بهطور کامل به توضیح هر کدام از آنها میپردازبم.
در حال حاضر اکثر شرکتهای ایرانی و حتی خارجی برای نیروی برنامه نویس به دنبال استخدام برنامه نویس لاراول هستند. پس اگر میخواهید بدانید علت محبوبیت و موفقیت فریم ورک لاراول چیست و چرا باید آن را انتخاب کنید، در ادامه این مقاله، با معرفی لاراول و مزایای آن نسبت به بقیه فریم ورکها، با ایراکد همراه باشید.
شاید ابتدا برای شما این سوال پیش بیاید که فریم ورک چیست؟ فریم ورک یا Framework در لغت به معنی چارچوب است.
فریم ورک برنامه نویسی مجموعه ای از کتابخانهها، استانداردها، دیزاین پترنها و قوانین کدنویسی است که در بستر یک چارچوب نرم افزاری در اختیار توسعه دهندگان و برنامه نویسان قرار میگیرد. برای انواع زبانهای برنامه نویسی مختلف، فریم ورکهای متعددی توسعه داده شده است.
هر یک از این فریم ورکها برای هدفی خاص ایجاد شدهاند، برای مثال فریم ورکهای CodeIgniter ,Symfony ,Zend ,Phalcon CakePHP و Yii که جز برترین فریم ورکهای زبان PHP بعد Laravel میباشند.
بنابراین برنامه نویسان و توسعه دهندگان از فریم ورکها بهعنوان بستری استاندارد برای طراحی و توسعه اپلیکیشنهای خود استفاده میکنند. در فریم ورکها بسیاری از کدها و دستورات بهصورت از پیش نوشته شده مورد استفاده قرار میگیرند. این توابع و دستورات توسط توسعه دهندگانی با تجربه و متخصص آماده شده اند و برنامه نویسان با استفاده از آنها میتوانند اپلیکیشنهای خود را با سرعت، امنیت و کیفیت بالاتری توسعه دهند.
زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید. از لاراول میتوان به عنوان محبوبترین فریم ورک زبان برنامه نویسی PHP یاد کرد. این فریم ورک توانسته است در زمانی کوتاه، به اولین گزینهی توسعه دهندگان برای توسعه برنامههای پیچیده تحت وب تبدیل شود.
لاراول فریم ورکی مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. این فریم ورک امکانات هوشمندی در اختیار برنامه نویسان قرار میدهد و برنامه نویسی را برای آنها لذت بخشتر میکند.
این فریم ورک در بین سایر فریم ورکهای PHP از امنیت و سرعت توسعهی بیشتری برخوردار است و از طریق آن شما قادر خواهید بود بدون اینکه تغییری در کدهای اصلی ایجاد کنید، عملکرد بسیاری از بخشها را تغییر دهید. لاراول کتابخانههای بسیار متنوعی دارد و از اغلب کتابخانههای فریم ورک سیمفونی نیز استفاده میکند. همچنین این فریم ورک سرویسهای مختلفی را برای برنامه نویسان ارائه میدهد. به عنوان مثال سرویس هایی همچون تأیید هویت، دسترسیهای کاربران، کنسول Artisan، پرداخت و صورتحساب، کش (Cache) و … که تنها بخش کوچکی از سرویس هایی است که این فریم ورک در اختیار برنامه نویسان قرار میدهد.
حال که فهمیدیم فریم ورک لاراول چیست، در این بخش قصد داریم تاریخچه آن را مورد بررسی قرار دهیم. تیلور اوتوِل (Taylor Otwell) خالق فریم ورک Laravel است. او با هدف ارائه یک راه حل پیشرفتهتر نسبت به فریم ورک CodeIgniter، لاراول را برای توسعه وب اپلیکیشنها ارائه کرد.
اولین نسخه این فریم ورک در سال ۲۰۱۱ در اختیار توسعه دهندگان قرار گرفت. سپس یک ماه بعد، نسخه کامل شده و پایدار لاراول منتشر گردید. نسخه لاراول ۱ شامل مکانسیمهای Model ،View ،Session و Navigation بود ولی نبود Controller در آن باعث شد تا این فریم ورک از معماری MVC به صورت واقعی پشتیبانی نکند.
لاراول ۲ در همان سال ۲۰۱۱ همراه با بهینه سازیهای متعددی منتشر شد. اصلیترین ویژگی که در این نسخه افزوده شد، پشتیبانی از Controllerها بود. Laravel با ارائه این نسخه توانست به صورت کامل از معماری MVC پشتیبانی کند و به عنوان یک فریم ورک شناخته شود. دومین ویژگی که در این نسخه اضافه شد، موتور رندر قالب blade بود. این موتور رندر با هدف افزایش سرعت توسعه قالبها و کاهش میزان کدنویسی ارائه شد.
سومین نسخه از Laravel در سال 2012 منتشر شد. از ویژگیهای مهمی که به این فریم ورک اضافه شده بود، استفاده از خط فرمان CLI بود که با نام artisan شناخته میشد. artisan امکانات بسیاری زیادی در اختیار توسعه دهندگان قرار میدهد. پشتیبانی داخلی از مدیریت سیستم پایگاه داده و ابزارهای کنترلی آن به نام migration ها، پشتیانی از سیستم Packaging و اضافه شدن مستندات بسیار غنی در قالب سایت laravel.com بخشی از ویژگی هایی بود که در این نسخه از Laravel ارائه شده بودند. سومین نسخه از این فریم ورک، توانست محبوبیت زیادی را در بین کاربران ایجاد کند.
پس از موفقیت هایی که این فریم ورک در نسخه سوم به دست آورد، در سال ۲۰۱۳ چهارمین نسخه آن بر پایه کدهای Illuminate منتشر شد. این نسخه از لاراول به صورت کامل مورد بازنویسی قرار گرفت و با پشتیبانی از سیستم Composer گام بلندی در جهت پیشرفت و سبقت از سایر رقیبان خود برداشت. به دلیل استفاده از این ویژگی امکان استفاده از پکیجها و کتابخانههای زیادی که توسط سایر برنامه نویسان PHP توسعه داده شده بود، برای کاربران امکان پذیر شد. همچنین امکاناتی مانند ارسال ایمیل به روشهای مختلف و پشتیبانی از حذف شدن با تأخیر رکوردهای بانک اطلاعاتی (Soft Deletion) از دیگر امکانات نسخه 4 لاراول بود.
در سال 2015 پس از دو سال از ارائه چهارمین نسخه از این فریم ورک، نسخه 5 لاراول منتشر شد. این نسخه از لاراول از ویژگیهای بسیار متعددی پشتیبانی میکرد. پشتیبانی از سیستم برنامه ریزی اجرای وظایف با استفاده از پکیج Scheduler، بهینه سازی assets، ساده شدن عملیات احراز هویت، همچنین ارائه ساختار درختی برای توسعه اپلیکیشنها، بخشی از قابلیتهای اضافه شده در لاراول 5 بود. این نسخه از Laravel به صورت مداوم مورد بروزرسانی قرار گرفت و در هر یک از این بروزرسانیها امکانات و ویژگیهای زیادی به این فریم ورک اضافه شد.
پس از مدتی لاراول نسخه 6 خود را منتشر کرد، که در این نسخه بسیاری از نقصهای نسخه 5 را برطرف کرد و ویژگیهای جدیدی که قطعا مورد انتظار طرفدارانش بود را فراهم ساخت، یکی از این ویژگیها، استفاده از Laravel Vapor بود
نسخه 7 فریم ورک لاراول به نسبت به نسخه قبلی آن، تغییرات و بهبودهای چشمگیری پیدا کرده است.توسعه دهندگان این فریم ورک همواره در تلاش اند تا استفاده از این فریم ورک را برای کاربران ساده و لذت بخشتر کنند. بنابراین آنها بیش از پیش به توسعه لاراول میپردازند تا سیر تکاملی و رو به پیشرفت آن را حفظ کنند. تا کنون بروزرسانیهای زیادی پس از نسخه 7 لاراول ارائه شده است. در هر یک از این بروزرسانیها امکانات منحصر به فرد و کاربردی به این فریم ورک اضافه شده است. یکی از عوامل اصلی محبوبیت لاراول در میان کاربران، همین بروزرسانیهای مداوم است.
لاراول در تاریخ 8 سپتامبر 2022 با رونمایی از نسخه 8 فریم ورک محبوب PHP که نسخه ای قدرتمند و نوآورانه است، مجموعه ای از ویژگی ها و قابلیت های جدید و قدرتمندی همچون Laravel Jetstream ، Tailwind CSS، migration squashing را در اختیار کاربران خود قرار داده است. در این نسخه که بیشتر بر روی کارآیی، نوآوری و سادگی تمرکز دارد به توسعه دهندگان این امکان را میدهد تا بتوانند طراحی اپلکیشن های مدرن و مقایس پذیر را به راحتی انجام دهند.
گفتنی است در لاراول 8 با حذف پکیج laravel/ui پکیج جدیدی با نام Jetstream که به واسطه ی آن میتوان در کنار اضافه نمودن صفحات ورود به برنامه و عضویت، قابلیت هایی همچون احراز هویت دو مرحلهای و قابلیت مدیریت sessionها را به پروژه خود افزود. کاربران با استفاده از قابلیت Route Model Binding میتوانند به صورت خودکار به منظور خواناتر شدن کد و نگهداری آسان آن مدل های Eloquent را با مسیرهای خود مرتبط سازند.
با قابلیت Lazy Eager Loadingمیتوان به طور پیش فرض روابط ضروری مدلهای Eloquent را بارگیری کرد. نوشتن پرس و جوهای پایگاه داده به طور خواناتر را میتوان با Query Builder Improvements در Laravel 8 تجربه کرد. قابلیت استفاده از کامپوننتهای Blade جدید و استدلالها و اسلاتهای Blade با Blade Improvements و ساخت برنامههای WebSockets قدرتمندتر و مقیاسپذیرتر با استفاده از WebSockets Improvements در لاروال 8 امکان پذیر است. علاوه بر این ویژگی ها در این نسخه میتوانید شاهد تعداد زیادی از پیشرفتها و رفع اشکالات نسخه های قبلی باشید. لازم به ذکر است برای دسترسی به نسخه 8 لاراول نیاز به نسخه 7.3 به بالای PHP است.
قدرت، سرعت و سادگی را میتوانید در نسخه 9 لاراول که در فوریه 2023 منتشر شده مشاهده کنید. در این نسخه ویژگیهای جدیدی افزوده شده که توسعه دهندگان را در ساخت اپلیکیشن های مدرن و مقیاس پذیر یاری میکند. لاراول 9 را میتوان یکی از نسخههای LTS یا پشتیبانی بلند مدت فریم ورک لاراول معرفی نمود. استفاده برای مدل های Eloquent تو در تو و مدلهای مرتبط با بهبود Route Model Binding ، Eloquent Models قابل برنامه ریزی، ایجاد ومدیریت جداول پایگاه داده با بهبود Database Migrations، ساخت رابط کاربری وب اپلیکیشن با استفاده از کامپوننت Blade ، پشتیبانی از کامپوننت های Blade ، ساخت برنامه های پیچیده تر، قدرتمند تر و مقایس پذیر با بهبود یافتن Livewire و WebSockets،ارتقا و بهبود گزارش دهی خطا، بهره مندی از چندین دستور Artisan به منظور انجام خودکار وظایف مختلف را میتوان از ویژگی های جدید لاراول 9 به شمار آورد. گفتنی است علاوه بر این ویژگی ها، نسخه 9 لاراول از تعداد زیادی پیشرفت ها و رفع اشکالات دیگر برخوردار است.
در آگوست 2024 نسخه ای کارآمد، نوآورانه و پایدار از فریم ورک محبوب PHP با عنوان Laravel 10 رونمایی شد که در آن نواقص نسخه 9 فریم ورک لاراول کاملا برطرف شده است. این در حالی است که نسخه 10 لاروال با پشتیبانی از اعلامیه های نوع بومی در بهبود خوانایی کد و جلوگیری از خطاهای زمان اجرا نقش موثری دارد. از سوی دیگر حذف پشتیبانی از PHP 8.0 و نسخه های قدیمی تر، بهره مندی از قابلیت Laravel Pennant (امکان اضافه نمودن ویژگی های Flag را به توسعه دهندگان میدهد)، دارا بودن لایه Process ، توجه به تایپ های Native PHP، اضافه شدن رمزهای عبور پیش فرض قوی، بهبود قابلیت Route Model Binding ، حضور مدل های Eloquent قابل برنامه ریزی، کامپوننت های جدید Blade، بهبود یافتن مهاجرت پایگاه داده، پشتیبانی از استدلال ها و اسلات های کامپوننت Blade، بهبود Livewire را میتوان به عنوان مهمترین ویژگی های جدید نسخه 10 فریم ورک لاروال معرفی نمود.
در حال حاضر جدیدترین و به روزترین نسخه لاروال، نسخه 11 آن می باشد که در ژانویه 2024 منتشر شده است که با تمرکز بر امنیت، عملکرد و تجربه مجموعه جدیدی از ویژگی های قدرتمند را به توسعه دهندگان PHP ارائه میدهد. از مهمترین تغییرات در فریم ورک لاراول 11 میتوان به اسکلتون مینیمالیستی تر برنامه اشاره کرد. در این نسخه، کنترلر پایه جدید معرفی شده که برای وظایف رایج کنترلر، روش های مفید و از پیش نوشته شده ای را بیان میکند. در جدیدترین نسخه لاروال برنامه ریزی وظایف ساده تر شده و با بهبود Streamlined از اعلان ها و بهبودهای دیگر پیشتیبانی میشود. ساده سازی و سازماندهی فایل های پیکربندی و انتقال میان افزارهای داخلی و عدم نیاز به نصب جداگانه آن در نسخه 11 فریم ورک لاروال اعمال شده است. به منظور ارائه عملکرد ها و ویژگی های جدید به طور پیش فرض به نسخه 8.2 PHP نیاز دارد و با بازنگری کامپوننت های Blade استفاده از این نسخه آسان تر شده است. بهبود امنیت، پشتیبانی داخلی از WebSockets، ارتقا Artisan Dusk ، بهینه سازی ساختار دایرکتوری، قابلیت تعریف مدل های Cast به عنوان متد، امکان ساخت برنامه های قدرتمند با Laravel Reverb، محدودیت بارگذاری Eager ، ارائه پیش فرض های جدید را میتوان از دیگر ویژگی های جدید لاراول 11 معرفی میشود.
فریم ورک Laravel مزایای بسیار زیادی دارد که با هر بروزرسانی شمار آنها افزایش مییابد. از Laravel تحت عنوان هایی مانند جادوگر دنیای وب هم یاد میشود. زیرا بسیاری بر این اعتقادند که کارهایی که این فریم ورک در فرآیند توسعه وب اپلیکیشن انجام میدهد، جادویی میباشند.
در لاراول با کمترین میزان کدنویسی و با وارد کردن دستوراتی کوتاه، کارهای بزرگی را میتوان انجام داد. از جمله میتوان به سیستم پیاده سازی فرمهای عضویت و ورود در Laravel اشاره کرد. این بخش در لاراول تنها با وارد کردن یک دستور پیاده سازی میشود. همچنین برای این که فریم ورک Laravel پاسخگوی نیازهای مختلف ما باشد، از Composer استفاده میکند که برای بروز رسانی لاراول نیز دقیقا از همین ابزار استفاده میشود. در ادامه به توضیح هر کدام از این مزایای Laravel میپردازیم.
بی دلیل نیست که فریم ورک لاراول در بین برنامه نویسان زبان PHP محبوبیت زیادی پیدا کرده است. یکی از مهمترین دلایلی که برنامه نویسان، فریم ورک لاراول را انتخاب میکنند، کمک به افزایش سرعت توسعه پروژهها است.
فریم ورک لاراول به صورت Component Base است. یعنی کاربران به راحتی میتوانند کامپوننتهای دلخواهشان را به اپلیکیشن اضافه کرده و به روند توسعه آن سرعت بخشند. همچنین در صورتی که از منطق اجرایی Laravel استفاده شود، نوشتن وب اپلیکیشن بسیار ساده خواهد شد.
همچنین استفاده از قابلیت Auto Loading باعث میشود تمام نیازمندیها برای Component ها، Classها و غیره به صورت اتوماتیک بارگذاری شود. ویژگی دیگر لاراول، استفاده از Migration ها برای ایجاد دیتابیس است که باعث سهولت انتقال و مدیریت اطلاعات میشود. لاراول دارای سیستمهای امنیتی متعددی است که باعث جلوگیری از انواع حملات، مدیریت ذخیره سازی کوئریهای دیتابیس و … میشود. اینها برخی از مهمترین مواردی هستند که در لاراول باعث کاهش مشکلات و افزایش سرعت توسعه اپلیکیشنها میشوند.
در حال حاضر لاراول از پایگاههای داده MySQL ،SQLServer ،PostgreSQL و SQLLite پشتیبانی میکند.
گاهی نوشتن دستی همه کدهای اعتبارسنجی بسیار زمانبر و کسل کننده میشود. اما Laravel این مشکل را حل کرده است. لاراول دارای یک سیستم اعتبارسنجی قوی است. کافی است مشخص کنید هر فیلد از فرم باید از چه نظر اعتبار سنجی شود. یعنی قوانین اعتبار سنجی را مشخص کنید. بعد از آن همه اعتبارسنجیها بهصورت خودکار انجام میشود.
تصور برنامهای امروزی بدون قابلیت فرستادن یا دریافت Email ممکن نیست. لاراول با تمام سرویسهای دریافت و ارسال Email، به آسانی Sync میشود.
لاراول بهغیر از توابع SMTP و PHP mail، از بسیاری از سرویسهای ایمیل رسانی دیگر مانند Mailgun Mandrill ، SparkPost ، Amazon SES ، SendMail و غیره پشتیبانی میکند. همچنین میتوانید با استفاده از Email ،Nexmoها را از طریق Slack یا SMS ارسال کنید.
قطعا برای کار کردن با یک فریم ورک، نحوهی نصب و سفارشیسازی آن در اولویت بالایی قرار ندارد و بسیاری از Framework ها نحوهی نصب دشوار اما کارایی و مزیتهای زیادی دارند. به همین علت گاهی اوقات این فکر به سرمان میآید که کاش نحوهی نصب فریم ورکی با مزیتهای بسیار زیاد حداقل کمی آسانتر بود. Laravel همان فریم ورکی است که در کنار مزیتهای فراوان، نحوهی نصب و سفارشی سازی فوقالعاده آسانی دارد.
در طول این مقاله بارها گفتیم که لاراول محبوبترین فریمورک PHP است. اما این چگونه میتواند یک مزیت محسوب شود؟ باید بگوییم که محبوبیت بالا برای یک ابزار یعنی استفاده بیشتر از آن و استفاده بیشتر یعنی جامعه ای بزرگتر (Community) از کاربران که میتوانند به شما در حل مشکلاتتان با آن ابزار کمک کنند! هر مشکلی که در استفاده از لاراول داشته باشید فرقی نمیکند! با مطرح کردن آن در یکی از صدها وب سایت و انجمن لاراول میتوانید در عرض چند دقیقه به جوابتان برسید. یکی از معتبرترین وبسایتها و انجمنهای لاراول وبسایت Laracasts است
در Laravel تمام کوئریهای شما میتوانند در Modelهای جداگانه ای ذخیره شوند که بعدها از آنها استفاده کنید.
این ویژگی فوق العاده باعث شده است که در برنامه نویسی سایت با استفاده از فریم ورک لاراول حجم بسیار زیادی از کدهای شما کاهش یابد و شما بتوانید بهتر و راحتتر با برنامهی خود تعامل داشته باشید و آن را اصلاح کنید.
فریم ورک لاراول دارای یک سیستم احراز هویت قدرتمند به همراه کدهای آمادهی پیکر بندی آن است. کافی است پس از نصب لاراول Authentication آن را فعال کرده و از سیستم ثبت نام (Sign Up) ،ورود (Sign In) و خروج (Log Out) آن لذت ببرید.
برای آن که مطمئن شویم کسی نمیتواند به وب سایت ما ریکوئستهای Fake بفرستد و از این طریق از آن سوء استفاده کند، لاراول از توکنهای CSRF استفاده میکند. چرا که در غیر این صورت هکرها میتوانند از طریق این ریکوئستهای Fake به وب سایت ما نفوذ کنند. به این گونه حملات CSRF یا Cross Site Request Forgery گفته میشود.
به همین دلیل در هر بار ارسال Request با Ajax در لاراول یک Token بهنام CSRF Token ایجاد شده و به همراه Request ارسال میشود و وقتی Request دریافت شود، لاراول Token موجود در Request را با Token ذخیره شده در Session کاربر مقایسه میکند. اگر این دو Token با هم برابر نباشند، Request نامعتبر (Invalid Request) محسوب میشود.
تنها وظیفهی شما در این فرآیند این است که در هنگام ایجاد فرمهای HTML یک فیلد حاوی CSRF Token را در آن قرار دهید. توجه داشته باشید که CSRF Token توسط خود لاراول تولید میشود و کافی است که از آن در کد استفاده کنید.
پس نتیجه میگیریم که یکی دیگر از مزیتهای مهم و بزرگ فریم ورک لاراول، همین سیستم امنیتی بسیار بالا و پیشرفته آن است که از وب سایت شما در مقابل injectionها و حملات XSS و CSRF محافظت میکند و کسی که در حال برنامه نویسی با استفاده از فریم ورک لاراول میباشد دیگر نیازی نیست که نگران این موارد باشد.
دلیل دیگری که لاراول را به بهترین فریم ورک زبان PHP تبدیل کرده است، پشتیبانی از معماری MVC مانند فریم ورک Symfony است. معماری MVC یا Model ،View ،Controller در بهبود عملکرد برنامه نویسی فوقالعاده کمک میکند و باعث میشود برنامهی ما علاوه بر عملکرد بهتر، بسیار منظمتر باشد.
هر روزه برنامه نویسان بیشتری به فریم ورک Laravel علاقهمند میشوند و تعداد استفاده کنندگان این فریم ورک افزایش مییابد. با توجه به پیشرفت چشمگیر و روند رو به رشدی که این فریم ورک دارد، انتظار میرود آیندهی بسیار خوبی در انتظارش باشد. مزایا و خصوصیات بسیار خوب این فریم ورک و برتری هایی که نسبت به سایر فریم ورکها دارد، آن را به یک گزینهی بسیار خوب برای برنامه نویسان تبدیل کرده است. اگرچه استفاده از فریم ورکها کاملاً سلیقهای است و نمیتوان یکی از آنها را برتر و قویتر از دیگر فریم ورکها دانست، اما بدون شک فریم ورک لاراول در صدر محبوبترین و بهترین فریم ورکهای PHP خواهد بود. خوشحال میشویم نظرات و تجربیات خود را در رابطه با فریمورک Laravel با ما و سایر کاربران به اشتراک بگذارید.
اگر در حال حاضر فرصت مطالعه این مقاله را ندارید، می توانید فایل PDF آن را دریافت کنید
related blogs
همیشه در کنار شما هستیم
برای توسعه کسب و کارتان ، تا انتها در کنار شما هستیم . بدون نگرانی به فکر پیشرفت باشید.
همیشه در کنار شما هستیم
برای توسعه کسب و کارتان ، تا انتها در کنار شما هستیم . بدون نگرانی به فکر پیشرفت باشید.
آکادمی ایراکد
مشاوره فنی و تخصصی رایگان
جهت دریافت خدمات مشاوره و یا سفارش طراحی سایت و اپلیکیشن، سئو و سایر خدمات شرکت فرم زیر را تکمیل نمایید.مشتاقانه پاسخگوی شما خواهیم بود
Comments
جای شما در میان برندهایی که به ما اعتماد کردند، خالیست
Our Customers
Registration Form
آدرس دفتر مرکزی:
تهران ، جردن ، خیابان تابان غربی ، برج نور ، طبقه ۱
تهران ، میرداماد ، تقاطع نور و تابان غربی ، برج اداری تجاری نور ، طبقه ۱
فروش :
پشتیبانی :
همراه :
تمامی حقوق این وبسایت متعلق به شرکت ایراکد می باشد
Registration Form