۰ دیدگاه نظر سحر پاشائی
فریمورک Slim چیست و چرا باید از آن در پروژه‌های PHP استفاده کنید؟
سرفصل‌های مقاله
  • فریم‌ورک Slim چیه؟
  • تاریخچه Slim
  • چرا Slim رو به جای فریمورک‌های دیگه PHP انتخاب کنیم؟
  • عملکرد Slim چطوره؟
  • ویژگی‌های اصلی Slim چیه؟
  • میدل‌ور در Slim چطوری کار می‌کنه؟
  • میدل‌ورهای پیش‌فرض در Slim کدوما هستن؟
  • چرخه اجرای اپلیکیشن در Slim چطوریه؟
  • چطوری تو Slim مسیر (Route) بسازیم؟
  • منابع آنلاین برای شروع کار با Slim
  • نمونه کد Slim
  • سوالات متداول

تو دنیای پرسرعت و پیچیده توسعه وب، همیشه دنبال ابزارهایی هستیم که هم کارمون رو راحت‌تر کنن و هم نتیجه رو سریع‌تر به دستمون برسونن. فریمورک‌های بزرگ مثل Laravel یا Symfony قدرت زیادی دارن، اما بعضی وقتا برای پروژه‌های کوچیک یا متوسط زیادی بزرگ و پیچیدن. اینجاست که فریمورک‌های سبک‌تر مثل Slim وارد می‌شن! اگه دلت می‌خواد با یه فریمورک ساده و سریع کار کنی که توی ساخت API‌ها یا اپلیکیشن‌های کوچیک دستت رو باز بذاره، Slim می‌تونه بهترین رفیقت باشه. Slim فقط یه ابزار نیست، یه راه‌حل هوشمند برای توسعه‌دهنده‌هایی مثل توئه که سرعت و سادگی رو به هر چیزی ترجیح می‌دن. تو این مقاله، قراره هر چی باید درباره Slim بدونی رو با هم مرور کنیم؛ از تاریخچه تا امکانات و نحوه استفاده از اون.

فریم‌ورک Slim چیه؟

Slim یه فریمورک خیلی سبک و مینیمال برای PHP هست که بیشتر برای ساختن API‌ها استفاده می‌شه. اگه بخوام خیلی ساده بگم، Slim رو می‌تونیم یه جور "کتابخونه روتینگ" در نظر بگیریم. یعنی چی؟ یعنی وقتی یه درخواست HTTP (مثل وقتی که تو یه آدرس وب رو تو مرورگرت می‌زنی) می‌رسه، Slim این درخواست رو می‌گیره، می‌فرسته به اون تابعی که براش تعیین شده، و بعدش هم پاسخ HTTP رو برمی‌گردونه. چون Slim خیلی سبک و جمع‌وجوره، سریع و کارآمده و مثل فریمورک‌های بزرگ، کلی قابلیت اضافه و بی‌استفاده همراهش نیست.

Slim از مفهومی به نام میدل‌ور (middleware) استفاده می‌کنه. هر میدل‌ور یه کار خاص انجام می‌ده. حالا اگه چند تا از این میدل‌ورها رو به هم بچسبونی، می‌تونی اپلیکیشن‌های پیچیده‌تری بسازی. مثلاً می‌تونی از میدل‌ورهای آماده برای احراز هویت، امنیت، ساختن قالب‌های HTML، کش کردن و خیلی چیزای دیگه استفاده کنی.

Slim اوپن‌سورس (رایگان و بازمتن) هست و توسط یه جامعه از توسعه‌دهنده‌ها پشتیبانی می‌شه. می‌تونی Slim رو به تنهایی برای رندر سمت سرور استفاده کنی یا حتی اون رو کنار فریمورک‌های فرانت‌اند مثل React یا Vue برای رندر سمت کلاینت به کار ببری.

