Silex یک microframework کم حجم و ساده PHP بوده که بر پایه سیمفونی ۲ (symfony2) استوار است.
نصب:
به شاخه روت وبسایت خود بروید (به عنوان مثلا در توزیع دبیان مسیر /var/www) و یک فایل متنی با نام composer.json و با محتویات زیر بسازید.
$nano composer.json { "require": { "silex/silex": "1.0.*@dev" } }
به کمک دستورهای زیر Silex را از سایت getcomposer.com دریافت و نصب میکنیم.
$ curl -s http://getcomposer.org/installer | php $ composer.phar install
پس از اجرای دستورات دایرکتوری (پوشه، Directory) با نام vendor در مسیر جاری ساخته میشود. در داخل این دایرکتوری محتویات هسته Framework قرار دارد.
سلام دنیا:
برای شروع یک برنامه hello word! مینویسیم.
یک فایل PHP به نام index.php ساخته و محتویات زیر را در آن کپی و ذخیره مینماییم.
#nano index.php require_once __DIR__.'/vendor/autoload.php'; $app = new Silex\Application(); $app->get('/hello/{name}', function ($name) use ($app) { return 'Hello '.$app->escape($name); }); $app->run();
نکته ۱: توجه داشته باشید که مسیر /vendor/autoload.php را باید بسته به محل قرار گیری Framework و محل فایل تغییر دهید. در مثال ما فایل index.php در مسیر /var/www قرار دارد و Framework در مسیر /var/www/vendor.
نکته ۲: به دلایل امنیتی بهتر است هسته Framework در دایرکتوری بالاتر از public_html قرار داده تا در دسترس کاربران سایت نباشد. به عنوان مثال بهتر است هسته Framework را در مسیر /var/vendor قرار دهیم و آدرس را به شکل زیر تنظیم کنیم
require_once __DIR__.'/../vendor/autoload.php';
آدرس http://localhost/index.php/hello/word را در مرورگر باز میکنیم و نتیجه را مشاهده میکنیم.
و اما نحوه کارکرد:
در ابتدا هسته Framework را include میکنیم. سپس یک نمونه از Silex میسازیم و در خط سوم میگوییم همه درخواستهای get که به صورت /hello/name بود را به تابع name ارسال کن، تابع name در اینجا کلمه hello word را چاپ میکند (در صورتی که آدرس با به صورت hello word وارد کنیم.)
برای آشنایی بیشتر با این Framework به سایت رسمی پروژه مراجعه کنید.