ساخت پروژه ساده با Laravel

ساخت پروژه ساده با Laravel: یک راهنمای عملی

ساخت پروژه ساده با Laravel: یک راهنمای عملی

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

پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که پیش‌نیازهای زیر را دارید:

  • PHP نسخه 8.1 یا بالاتر
  • Composer (مدیر بسته PHP)
  • یک وب سرور (مانند Apache یا Nginx)
  • یک پایگاه داده (مانند MySQL یا PostgreSQL)

نصب Laravel

برای نصب Laravel، می‌توانید از Composer استفاده کنید. ترمینال خود را باز کرده و دستور زیر را اجرا کنید:

composer create-project --prefer-dist laravel/laravel my-project

در این دستور، my-project نام پوشه پروژه شما خواهد بود. Composer فریم‌ورک Laravel را دانلود و در پوشه مشخص شده نصب می‌کند.

پیکربندی پروژه

پس از نصب، وارد پوشه پروژه شوید:

cd my-project

فایل .env را باز کرده و تنظیمات پایگاه داده را مطابق با اطلاعات پایگاه داده خود پیکربندی کنید. این تنظیمات شامل نام پایگاه داده، نام کاربری، رمز عبور، و هاست پایگاه داده است.

ایجاد مدل

مدل‌ها نمایانگر جداول پایگاه داده هستند. برای ایجاد یک مدل، از دستور Artisan استفاده کنید. به عنوان مثال، برای ایجاد یک مدل به نام Post، دستور زیر را اجرا کنید:

php artisan make:model Post

این دستور یک فایل مدل به نام Post.php در پوشه app/Models ایجاد می‌کند. این فایل را باز کرده و ویژگی‌های مورد نیاز خود را تعریف کنید. به عنوان مثال:

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    protected $fillable = ['title', 'content'];
}

در این مثال، ویژگی‌های title و content برای مدل Post تعریف شده‌اند. این ویژگی‌ها به عنوان ستون‌های جدول posts در پایگاه داده استفاده خواهند شد.

ایجاد Migration

Migrationها برای ایجاد و تغییر جداول پایگاه داده استفاده می‌شوند. برای ایجاد یک migration برای مدل Post، دستور زیر را اجرا کنید:

php artisan make:migration create_posts_table

این دستور یک فایل migration در پوشه database/migrations ایجاد می‌کند. این فایل را باز کرده و ساختار جدول posts را تعریف کنید. به عنوان مثال:

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

در این مثال، یک جدول به نام posts با ستون‌های id، title، content، created_at، و updated_at ایجاد می‌شود.

اجرای Migrationها

برای اجرای migrationها و ایجاد جدول posts در پایگاه داده، دستور زیر را اجرا کنید:

php artisan migrate

این دستور تمام migrationهای موجود در پوشه database/migrations را اجرا می‌کند.

ایجاد کنترلر

کنترلرها منطق برنامه را مدیریت می‌کنند. برای ایجاد یک کنترلر به نام PostController، دستور زیر را اجرا کنید:

php artisan make:controller PostController

این دستور یک فایل کنترلر به نام PostController.php در پوشه app/Http/Controllers ایجاد می‌کند. این فایل را باز کرده و متدهای مورد نیاز خود را تعریف کنید. به عنوان مثال:

namespace AppHttpControllers;

use AppModelsPost;
use IlluminateHttpRequest;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::all();
        return view('posts.index', compact('posts'));
    }

    public function create()
    {
        return view('posts.create');
    }

    public function store(Request $request)
    {
        Post::create($request->all());
        return redirect()->route('posts.index');
    }
}

در این مثال، متدهای index، create، و store تعریف شده‌اند. متد index تمام پست‌ها را از پایگاه داده دریافت کرده و آن‌ها را به یک ویو به نام posts.index ارسال می‌کند. متد create یک ویو به نام posts.create را نمایش می‌دهد. متد store یک پست جدید را در پایگاه داده ایجاد کرده و کاربر را به صفحه posts.index هدایت می‌کند.

تعریف Routeها

Routeها آدرس‌های URL را به متدهای کنترلر متصل می‌کنند. فایل routes/web.php را باز کرده و routeهای مورد نیاز خود را تعریف کنید. به عنوان مثال:

use AppHttpControllersPostController;
use IlluminateSupportFacadesRoute;

Route::get('/posts', [PostController::class, 'index'])->name('posts.index');
Route::get('/posts/create', [PostController::class, 'create'])->name('posts.create');
Route::post('/posts', [PostController::class, 'store'])->name('posts.store');

در این مثال، سه route تعریف شده است. route اول آدرس /posts را به متد index کنترلر PostController متصل می‌کند. route دوم آدرس /posts/create را به متد create کنترلر PostController متصل می‌کند. route سوم آدرس /posts را به متد store کنترلر PostController متصل می‌کند.

ایجاد Viewها

Viewها رابط کاربری برنامه را نمایش می‌دهند. برای ایجاد viewها، فایل‌های HTML را در پوشه resources/views ایجاد کنید. به عنوان مثال، برای ایجاد view posts.index، یک فایل به نام index.blade.php در پوشه resources/views/posts ایجاد کنید. این فایل را باز کرده و رابط کاربری مورد نظر خود را طراحی کنید. به عنوان مثال:

Posts

    @foreach ($posts as $post)
  • {{ $post->title }} - {{ $post->content }}
  • @endforeach
Create New Post

در این مثال، یک لیست از پست‌ها نمایش داده می‌شود. هر پست شامل عنوان و محتوای آن است. همچنین، یک لینک برای ایجاد پست جدید وجود دارد.

برای ایجاد view posts.create، یک فایل به نام create.blade.php در پوشه resources/views/posts ایجاد کنید. این فایل را باز کرده و فرم ایجاد پست را طراحی کنید. به عنوان مثال:

Create New Post

@csrf

در این مثال، یک فرم برای ایجاد پست جدید نمایش داده می‌شود. فرم شامل فیلدهای عنوان و محتوا است. دکمه Save برای ارسال فرم استفاده می‌شود.

اجرای پروژه

پس از انجام تمام مراحل بالا، می‌توانید پروژه را اجرا کنید. ترمینال خود را باز کرده و دستور زیر را اجرا کنید:

php artisan serve

این دستور یک سرور توسعه محلی را راه‌اندازی می‌کند. سپس، می‌توانید با استفاده از مرورگر خود به آدرس http://localhost:8000 دسترسی پیدا کنید و پروژه خود را مشاهده کنید.

با این راهنما، شما توانستید یک پروژه ساده با Laravel ایجاد کنید. این پروژه شامل ایجاد یک مدل، کنترلر، و یک رابط کاربری ساده برای مدیریت اطلاعات بود. Laravel ابزارها و امکانات بسیار بیشتری را ارائه می‌دهد که می‌توانید برای توسعه پروژه‌های پیچیده‌تر از آن‌ها استفاده کنید.