تاریخچه Slim

  • سپتامبر ۲۰۱۰: جاش لاکهارت Slim رو با هدف سادگی و توسعه سریع اپلیکیشن خلق کرد. اون حس می‌کرد فریمورک‌های دیگه مثل Symfony و Cake یادگیری سخت‌تری دارن و برای نیازهای اون زیادی بزرگن.
  • سپتامبر ۲۰۱۱: اولین مثال "Hello World" توی بلاگ Slim اومد. همه چی توی یه فایل به اسم index.php قرار داشت و مسیرها با $app->get() و $app->post() تنظیم می‌شدن.
  • آوریل ۲۰۱۲: نسخه ۱.۶.۰ Slim منتشر شد. میدل‌ورهای عمومی، هندلینگ بهتر برای درخواست‌ها، کوکی‌ها و لاگ‌ها معرفی شدن. Slim از طریق Composer هم قابل نصب شد.
  • سپتامبر ۲۰۱۲: نسخه ۲ Slim اومد. حالا این فریمورک حداقل به PHP 5.3 نیاز داشت و با PSR-2 سازگار بود.
  • جولای ۲۰۱۳: نسخه ۲.۳.۰ به صورت سازگار با نسخه‌های قبلی اومد و امکاناتی مثل دسترسی به اشیای درخواست، پاسخ، نما و لاگ رو به عنوان ویژگی‌های عمومی اپلیکیشن ارائه داد.
  • دسامبر ۲۰۱۵: نسخه ۳.۰.۰ Slim منتشر شد. تو این نسخه امکاناتی مثل پشتیبانی از تزریق وابستگی و PSR-7 اضافه شد. این نسخه تا نوامبر ۲۰۱۹ به نسخه ۳.۱۲.۳ تکامل پیدا کرد.
  • آگوست ۲۰۱۹: نسخه ۴ Slim منتشر شد. این نسخه به PHP 7.1 یا بالاتر نیاز داشت و از میدل‌ورهای PSR-15 پشتیبانی می‌کرد. Slim v4 کاملاً از پیاده‌سازی داخلی PSR-7 جدا شد، بنابراین توسعه‌دهنده‌ها می‌تونستن از جایگزین‌هایی مثل Zend، Nyholm یا Guzzle استفاده کنن. همچنین در این نسخه، مسیریابی به کمک Slim\Middleware\RoutingMiddleware انجام می‌شد. تا مارس ۲۰۲۲، این نسخه به Slim v4.10.0 ارتقا پیدا کرد.
  • ۲۰۲۳ به بعد: Slim همچنان به تکامل ادامه داده و هم‌اکنون با PHP 8.1 و بالاتر سازگار شده. از مهم‌ترین پیشرفت‌ها در این دوره، بهبود پشتیبانی از HTTP/2 و HTTP/3 و همچنین ادغام بهتر با ابزارهای مدرن DevOps و CI/CD بوده. Slim همچنین به‌خوبی با سیستم‌های ابری و ابزارهایی مثل Docker سازگار شده، که کار رو برای توسعه‌دهنده‌ها تو محیط‌های ابری راحت‌تر کرده. بهبودهایی در زمینه مدیریت خطا و امنیت نیز در نسخه‌های اخیر اضافه شده.

در کل، Slim همچنان به عنوان یکی از محبوب‌ترین فریمورک‌های سبک PHP برای توسعه سریع و راحت اپلیکیشن‌های تحت وب و API شناخته می‌شه و هر سال امکانات جدید و بهینه‌سازی‌های بیشتری بهش اضافه می‌شه.

چرا Slim رو به جای فریمورک‌های دیگه PHP انتخاب کنیم؟

اگه دنبال یه فریمورک هستی که سریع، کارآمد، منعطف و کاملاً تحت کنترلت باشه، Slim می‌تونه بهترین انتخابت باشه. Slim از استانداردهای معتبری مثل PSR-7 و PSR-15 پشتیبانی می‌کنه، که این یعنی نمی‌ذاره به یه سری کتابخونه یا ابزار خاص گیر بیفتی. علاوه بر این، Slim با اصول خوب برنامه‌نویسی مثل SOLID، الگوهای طراحی، اصول امنیتی و تزریق وابستگی (Dependency Injection) کاملاً سازگاره.

Slim از نظر یادگیری هم نسبت به فریمورک‌های بزرگتری مثل Laravel یا Symfony خیلی راحت‌تره. فریمورک‌های بزرگ خیلی چیزا رو به صورت آماده ارائه می‌کنن، مثل احراز هویت، امنیت، مدیریت پایگاه داده، موتور قالب‌ها، مدیریت سشن و غیره. ولی تو Slim، اینا جزء هسته اصلی نیستن و فقط وقتی نیازشون داری می‌تونی از طریق میدل‌ورهای شخص ثالث نصبشون کنی. این یعنی هر چیزی که لازم نداری، نصب نمی‌کنی و از حجم پروژت کم می‌شه.

