في هذه المقالة، سنستعرض أساسيات بناء Laravel وكيف يمكننا استخدام Laravel لإعداد مشروع صغير.
لارافيل هو إطار تطبيق ويب قوي وأنيق لـ PHP قد حظي بشعبية هائلة بين المطورين بسبب سهولته وتنوعه وميزاته القوية. على مر السنين، أصبح Laravel الإطار المفضل لـ PHP لكل من المشاريع الكبيرة والصغيرة.
الشروط الأساسية: البدء بـ Laravel
قبل الغوص في تطوير Laravel، يجب التأكد من أننا نمتلك جميع الأدوات والبرامج الضرورية المثبتة. إليكم ما سنحتاجه:
-
PHP. يعمل Laravel على PHP، لذا يجب أولاً التأكد من تثبيت PHP على جهازك. إذا كنت غير متأكد مما إذا كان PHP مثبتًا، فاذهب إلى النافذة أو موجه الأوامر واكتب
php -v
. إذا كان PHP مثبتًا، سترى رقم الإصدار. إذا لم يكن، ستحتاج لتثبيته.لتثبيت PHP في جهازك لدينا عدة خيارات:
التثبيت المحلي. يمكنك تثبيت PHP مباشرة على جهاز الكمبيوتر الخاص بك. تفضل إلى صفحة تنزيلات PHP للحصول على أحدث إصدار لنظام التشغيل الخاص بك.
Laravel Homestead. من أجل إعداد أكثر تنظيمًا، خاصة إذا كنت جديدًا في تطوير PHP، فإن استخدام Laravel Homestead قد يكون مناسبًا. Homestead هو صندوق Vagrant مع تهيئة مسبقة توفر بيئة تطوير كاملة لـ Laravel. يمكنك العثور على تعليمات التثبيت هنا.
-
Composer. Laravel يستخدم Composer لإدارة التبعيات. Composer هو مدير التبعيات الافتراضي لـ PHP، ويستخدم على نطاق واسع وموثق جيدًا.
-
حزمة التثبيت الخاصة بـ Laravel. يمكن تثبيت Laravel على نظامنا بشكل عالمي باستخدام حزمة التثبيت الخاصة بـ Laravel، وهي أداة الأوامر الخطوط العريضة المريحة التي تسهم في تبسيط عملية إنشاء مشاريع Laravel الجديدة. لتثبيتها بشكل عالمي على نظامك، اتبع هذه الخطوات:
- افتح المحطة أو موجه الأوامر.
- قم بتشغيل الأمر Composer التالي:
composer global require laravel/installer
بمجرد اكتمال التثبيت، تأكد من أن دليل بنية الأدوات العالمية بالنسبة لـ Composer موجود في “PATH” الخاص بنظامك لكي يمكنك تشغيل الأمر
laravel
من أي مكان.إذا كنت تفضل بديلا أخف من Homestead، قد تفكر في Laravel Herd. Herd هو بيئة تطوير محلية قائمة على Docker تم تخصيصها خصيصًا لمشاريع Laravel. يمكنك معرفة المزيد عن Herd وكيفية إعدادها هنا.
من خلال إعداد بيئة التطوير الخاصة بك باستخدام PHP، Composer، و Laravel Installer (أو استكشاف خيارات مثل Homestead أو Herd)، ستكون مستعدًا جيدًا لبدء رحلتك في Laravel. في الأقسام التالية، سنستعرض عملية إنشاء مشروع Laravel جديد، واستكشاف بنية الدليل، وتكوين بيئة التطوير.
إعداد مشروع Laravel جديد
الآن بعد أن أصبح بيئة التطوير جاهزة، حان الوقت لإنشاء مشروع Laravel جديد. لإنشاء مشروع جديد “فارغ”، يمكننا استخدام الأمر التالي في المحطة:
composer create-project --prefer-dist laravel/laravel project-name
project-name
يجب استبداله باسم المشروع الفعلي. سيقوم هذا الأمر بتنزيل أحدث إصدار من Laravel وإعداد دليل مشروع جديد بجميع الملفات والمركبات الضرورية.
بنية الدليل: استكشاف مشروع Laravel
بعد إنشاء مشروع Laravel جديد، سنجد أنفسنا في بنية دليل منظمة. فهم هذه البنية مهم للغاية في تطوير Laravel. إليك بعض الدلائل الرئيسية وأهدافها:
- app. يضم هذا الدليل المنطق الأساسي لتطبيقنا، بما في ذلك المُتحكّمون، النماذج، ومزودي الخدمات.
- bootstrap. تقع ملفات التشغيل والتهيئة في Laravel هنا.
- config. يمكن العثور على ملفات التكوين لمكونات مختلفة من تطبيقنا هنا، مما يسمح لنا بالعثور على إعدادات مخصصة مثل اتصالات قواعد البيانات والخدمات من نقطة واحدة في المشروع.
- Database. في هذا الدليل، سنعرّف مهام قواعد البيانات والبذور لاستخدامها بواسطة Eloquent ORM في Laravel. Eloquent تبسط إدارة قواعد البيانات.
- public. المواد القابلة للوصول بشكل عام مثل CSS، JavaScript، والصور تنتمي هنا. يحتوي هذا الدليل أيضًا على نقطة الدخل لتطبيقنا، ملف
index.php
. - resources. تُخزن مواد تطبيقنا غير المصنعة، مثل قوالب Blade، Sass، وJavaScript هنا.
- routes. تُدار تكوين الطريق في Laravel في هذا الدليل.
- storage. يتم تخزين الملفات المؤقتة وملفات الذاكرة المختزلة والسجلات هنا.
- vendor. يُدار مرونة تطبيقنا في هذا الدليل. ستكون جميع المكتبات التي تم تنزيلها في هذا الدليل.
التكوين: إعداد قواعد البيانات ومتغيرات البيئة
لتكوين اتصال قاعدة بياناتنا ، نحتاج إلى فتح ملف .env
في الدليل الجذري للمشروع. هنا ، يمكننا تحديد نوع القاعدة البيانية ، المضيف ، اسم المستخدم ، كلمة المرور ، واسم القاعدة البيانية. بفضل Eloquent ORM، يدعم Laravel اتصالات قواعد بيانات متعددة ، مما يجعله عبرة لمتطلبات مشاريع مختلفة.
فهم ملف .env
ملف .env
هو المكان الذي نحدد فيه القيم التكوينية الخاصة بالبيئة ، مثل تفاصيل اتصال القاعدة البيانية ، مفاتيح الـ API ، وغيرها من الإعدادات. دعونا نلقي نظرة على مثال بسيط لما قد تجده في ملف .env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_username
DB_PASSWORD=my_password
في هذا المثال:
DB_CONNECTION
يحدد نوع برنامج تشغيل قاعدة البيانات الذي نستخدمه (مثل MySQL ، PostgreSQL ، SQLite).DB_HOST
يحدد المضيف حيث يقع خادم قاعدة البيانات.DB_PORT
يحدد المنفذ الذي يعمل عليه خادم قاعدة البيانات.DB_DATABASE
يحدد اسم القاعدة البيانية التي نرغب في الاتصال بها.DB_USERNAME
وDB_PASSWORD
يحددان اسم المستخدم وكلمة المرور المطلوبة للوصول إلى قاعدة البيانات.
استخدام متغيرات البيئة
من المهم حماية المعلومات الحساسة مثل بيانات الاعتماد في قاعدة البيانات. يشجع Laravel استخدام متغيرات البيئة لتحقيق ذلك. بدلاً من ترميز بيانات الاعتماد في ملف .env
، يمكننا استشهاد بها في ملفات التكوين لدينا.
على سبيل المثال، في ملفات تكوين Laravel لدينا (تقع في الدليل config/
)، يمكننا الرجوع إلى تكوين قاعدة البيانات بهذه الطريقة:
'mysql' => [
'driver' => env('DB_CONNECTION', 'mysql'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
// ...
],
هنا، تسترجع الدالة env()
قيمة المتغير البيئي المحدد من ملف .env
. إذا لم يتم العثور على المتغير، فإنه يعود إلى قيمة افتراضية قدمت كوسيطة ثانية.
باستخدام ملفات التكوين، يمكننا تخزين البيانات الحساسة في مكان أكثر أمانًا وتبديل التكوينات بين البيئات بسهولة (مثل التطوير والإنتاج).
مع إنشاء مشروع Laravel لدينا، وتنظيم الدلائل، وتكوين قاعدة البيانات، نحن جاهزون لبدء بناء تطبيق الويب لدينا. في الأقسام التالية، سنركز على التوجيه والمُحاكيين والعمل مع قوالب Blade لعروض الواجهة الأمامية لدينا.
التوجيه والمُحاكيين والعرض: قلب تطبيق Laravel الخاص بك
في Laravel، يعمل التوجيه والمُحاكيين والعرض معًا لمعالجة الطلبات HTTP وعرض الصفحات الويب الديناميكية. فهم هذه المفاهيم أمر ضروري لإنشاء تطبيقات ويب باستخدام Laravel.
باختصار، تتلقى الطلبات HTTP من قبل الموجه، الذي بعد ذلك يعرف أي مُحاكي يجب أن يعالج الإجراء. المُحاكي مسؤول عن معالجة المعلومات وإظهار المعلومات المعالجة من خلال العروض.
التوجيه
في Laravel، يمكننا تعريف الطرق في ملف routes/web.php
. تبدو تعريف طريق أساسي مثل هذا:
Route::get('/welcome', function () {
return view('welcome');
});
يوضح هذا المثال تكوين مسار يعود عند الوصول إليه بعرض welcome
. يمكن استخدام المسارات أيضًا لاستدعاء إجراءات التحكم, كما ذكرنا سابقًا, مما يسمح لنا بتنظيم الكود بفعالية أكبر.
إنشاء تحكم
التحكم يعمل كجسر بين مساراتنا ومنطق تطبيقنا. لإنشاء تحكم, يمكن استخدام الأمر make:controller
:
php artisan make:controller YourControllerName
يحتوي تحكمنا الجديد على طرق تتوافق مع إجراءات مختلفة في تطبيقنا, مثل عرض صفحة أو معالجة معلومات النموذج.
عروض وقوالب Blade
تكون عرض في Laravel مسؤولة عن تقديم بيانات تطبيقنا للمستخدمين. بشكل افتراضي, يستخدم Laravel محرك قالب يسمى Blade, الذي يبسط إنشاء عروض ديناميكية قابلة لإعادة الاستخدام. فيما يلي مثال على عرض العرض في طريقة التحكم:
public function index()
{
$data = ['name' => 'John'];
return view('welcome', $data);
}
في هذا المثال, يتم عرض العرض welcome
ببيانات, حيث تم تمرير 'name'
إليه.
Blade هو محرك قالب قوي للغاية يسمح بإنشاء محتوى ديناميكي من خلال عبارات شرطية, حلقات, وما إلى ذلك.
تحويل وطريقة البذر القاعدة
نظام التصدير والغرض الأولي للقواعد الخاصة بـ Laravel يتيح لنا تعريف مخطط قاعدة البيانات الخاصة بنا وتعبئته بالبيانات الأولية. يمكننا النظر إلى التصدير على أنه تغييرات قاعدة بيانات تحت سيطرة الإصدارات، و الغرض الأولي على أنه عملية اضافة البيانات النموذجية.
التصدير والغرض الأولي هما مفاهيم قوية للغاية والتي تتيح تنظيم القواعد الخاصة بالبيانات عبر البيئات.
لإنشاء تصدير، يمكننا استخدام الأمر make:migration
:
php artisan make:migration create_table_name
بعد ذلك، يمكننا تعديل ملف التصدير المولد لتعريف بنية الجدول الخاصة بنا، ثم استخدام Artisan لتشغيل التصدير:
php artisan migrate
غالبًا ما يتم استخدام الغرض الأولي لملء الجداول بالبيانات الأولية للاختبار والتطوير. لإنشاء غرائز، يمكننا استخدام الأمر make:seeder
وتشغيلها باستخدام:
php artisan db:seed
إنشاء نماذج لتفاعلات قاعدة البيانات
ORM Eloquent الخاص بـ Laravel يبسط تفاعلات قاعدة البيانات عن طريق تمكيننا من العمل مع قواعد البيانات كما لو كانت كائنات. لإنشاء نموذج، نستخدم الأمر make:model
:
php artisan make:model YourModelName
يمكن تحديد الجدول والعلاقات في النموذج لتمكين استرداد البيانات والتلاعب بها بسهولة. على سبيل المثال، لاسترداد جميع السجلات من جدول users
:
$users = YourModelName::all();
بهذه المعرفة، والتي تشمل التوجيه والمحددات والعروض والتصدير والغرض الأولي والنماذج، نحن في طريقنا لبناء تطبيقات الويب الديناميكية باستخدام Laravel. في الأقسام التالية، سنتعمق في إنشاء تطبيق CRUD بسيط واستكشاف ميزات Laravel المتقدمة.
إنشاء تطبيق CRUD بسيط في Laravel
لنأخذ رحلتنا في لارافيل إلى المستوى التالي من خلال بناء تطبيق CRUD – في هذه الحالة، تطبيق تسجيل بيانات الكتب البسيط، حيث يمكننا إنشاء، قراءة، تحديث، وحذف الكتب. هذا التمرين العملي سيساعدنا على فهم كيفية تنفيذ عمليات CRUD في لارافيل.
لأجل حجم هذه المقالة، سنركز على إنشاء الصفحة الأولى فقط من التطبيق، لذا فالأمر متروك لك لإكمال هذا التطبيق!
الخطوة 1: إنشاء إزاحة لجدول الكتب
لتوليد إزاحة لجدول books
، دعونا نستخدم الأمر التالي:
php artisan make:migration create_books_table
يولد هذا الأمر ملف إزاحة لإنشاء جدول books
في قاعدة البيانات. بعد ذلك، قم بتحرير ملف الإزاحة الذي تم إنشاؤه للتو (database/migrations/YYYY_MM_DD_create_books_table.php
) لتعريف بنية الجدول:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBooksTable extends Migration
{
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('author');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('books');
}
}
في ملف الإزاحة هذا، نعرّف بنية جدول books
، بما في ذلك أعمدته (id
، title
، author
، timestamps
). ثم نريد تشغيل الإزاحة لإنشاء الجدول:
php artisan migrate
ينفذ هذا الأمر ملف الإزاحة وينشئ جدول books
في قاعدة البيانات.
الخطوة 2: إنشاء مغير لجدول الكتب
بعد ذلك، نريد توليد مغير لجدول books
لملء الجدول ببعض البيانات الأولية:
php artisan make:seeder BooksTableSeeder
يولد هذا الأمر ملف مغير لملء جدول books
ببيانات أولية.
قم بتحرير ملف المغير (database/seeders/BooksTableSeeder.php
) لتعريف بيانات الكتب النموذجية:
use Illuminate\Database\Seeder;
class BooksTableSeeder extends Seeder
{
public function run()
{
DB::table('books')->insert([
['title' => 'Book 1', 'author' => 'Author A'],
['title' => 'Book 2', 'author' => 'Author B'],
['title' => 'Book 3', 'author' => 'Author C'],
]);
}
}
في ملف البذرة هذا، نحدد بيانات عينة لكتب سيتم إدراجها في جدول books
. في هذه الحالة بالتحديد، نقوم بإنشاء كتب من 1 إلى 3 وكتب من A إلى C.
قم بتشغيل البذرة لملء جدول books
:
php artisan db:seed --class=BooksTableSeeder
هذا الأمر ينفذ ملف البذرة ويملأ جدول books
بالبيانات العينة المحددة.
الخطوة 3: إنشاء وحدة تحكم
قم بإنشاء وحدة تحكم لإدارة الكتب:
php artisan make:controller BookController
هذا الأمر يولد ملف وحدة تحكم (BookController.php
) يحتوي على طرق للتعامل مع عمليات CRUD المتعلقة بالكتب. بعد إنشاء الوحدة التحكم، دعونا نركز على تنفيذ طرق CRUD في BookController
. إنه موجود في app/Http/Controllers/BookController.php
:
use App\Book; // استيراد نموذج الكتب
public function index()
{
$books = Book::all();
return view('books.index', compact('books'));
}
public function create()
{
return view('books.create');
}
public function store(Request $request)
{
$book = new Book;
$book->title = $request->input('title');
$book->author = $request->input('author');
$book->save();
return redirect()->route('books.index');
}
// تنفيذ طرق التحرير والتحديث والعرض والحذف بشكل مشابه
في ملف وحدة التحكم هذا، نحدد طرق للتعامل مع عمليات CRUD المتعلقة بالكتب. على سبيل المثال، الطريقة index
تسترد جميع الكتب من قاعدة البيانات وتمررها إلى رؤية index
، بينما الطريقة store
تنشئ سجل كتب جديد بناء على البيانات المقدمة من خلال نموذج. الطريقة create()
مسؤولة عن عرض نموذج لإنشاء سجل كتب جديد. عندما ينتقل المستخدم إلى المسار المرتبط بهذه الطريقة، سينفذ Laravel هذه الوظيفة وترجع رؤية تسمى books.create
.
الخطوة 4: إنشاء رؤى
إنشاء رؤى للقائمة ، وإنشاء ، وتعديل الكتب في مجلد resources/views
.
مثال للعرض (create.blade.php
):
@extends('layout')
@section('content')
<h1>Create a New Book</h1>
<form method="POST" action="{{ route('books.store') }}">
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" name="title" class="form-control" id="title" placeholder="Enter book title">
</div>
<div class="form-group">
<label for="author">Author</label>
<input type="text" name="author" class="form-control" id="author" placeholder="Enter author name">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<a href="{{ route('books.index') }}">Back to the list</a>
@endsection
في هذا المثال ، يحتوي العرض create
على نموذج لإضافة كتاب جديد. يقوم النموذج بتحديث البيانات إلى طريقة store
في BookController
. توليد توجيه @csrf
توكن CSRF لحماية مقابل الطلبات المتطفلة من خلال مواقع أخرى.
بهذا المثال ، يجب أن تتمكن من تنفيذ طرق ورؤى التحكم في العمليات المتبقية من CRUD بنفسك ، لذا ابدأ العمل!
الخاتمة
في هذه المقالة ، نظرنا إلى أساسيات تطبيق Laravel: كيف يمكننا استخدام سطر الأوامر لمساعدتنا في بناء تطبيق ، بنية التطبيق Laravel ، وكيفية إنشاء تطبيق CRUD في Laravel.
I hope this article was useful and that you’re now capable of using Laravel to create your applications and expand the information here with more advanced topics. More information on Laravel can be found at the official Laravel website.
Source:
https://www.sitepoint.com/laravel-project-setup-beginners-guide/