Kaptain Kitty
انتشار :۲۰ دی ۱۳۹۳
بازدید :664 بار

در گذشته بسیاری از برنامه نویسان نسبت به زبان php دید منفی داشتند. تعدادی مقاله ی ضد php مثل ویروس در تمام اینترنت پخش شده بود و برخی از فریم ورک های برتر آن، مانند کدایگنایتر (CodeIgniter) به سرعت در حال کهنه شدن بود. در همان حال به نظر میرسید که Ruby on Rails از لحاظ نوآوری و سهولت در برنامه نویسی، پکیجی ایده آل و پیشرو باشد. با گذشت زمان همه خود را بیشتر و بیشتر به Ruby toolbelt وابسته می دیدند تا اینکه فریم ورکی فوق العاده به نام Laravel به بازار معرفی شد. این فریم ورک در ابتدا جدی گرفته نشد زیرا تصور همه بر این بود که این فریم ورک هم مانند Sinatra به زودی محو خواهد شد. اما هنوز هم هر هفته خوراک های شبکه های اجتماعی در تحسین از Laravel (لاراول) می باشند. حال این سوال مطرح است که “آیا بالاخره زبان php توانست فریم ورک مدرنی مانند Laravel ایجاد کند؟”.

فریم ورک لاراول

فریم ورک لاراول

Laravel (لاراول) را در این وب سایت بیشتر بشناسید: http://laravel.com

Laravel باعث شد که php باز هم محبوب شود و اینکه دیگر این اعتقاد وجود نداشته باشد که php فقط محکوم به استفاده در وب سایت های شخصی و وبلاگ های غیر حرفه ای وردپرسی است. با از Laravel، Composer و PHP 5.5 ما در حال تجربه ی یک رنسانس دیگر در محبوب ترین زبان سمت سرور در برنامه نویسی وب هستیم.

برای نصب آخرین نسخه ی فریم ورک Laravel (v4)، باید ابتدا Composer را نصب کنید. سپس repository را نسخه برداری کرده و متعلقات را نصب کنید.

git clone git://github.com/illuminate/app.git myAppو composer install.

حال آماده ی کار هستید.

Eloquent

اکثر برنامه نویسان PHP کار خود را با درج تعداد فراوانی از خط های SQL به درون php غیر خوانا و انعطاف ناپذیر خود شروع کرده اند. نیاز به گفتن نیست که جدا از بسیاری از مشکلات پایه ای که برای وب سایت ها به وجود می آید، این امر باعث به هم ریختگی غیر قابل تحملی نیز می شود.

اولین بار که در مورد بخش ActiveRecord در Ruby on Rails شنیدید را به یاد می آورید؟ در php نیز Eloquent، پیاده سازی اصلی محسوب می شود.

مثالی را با هم بررسی می کنیم:

[codesyntax lang=”php”]

// Fetch all tasks
$tasks = Task::all();
 
// Fetch the task with an id of 1
$task = Task::find(1);
 
// Update a task
$task = Task::find(1);
$task->title = 'Put that cookie down!';
$task->save();
 
// Create a new task
Task::create([
    'title' => 'Write article'
]);
 
// Delete a task
Task::find(1)->delete();

[/codesyntax]

 

 

امکان نوشتن کد های خواناتر در php وجود ندارد. حال اگر Eloquent به شما این امکان را بدهد که عملیات پایه ی CRUD را در یک جدول انجام دهید چطور؟ اما در حال حاضر موضوع بحث ما این نیست.

روابط جدولی را در نظر بگیرید، مانند یک کاربر و task های مربوط به آن کاربر. در فریم ورک Laravel پس از تنظیم یک متد جستجوی سریع برای هر مدل، می توانیم به راحتی روابط یک-به-یک را مدیریت کنیم. در اینجا به طرح چند مثال می پردازیم:

[codesyntax lang=”php”]

// Get all tasks by the author with an id of 1
$tasks = User::find(1)->tasks;
 
// Get the author of a task
$author = Task::find(5)->user()->username;
 
// Insert a new task by author
$task = new Task([ title: 'Go to store.' ]);
User::find(1)->tasks()->insert($task);

[/codesyntax]

 

اگر Eloquent را بهترین پیاده سازی ActiveRecord به زبان php در نظر بگیریم، قطعا اغراق نکرده ایم.

پکیج های Composer

فریم ورک لاراول laravel

فریم ورک لاراول laravel

در شروع کار با Laravel 4، کل فریم ورک بخش بندی شده و به صورت پکیج های جداگانه ی Composer در دسترس می باشد.

Composer یک سیستم بسته بندی برای php می باشد که مشابه با PEAR و البته بهتر از آن است. Composer باعث تسهیل مدیریت متعلقات (dependency) می شود.

به اکوسیستم فعلی این فریم ورک فکر کنید. در حال حاضر شما مجبور به استفاده از ویژگی های اصلی فریم ورک های موجود هستید. نمی توانید انتخاب کنید که مثلا Eloquent را در اپلیکیشن CakePHP استفاده کنید. همانطور که شما هم در تصورات خود به این نتیجه رسیدید، این حقیقت یعنی اختراع دوباره و دوباره ی چرخ.

خانم ها و آقایان، php در آینده به صورت ماژولی خواهد بود. چرا باید کل یک فریم ورک را نصب کنید وقتی که تنها به بخش های اندکی از آن نیاز دارید؟ به زودی دیگر مجبور به این کار نیستید. آیا در یک پروژه ی کوچک فقط به Eloquent نیاز دارید؟ بسیار خوب، هیچ مشکلی نیست. به راحتی آن را از طریق Composer نصب کرده و نیاز پروژه ی خود را رفع کنید.