Slim برای ساخت API‌های مدرن و سرویس‌هایی که با فرمت JSON یا XML داده‌ها رو تبادل می‌کنن، خیلی مناسب و کاربردیه. علاوه بر این، می‌تونی با استفاده از میدل‌ورها قابلیت‌های پیچیده‌تری به اپلیکیشنت اضافه کنی. حتی با کمک موتورهای قالب مثل Twig-View یا PHP-View، می‌تونی صفحات وب کامل رو سمت سرور رندر کنی. این یعنی Slim وارد دنیای فریمورک‌های MVC هم می‌شه و خیلی از توسعه‌دهنده‌ها از Slim به عنوان بک‌اند برای پروژه‌هایی با فرانت‌اند‌هایی مثل Next.js استفاده کردن. همچنین می‌تونی از Slim کنار Vue.js برای ساخت SPA (اپلیکیشن تک‌صفحه‌ای) استفاده کنی.

عملکرد Slim چطوره؟

یه تحقیق در سال ۲۰۱۶ نشون داد که نسخه ۲.۶ Slim از نظر تعداد درخواست در هر ثانیه (throughput)، میزان استفاده از حافظه و زمان اجرا در رتبه پنجم قرار داشت. Phalcon و Ice بهترین بودن. یه مطالعه دیگه تو سال ۲۰۱۷ هم نشون داد که نسخه ۳.۰ Slim در رتبه سوم قرار گرفته، بعد از Phalcon و CodeIgniter، و از میکروفریمورک‌های Silex و Lumen عملکرد بهتری داشته.

یکی از دلایل سرعت Slim اینه که سیستم روتینگش بر پایه FastRoute ساخته شده. FastRoute با تکه‌تکه کردن و بهینه‌سازی پردازش عبارات باقاعده (regular expressions)، روتینگ رو سریع‌تر و بهینه‌تر می‌کنه.

ویژگی‌های اصلی Slim چیه؟

ویژگی‌های اصلی Slim رو می‌تونیم تو چند بخش مهم خلاصه کنیم:

روتینگ (Routing)

یکی از مهم‌ترین قابلیت‌های Slim اینه که درخواست‌های HTTP رو خیلی کارآمد به تابع‌ها یا متدهای مرتبط هدایت می‌کنه. این روتینگ با استفاده از عبارات باقاعده (regular expressions) انجام می‌شه که می‌تونه پارامترهایی رو هم دریافت و به تابع‌ها پاس بده. مثلاً وقتی کاربر آدرسی رو وارد می‌کنه، Slim بررسی می‌کنه که این درخواست به کدوم مسیر و تابع مربوطه بره.

میدل‌ور (Middleware)

در Slim می‌تونی از میدل‌ورهای داخلی یا میدل‌ورهای شخص ثالث استفاده کنی. این میدل‌ورها بهت اجازه می‌دن درخواست‌ها و پاسخ‌ها رو به صورت خاص و ماژولار مدیریت کنی. یعنی اگه بخوای، می‌تونی برای هر کاری یه میدل‌ور بنویسی یا از آماده‌هاش استفاده کنی. جالب‌تر اینکه می‌تونی ترتیب میدل‌ورها رو عوض کنی یا هر کدوم رو که نیاز نداری غیرفعال کنی. این ویژگی خیلی انعطاف‌پذیر و دستت رو باز می‌ذاره.

پشتیبانی از PSR-7

Slim با استاندارد PSR-7 کاملاً سازگاره. این استاندارد یه سری رابط (interface) برای مدیریت پیام‌های HTTP مشخص می‌کنه. Slim خودش پیاده‌سازی این استاندارد رو داره، اما اگه دوست داشته باشی، می‌تونی از پیاده‌سازی‌های دیگه هم استفاده کنی. یعنی دستت تو انتخاب بازه.

تزریق وابستگی (Dependency Injection)

تزریق وابستگی بهت کمک می‌کنه که برنامت راحت‌تر تست بشه یا تنظیمات مختلفی بهش بدی. Slim این امکان رو با پشتیبانی از PSR-11 فراهم کرده که یعنی با استانداردهای این حوزه سازگار و قابل اطمینانه.

میدل‌ور در Slim چطوری کار می‌کنه؟

