• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Slim Framework یک فریم ورک ساده و قدرتمند
#1
در دنیای امروزی بیشتر توسعه دهندگان و برنامه نویسان وب و مخصوصا PHP با استفاده از فریم ورک ها مشکلات موجود رو حل میکنن. گاهی این فریم ورکها با کتابخانه های زیادی که داره مثل فریم ورک زند باعث گیجی و ترس کاربر میشه. اما امروز قصد دارم فریم ورکی رو معرفی کنم که در عین سادگی از قدرت بالایی برخورداره.
امکانات Slim Framework

HTTP routing
Named routes
Route passing
Route redirects
Route halting
Middleware & Hooks
Custom views
HTTP caching
Signed cookies
Custom 404 page
Custom 500 page
Error handling
Logging

حجم این فریم ورک هم چیزی حدود 200 کیلوباته.

فکر میکنم بهتره با یک مثال ساده نحوه کار این فریم ورک رو نشون بدم. این مثال رو از سایت خود Slim framework برداشتم.

ابتدا فریم ورک رو از لینک زیر دانلود کنید :

http://www.slimframework.com/install

فایل رو اکسترکت و پوشه Slim رو در روت وب سرور قرار بدید.

یک فایل با نام index.php ایجاد کنید.

یک فایل با نام .htaccess ایجاد کنید.

محتویات زیر رو داخل فایل htaccess کپی کنید :
کد پی‌اچ‌پی:
RewriteEngine On

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteRule 
index.php [QSA,L
این دستورات تمام درخواستها رو به فایل index.php ارسال میکنه.

فایل index.php رو باز کنید. اولین کاری که باید انجام بدید include کردن فایل Slim/Slim.php

سپس از کلاس Slim یک شیء ایجاد میکنیم :

کد پی‌اچ‌پی:
$app = new Slim(); 

حالا با استفاده از متدهای get , post , put , delete برای مدیریت درخواست های استفاده میکنیم.
کد پی‌اچ‌پی:
$app->get('/hello/:name', function ($name) {
    echo 
"Hello, $name";
}); 
با استفاده از دستور بالا هنگامی که کاربر آدرس http://localhost/hello/phpro.ir رو وارد کنه این متد اجرا میشه و کلمه Hello phpro.ir رو نمایش میده.

متدهای get , post , delete , put دو آرگومان ورودی میگیرند.

1- قالب یا شکل آدرس درخواستی (URL)

2 - نام تابعی که پس از مساوی بودن آدرس درخواستی و ارگومان ورودی اول باید اجرا شه. در مثال بالا ما از توابع بی نام PHP استفاده کردیم که از ورژن 5.3 به بعد قابل استفاده است. در صورتی که ورژن پایینتری استفاده میکنید میتونید نام تابع رو مستقیم بنویسید.

برای استفاده از متدهای دیگه هم به شکل زیر عمل میکنیم :
کد پی‌اچ‌پی:
//POST route
$app->post('/person', function () {
    
//Create new Person
});

//PUT route
$app->put('/person/:id', function ($id) {
    
//Update Person identified by $id
});

//DELETE route
$app->delete('/person/:id', function ($id) {
    
//Delete Person identified by $id
}); 
در انتها برای اجرای برنامه از دستور زیر استفاده میکنیم :

کد پی‌اچ‌پی:
$app->run() 

در نهایت محتویات فایل index.php به این صورته :

کد پی‌اچ‌پی:
require 'Slim/Slim.php';

//With default settings
$app = new Slim();


//GET route
$app->get('/hello/:name', function ($name) {
    echo 
"Hello, $name";
});

//POST route
$app->post('/person', function () {
    
//Create new Person
});

//PUT route
$app->put('/person/:id', function ($id) {
    
//Update Person identified by $id
});

//DELETE route
$app->delete('/person/:id', function ($id) {
    
//Delete Person identified by $id
});

$app->run(); 
از مزایای این فریم ورک میشه به سازگاری با موتور قالب twig اشاره کرد. همچنین با کلاسهای Paris و Idiorm برای ارتباط با دیتابیس به خوبی هماهنگ میشه.

هدف اصلی من از معرفی چنین فریم ورکی این بود که با دید بازتری به برنامه نویسی نگاه کنیم و فریم ورک رو فقط معماری سه لایه ندونیم. شاید این فریم ورک هم به نوعی سه لایه تلقی بشه اما شیوه پیاده سازی و سادگی اون واقعا قابل تقدیره.


منبع : http://phpro.ir/?p=909
  پاسخ
تشکر شده توسط : Y.P.Y oia Reza af6900
#2
این فریم ورک بصورت MVC طراحی نشده و کاملا بر اساس Route داره کار میکنه....

این فریم ورک میتونه به عنوان یه Router ساده واسه جواب به درخواستهای ارسالی به سرور باشه (مثلا ارتباط دادن نرم افزار های موبایل و ویندوز با سرور و دیتابیس)

بنظرم اصلا برای برنامه نویسی یه سیستم ساده وبلاگ یا حتی یه سایت ساده طراحی نشده و هدف فقط همونیه که گفتم...

ولی من خودم باهاش خیلی کار کردم و خیلی جاها (مثل همون موردی که گفتی) از این بجای Yii استفاده کردم...Big Grin
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان