Laravel Paper: درایور Eloquent برای فایلهای مسطح
خلاصهٔ کاملتر
Laravel Paper یه پکیج متنباز ساخته Jacob Jørgensen هست که امکانات Eloquent لاراول رو به سراغ فایلهای معمولی میبره. یعنی میتونی فایلهای Markdown یا JSON روی دیسک رو مثل جدولهای دیتابیس باهاشون کار کنی — بدون migration، بدون connection جداگانه، و بدون هیچ دیتابیسی.
برای راهاندازی، کافیه تریت Paper رو به مدلت اضافه کنی و با اتریبیوتهای PHP 8 مشخص کنی که فایلها کجا هستن و با چه درایوری (markdown یا json) باید خونده بشن:
#[Driver('markdown')]
#[ContentPath('content/docs')]
class Document extends Model
{
use Paper;
}بعد از این تعریف ساده، میتونی از متدهای آشنای Eloquent مثل where، orderBy، find و حتی whereContains و whereLike استفاده کنی. slug هر فایل از روی نام فایل بهصورت خودکار ساخته میشه و نقش کلید اصلی رو داره.
پکیج از رابطههای بین مدلهای فایلمحور هم پشتیبانی میکنه. متدهایی مثل belongsToPaper و hasManyPaper بر اساس فیلدهای frontmatter فایلهای Markdown کار میکنن — frontmatter همون بخش YAML بالای فایلهای Markdown هست که متادیتا مثل عنوان، نسخه و برچسبها رو نگه میداره.
عملیات نوشتن هم کاملاً پشتیبانی میشه. وقتی save() صدا میزنی، فایل روی دیسک ساخته یا آپدیت میشه؛ وقتی delete() میزنی، فایل از دیسک حذف میشه. یعنی وضعیت مدل همیشه با وضعیت واقعی فایلسیستم هماهنگه.
این پکیج به PHP نسخه ۸.۴ و لاراول ۱۲ به بالا نیاز داره و از طریق Composer نصب میشه.
نکات کلیدی:
- فایلهای Markdown و JSON رو بدون دیتابیس با Eloquent مدیریت میکنه
- از query builder کامل لاراول پشتیبانی میکنه
- رابطههای بین مدلها بر اساس frontmatter فایلها تعریف میشن
- عملیات ایجاد، آپدیت و حذف مستقیماً روی فایلسیستم اعمال میشه
- نیازمند PHP 8.4 و Laravel 12 به بالا هست