میدل‌ورهای Slim رو می‌تونی مثل دایره‌های هم‌مرکز تصور کنی. هر میدل‌ور از بیرونی‌ترین لایه شروع به کار می‌کنه و می‌رسه به داخلی‌ترین لایه، جایی که برنامه اجرا می‌شه و روتینگ اتفاق میوفته. بعد از اجرای برنامه، دوباره از داخلی‌ترین به بیرونی‌ترین لایه‌ها برمی‌گرده و میدل‌ورها باز بررسی می‌شن. یه جور دیگه هم می‌شه تصورش کرد، مثل یه پشته LIFO (آخرین ورودی، اولین خروجی).

فرض کن دو تا میدل‌ور داریم: یکی برای احراز هویت (authentication) و یکی برای کش (caching). اول میدل‌ور احراز هویت اجرا می‌شه. اگه احراز هویت شکست بخوره، دیگه بقیه مراحل اجرا نمی‌شن. اما اگه موفق بشه، میدل‌ور کش اجرا می‌شه. حالا اگه پاسخی توی کش موجود باشه، برنامه از همون استفاده می‌کنه و دیگه نیازی به اجرای تابع اصلی نیست. اما اگه چیزی توی کش نبود، تابع اصلی اجرا می‌شه و بعد پاسخ تولید شده توی کش ذخیره می‌شه. در آخر، میدل‌ور احراز هویت دوباره اجرا می‌شه تا اگه لازم باشه، پاسخی رو تغییر بده یا تکمیل کنه.

میدل‌ورهای Slim با آبجکت‌های درخواست/پاسخ PSR-7 و هندلر درخواست PSR-15 سروکار دارن. می‌تونی میدل‌ور رو به کل برنامه اضافه کنی که با هر درخواست اجرا بشه، یا فقط برای مسیرهای خاص ازش استفاده کنی که بعد از روتینگ اجرا بشه. تو هر دو حالت، میدل‌ور بیرونی‌ترین همیشه آخرین چیزی هست که اضافه می‌شه.

میدل‌ورهای پیش‌فرض در Slim کدوما هستن؟

وقتی Slim رو نصب می‌کنی، چندتا میدل‌ور به‌صورت پیش‌فرض همراهش هست که توی خیلی از پروژه‌ها کاربرد دارن. اینا رو برات توضیح می‌دم:

  • روتینگ (Routing): Slim از FastRoute برای روتینگ استفاده می‌کنه، یعنی بهینه و سریع درخواست‌ها رو به مسیرهای مناسب هدایت می‌کنه. البته اگه دوست داشته باشی، می‌تونی یه پیاده‌سازی دیگه برای روتینگ استفاده کنی.
  • مدیریت خطا (Error Handling): این میدل‌ور برای توسعه‌دهنده‌ها خیلی مفیده، مخصوصاً توی مرحله توسعه که بهت کمک می‌کنه خطاها رو راحت‌تر پیدا کنی. حتی توی محیط تولید هم می‌تونی خطاها رو ثبت کنی تا بعداً تحلیلشون کنی.
  • تغییر متد (Method Overriding): این میدل‌ور هدر X-Http-Method-Override رو بررسی می‌کنه. مثلاً اگه یه درخواست POST با این هدر باشه و مقدار PUT داشته باشه، می‌تونی اونو به‌عنوان یه درخواست PUT پردازش کنی.
  • بافر کردن خروجی (Output Buffering): این میدل‌ور به‌صورت پیش‌فرض به بدنه پاسخ اضافه می‌کنه، ولی اگه بخوای می‌تونی این رفتار رو تغییر بدی و مثلاً کاری کنی که به جای اضافه شدن، اول خروجی قرار بگیره.
  • پارس کردن بدنه (Body Parsing): وقتی API می‌سازی، معمولاً با فرمت‌های JSON یا XML سروکار داری. این میدل‌ور این فرمت‌ها رو پردازش می‌کنه و به اپلیکیشن تحویل می‌ده.
  • طول محتوا (Content Length): این میدل‌ور هدر Content-Length رو به پاسخ HTTP اضافه می‌کنه.

چرخه اجرای اپلیکیشن در Slim چطوریه؟