بنابراین اگر در حال جا به جایی به سوی دنیای php ماژولی و بسته بندی-محور هستیم، Laravel چگونه خود را با این تغییر منطبق می سازد؟ Laravel را به صورت یک مجموعه ی از پیش تعیین شده از بسته های مختلف در نظر بگیرید که در یک روبان پیچیده شده اند. حتی بهتر از آن، اگر نیاز به آپدیت Laravel به آخرین نسخه ی آن داشته باشید، فقط کافیست که  composer update را اجرا کنید.

به عنوان مثالی از انعطاف پذیری که این روش فراهم می کند، می خواهیم کتابخانه ی آزمایشی و محبوب Mockery را به اپلیکیشنی که با Laravel نوشته شده است اضافه کنیم. ابتدا با یک پروژه ی جدید از Laravel 4 شروع می کنیم و فایل  composer.json آن را به گونه ای ویرایش می کنیم که نیاز به Mockery داشته باشد.

[codesyntax lang=”php”]

{
    "require": {
        "illuminate/foundation": ">=1.0.0",
        "mockery/mockery": "dev-master"
    },
    "autoload": {
        "classmap": [
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/tests/TestCase.php"
        ]
    }
}

[/codesyntax]

 

برای دستیابی به لیستی از پکیج های آماده ی Composer و همچنین دستورالعمل های نصب، به Packagist.org رجوع کنید.

حال که به Composer اطلاع دادیم که اپلیکیشن ما به Mockery نیاز دارد، می توانیم متعلقات کاربردی را نصب کنیم.

[codesyntax lang=”php”]

composer update

[/codesyntax]

 

به همین سادگی. حال می توانیم از Mockery در تست های خود استفاده کنیم. این است قدرت Composer و Laravel 4. ما چرخ را داریم پس دست از اختراع دوباره ی آن برداریم. صدها پکیج از طریق packagist.org قابل دسترس می باشد.

[codesyntax lang=”php”]

<?php
 
use Mockery as m;
 
class ExampleTest extends PHPUnit_Framework_TestCase {}

[/codesyntax]

 

فریم ورک لاراول

فریم ورک لاراول

 

اکثر برنامه نویسانی که به تازگی کار با php را آغاز کرده اند با چیزی بیشتر از سیستم های مسیریابی طبیعی آن آشنا نیستند. یک درخت دایرکتوری ایجاد کنید تا URI مورد نظرتان match شود و شروع به کار کنید. برای مثال یک فایل index.php را به دایرکتوری  blog/admin/  اضافه کنید، حال می توانید با browse کردن در  localhost:8888/blog/admin/index.php به آن دسترسی داشته باشید. در آغاز آسان به نظر می رسد اما احتمالا خواهید دید که نیاز به انعطاف پذیری و کنترل بیشتری بر مسیری که در اپلیکیشن شما انتخاب می شود، دارید.

Laravel روش بسیار ساده و کاربردی برای مسیریابی یا routing دارد. به عنوان مثال، می خواهیم مسیر لازم را برای نمایش یک view از پروفایل یک کاربر بنویسیم:

[codesyntax lang=”php”]

Route::get('users/{id}', function($id) {
    // find the user
    $user = User::find($id);
 
    // display view, and pass user object
    return View::make('users.profile')
        ->with('user', $user);
});

[/codesyntax]

 

حال هنگامی که کاربر example.com/users/1 را درخواست می کند، view مربوط به  users/profile.php رندر خواهد شد. روش دیگر این است که می توانیم از کنترلر های قدیمی برای مدیریت منطق برنامه استفاده کنیم.

[codesyntax lang=”php”]

Route::get('users/{id}', 'Users@show');

[/codesyntax]

 

حال  Controllers/Users.php مسئول رندر کردن view می باشد، مخصوصا متد show .

[codesyntax lang=”php”]

<?php
 
class UsersController extends Controller {
    /**
     * Display the specified resource.
     */
    public function show($id)
    {
        // find the user
        $user = User::find($id);
 
        // display view, and pass user object
        return View::make('users.profile')

->with(‘user’, $user);

}

}

[/codesyntax]

 

برچسب‌ها, , , , ,

مطالب مرتبط

  خرید کتاب سوپر فریم ورک قدرتمند برنامه نویسی وب Ext JS   خرسندیم که به استحضار دوستان و علاقه مندان برنامه نویسی برسانیم که با درخواست های شما عزیزان و پس از مدت ها، بر آن شدیم تا اولین کتاب کامل آموزش سوپر فریم ورک Ext JS را تحت عنوان “ساخت وب اپلیکیشن های […]

به طور کلی استفاده از فریم ورک اجباری نیست، بلکه فریم ورک فقط یک ابزار کمکی است که به شما کمک می کند پروژه هایتان را سریع تر و بهتر جلو ببرید. بهتر ازین بابت که : فریم ورک ها بر اساس یک ساختار و معماری درست بنا شده اند و برنامه نویس را ملزم […]

جدیدترین فریم ورک دنیای فریم ورک های php  هم پا به صحنه گذاشت. فریم ورک Fat-Free  یا به عبارتی f3 این فریم ورک واقعا سبک است، توابع پایه ای تنها در یک فایل و در یک کلاس گنجانده شده است و حجمی معادل با ۳۹ کیلوبایت را اشغال می کند! حتی با این حجم کم […]

چهار قسمت از بررسی کامل و جز به جز php و node js را پشت سر گذاشتیم. در این قسمت که آخرین مقاله را در این مورد ارائه می دهیم می خواهیم بیشتر در مورد نقاط قوت Node.js صحبت کنیم. در انتهای این مقاله، لینک هر چهار سری گذشته ذکر شده است تا اگر آنها […]

نظراتتان را برایمان بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب ما تو این شبکه های اجتماعی هم پخش میشه