وقتی یه اپلیکیشن Slim می‌سازی، اولین کاری که می‌کنی اینه که یه شیء از نوع Slim\App() ایجاد می‌کنی. معمولاً این کار رو با متد AppFactory::create() انجام می‌دن. بعدش، برای هر متد HTTP مثل GET، POST یا DELETE، مسیرهای مختلف تعریف می‌کنی. پس از اون، میدل‌ورها رو به برنامه اضافه می‌کنی. در نهایت هم اپلیکیشن با استفاده از متد run() اجرا می‌شه.

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

چطوری تو Slim مسیر (Route) بسازیم؟

تو فریمورک Slim می‌تونی برای انواع متدهای HTTP مثل GET، POST، PUT، DELETE، OPTIONS و PATCH مسیر تعریف کنی. حتی می‌تونی با استفاده از متد $app->any() برای همه متدها یه مسیر تعیین کنی یا برای چند متد به‌طور همزمان از $app->map(['GET', 'POST']) استفاده کنی.

هر متد مربوط به مسیر (route method) یه الگو می‌گیره که بر اساس اون، درخواست HTTP با URI مطابقت داده می‌شه. مثلاً از {} برای تعیین پارامترهای پویا استفاده می‌شه. همچنین می‌تونی توی این الگوها از عبارات باقاعده (regular expressions) استفاده کنی. بخش‌های اختیاری رو هم می‌تونی با [] نشون بدی. مثلاً:

$app->get('/users[/{id:[0-9]+}]', function ($request, $response, $args) {
    // Logic here
});

این کد هم مسیر /users و هم مسیر /users/23 رو مدیریت می‌کنه. چون بخش id اختیاریه، می‌تونی بدون وارد کردن عدد هم به این مسیر دسترسی داشته باشی، ولی اگه عدد وارد کنی، باید یه عدد مثبت باشه.

هر مسیر یه تابع یا متد (همون callback) داره که به عنوان پردازشگر اون مسیر عمل می‌کنه. این تابع سه تا ورودی داره: Request، Response و Arguments. مثلاً پارامتری که توی الگو به عنوان id تعریف کردی، توی آرگومان‌ها میاد و می‌تونی ازش به این شکل استفاده کنی: $args['id']. این callback می‌تونه یه تابع ناشناس (anonymous function) باشه یا متدی که توی یه کلاس تعریف شده.

برای اینکه کدت مرتب‌تر و قابل نگهداری‌تر باشه، می‌تونی مسیرها رو گروه‌بندی کنی. مثلاً دو مسیر /users/{id:[0-9]+} و /users/{id:[0-9]+}/reset-password رو می‌تونی توی یه گروه قرار بدی که همه زیرمجموعه‌های /users/{id:[0-9]+} رو پوشش بده.

منابع آنلاین برای شروع کار با Slim

اگه تازه می‌خوای با Slim کار کنی، بهترین جایی که می‌تونی شروع کنی مستندات رسمی Slim هست. اونجا یه مثال ساده از Slim رو برات توضیح می‌ده و بعد وارد جزئیات می‌شه. برای اینکه همیشه از آخرین آپدیت‌ها باخبر بشی، به بلاگ Slim هم سر بزن. و اگه سوال یا مشکلی داشتی، انجمن‌های گفت‌وگوی Slim جای خوبیه که می‌تونی از جامعه برنامه‌نویس‌ها کمک بگیری.

اگه دنبال آموزش‌های مرحله‌به‌مرحله برای ساختن API یا اپلیکیشن با Slim هستی، می‌تونی Slim Walkthrough و Building Modern APIs with Slim Framework نوشته Rob Allen رو چک کنی. این منابع راهنمایی‌های خوبی برای شروع دارن.

اگه دوست داری توی توسعه خود Slim مشارکت کنی، کدهای Slim توی GitHub موجوده و می‌تونی به پروژه کمک کنی.

نمونه کد Slim

در این بخش چند نمونه کد ساده از فریمورک Slim رو می‌بینیم که بهت کمک می‌کنه سریعاً با نحوه کار کردن این فریمورک آشنا بشی.

Hello-World

در اینجا یک مثال ساده از کد "Hello World" با استفاده از Slim فریمورک داریم:

// Source: https://www.slimframework.com/
// Accessed 2022-09-26
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});
$app->run();

در این کد، درخواست به مسیر /hello/{name} هدایت می‌شه و متغیر name که توی URL وارد شده به تابع تحویل داده می‌شه. به‌ سادگی متنی با نام وارد شده نمایش داده می‌شه، مثل "Hello, 7Learn".

استفاده از میدل‌ور در Slim

در مثال زیر، دو میدل‌ور اضافه کردیم که یکی قبل از پردازش درخواست و یکی بعد از پردازش اجرا می‌شه:

// Source: https://www.slimframework.com/docs/v4/concepts/middleware.html
// Accessed 2022-09-29
require __DIR__ . '/../vendor/autoload.php';
use Slim\Factory\AppFactory;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Psr7\Response;
class ExampleBeforeMiddleware
{
    public function __invoke(Request $request, RequestHandler $handler): Response
    {
        $response = $handler->handle($request);
        $existingContent = (string) $response->getBody();
        $response = new Response();
        $response->getBody()->write('BEFORE' . $existingContent);
        return $response;
    }
}
class ExampleAfterMiddleware
{
    public function __invoke(Request $request, RequestHandler $handler): Response
    {
        $response = $handler->handle($request);
        $response->getBody()->write('AFTER');
        return $response;
    }
}
$app = AppFactory::create();
// افزودن میدل‌ور به اپلیکیشن
$app->add(new ExampleBeforeMiddleware());
$app->add(new ExampleAfterMiddleware());
// تعریف مسیر
$app->get('/', function (Request $request, Response $response, array $args) {
    $response->getBody()->write("Hello World!");
    return $response;
});
$app->run();

در این مثال، وقتی کاربر به مسیر / دسترسی پیدا کنه، ابتدا ExampleBeforeMiddleware اجرا می‌شه و کلمه "BEFORE" رو به پاسخ اضافه می‌کنه، سپس پردازش انجام می‌شه و در نهایت ExampleAfterMiddleware اجرا می‌شه و کلمه "AFTER" به پایان پاسخ اضافه می‌شه.

سوالات متداول

Slim FAQ

1. Slim چیه؟

Slim یه فریمورک مینیمال و سبک برای PHP هست که بیشتر برای ساختن API‌ها و اپلیکیشن‌های وب کاربرد داره.

2. Slim چه فرقی با فریمورک‌های بزرگ‌تر داره؟

Slim به خاطر سادگی و سبکی معروفه. برخلاف فریمورک‌های بزرگ مثل Laravel، Slim امکانات پایه‌ای داره و بهت اجازه می‌ده هر چیزی رو فقط وقتی نیاز داری، اضافه کنی.

3. آیا Slim برای پروژه‌های بزرگ مناسبه؟

Slim بیشتر برای پروژه‌های کوچیک و متوسط مناسبه، اما با اضافه کردن میدل‌ورهای مختلف می‌تونی قابلیت‌های بیشتری بهش اضافه کنی و حتی پروژه‌های بزرگ رو هم باهاش مدیریت کنی.

4. آیا Slim از تزریق وابستگی (Dependency Injection) پشتیبانی می‌کنه؟

بله، Slim از تزریق وابستگی پشتیبانی می‌کنه و این امکان بهت می‌ده که برنامت رو راحت‌تر تست و پیکربندی کنی.

5. چطوری می‌تونم پروژه Slim خودم رو شروع کنم؟

فقط کافیه Slim رو از طریق Composer نصب کنی و بعد با استفاده از متدهای ساده‌ای مثل $app->get() مسیرها و درخواست‌ها رو مدیریت کنی.

6. Slim با کدوم نسخه‌های PHP سازگاره؟

نسخه ۴ Slim با PHP 7.1 و بالاتر سازگار بوده و در نسخه‌های جدیدتر با PHP 8.1 هم کار می‌کنه.

7. آیا Slim رایگانه؟

بله، Slim یه فریمورک اوپن‌سورس و رایگانه که توسط جامعه‌ای از توسعه‌دهندگان پشتیبانی می‌شه.

8. Slim چقدر سریع و کارآمده؟

به لطف سیستم روتینگ FastRoute و معماری سبک Slim، این فریمورک یکی از سریع‌ترین گزینه‌ها برای پروژه‌های وبی و API به حساب میاد.

9. آیا Slim می‌تونه با Vue.js یا React استفاده بشه؟

بله، خیلی از توسعه‌دهنده‌ها از Slim به عنوان بک‌اند برای اپلیکیشن‌هایی که فرانت‌اندشون با Vue.js یا React ساخته شده، استفاده می‌کنن.

۰ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم

دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد:

۲۰۰ هزار تومان رایگان
دریافت دوره الفبای برنامه نویسی