مرجع laravel
دوال laravel الشاملة مع أمثلة تطبيقية — 300 دالة
الكل
300 عنصر| الاسم | الوصف | مثال |
|---|---|---|
Route::get
|
تعريف مسار GET في Laravel |
|
Route::post
|
تعريف مسار POST في Laravel |
|
Route::put
|
تعريف مسار PUT لتحديث موارد |
|
Route::patch
|
تعريف مسار PATCH لتحديث جزئي |
|
Route::delete
|
تعريف مسار DELETE لحذف موارد |
|
Route::match
|
تعريف مسار يقبل عدة طرق (مثل GET و POST) |
|
Route::any
|
يعالج أي HTTP method |
|
Route::resource
|
إنشاء مجموعة مسارات قياسية (index, show, create, store, ...) |
|
Route::apiResource
|
مثل resource لكن بدون مسارات العرض (create/edit) — مناسب للـ API |
|
Route::group
|
تجميع مسارات مع إعدادات مشتركة مثل middleware أو prefix |
|
Route::middleware
|
تطبيق Middleware على مجموعة مسارات |
|
Route::prefix
|
إضافة بادئة لمسارات مجموعة (مثلاً /admin) |
|
Route::name
|
إعطاء بادئة للأسماء لتسهيل التسمية والوصول إلى المسارات |
|
Route::view
|
تعريف مسار يعرض view مباشرة دون الحاجة إلى Controller |
|
Route::redirect
|
إعادة توجيه مسار إلى مسار آخر |
|
Route::fallback
|
مسار افتراضي يُستخدم إذا لم يطابق أي مسار آخر |
|
Route::where
|
تحديد قيود على متغيرات المسار (Regular Expression) |
|
Controller
|
الكونترولر ينظم منطق التطبيق ويفصل بين منطق الأعمال (Business Logic) والواجهات. |
|
Resource Controller
|
كونترولر يحتوي على دوال CRUD (index, create, store, show, edit, update, destroy). |
|
Invokable Controller
|
كونترولر يحتوي على دالة واحدة __invoke يمكن استدعاؤها مباشرة. |
|
__invoke
|
دالة خاصة تُنفذ عند استدعاء الكونترولر كـ Callable. |
|
Dependency Injection
|
إدخال الكائنات مباشرة في دوال الكونترولر بدلاً من إنشائها يدوياً. |
|
Route::controller
|
تجميع المسارات التي تعتمد على نفس الكونترولر. |
|
API Resource Controller
|
إنشاء كونترولر جاهز للتعامل مع REST API. |
|
Single Action Controller
|
كونترولر بعملية واحدة فقط (باستخدام __invoke). |
|
Nested Controllers
|
تعريف كونترولر لمعالجة علاقات داخلية (مثل user.posts). |
|
Controller Middleware
|
إضافة Middleware مباشرة في الكونترولر. |
|
Model
|
يمثل الجدول في قاعدة البيانات ويتعامل مع البيانات باستخدام Eloquent ORM. |
|
Fillable
|
مصفوفة تحدد الحقول القابلة للإدخال بشكل جماعي (Mass Assignment). |
|
Guarded
|
مصفوفة تحدد الحقول غير القابلة للإدخال. |
|
Timestamps
|
يضيف تلقائياً created_at و updated_at للجداول. |
|
Hidden
|
إخفاء أعمدة معينة عند تحويل الموديل إلى JSON. |
|
Casts
|
تحويل نوع البيانات تلقائياً عند القراءة والكتابة. |
|
Relationships: One To One
|
علاقة واحد لواحد بين جدولين. |
|
Relationships: One To Many
|
علاقة واحد لمتعدد. |
|
Relationships: Many To One
|
الجانب العكسي لعلاقة واحد لمتعدد. |
|
Relationships: Many To Many
|
علاقة متعدد لمتعدد. |
|
Pivot Table
|
جدول وسيط يستخدم في العلاقات Many To Many. |
|
Relationships: Has Many Through
|
الوصول إلى بيانات عبر علاقة وسيطة. |
|
Accessor
|
تعديل القيم عند القراءة. |
|
Mutator
|
تعديل القيم قبل الحفظ. |
|
Local Scope
|
فلترة الاستعلامات المتكررة. |
|
Global Scope
|
فلترة يتم تطبيقها على كل الاستعلامات. |
|
Soft Deletes
|
حذف منطقي (يضيف deleted_at بدلاً من حذف فعلي). |
|
Events (creating, updating, deleting)
|
إطلاق أحداث عند التعامل مع الموديل. |
|
Migration
|
ملف مسؤول عن إنشاء/تعديل الجداول في قاعدة البيانات. |
|
php artisan migrate
|
تنفيذ جميع ملفات المايغريشن المعلقة. |
|
php artisan migrate:rollback
|
التراجع عن آخر دفعة من المايغريشن. |
|
php artisan migrate:refresh
|
إعادة تشغيل جميع المايغريشن (إلغاء ثم إعادة). |
|
php artisan migrate:fresh
|
حذف جميع الجداول ثم تشغيل المايغريشن من جديد. |
|
Schema::create
|
إنشاء جدول جديد. |
|
Schema::table
|
تعديل جدول موجود. |
|
Schema::drop
|
حذف جدول. |
|
Schema::dropIfExists
|
حذف جدول إذا كان موجوداً. |
|
$table->id()
|
إضافة عمود id تلقائي متزايد. |
|
$table->bigIncrements()
|
مفتاح أساسي نوع BIGINT Auto Increment. |
|
$table->string()
|
عمود نصي (VARCHAR). |
|
$table->text()
|
عمود نص طويل. |
|
$table->integer()
|
عمود عدد صحيح. |
|
$table->boolean()
|
عمود منطقي (true/false). |
|
$table->timestamps()
|
إضافة created_at و updated_at تلقائياً. |
|
$table->softDeletes()
|
إضافة عمود deleted_at للحذف المنطقي. |
|
$table->foreignId()->constrained()
|
إضافة مفتاح أجنبي مرتبط بجدول آخر. |
|
$table->unique()
|
إضافة قيد فريد. |
|
$table->index()
|
إضافة فهرس للعمود. |
|
Blade
|
محرك القوالب المدمج مع Laravel لتوليد واجهات ديناميكية. |
|
{{ $variable }}
|
عرض متغير مع الحماية من XSS. |
|
{!! $variable !!}
|
عرض متغير بدون الحماية (عرض HTML مباشرة). |
|
@if / @elseif / @else / @endif
|
شروط منطقية داخل القالب. |
|
@unless
|
عكس if (يعمل إذا كانت القيمة false). |
|
@isset / @endisset
|
التحقق إذا كان المتغير معرف. |
|
@empty / @endempty
|
التحقق إذا كان المتغير فارغ. |
|
@for / @endfor
|
حلقة for. |
|
@foreach / @endforeach
|
حلقة foreach. |
|
@forelse / @empty / @endforelse
|
حلقة foreach مع شرط إذا كان فارغ. |
|
@while / @endwhile
|
حلقة while. |
|
@switch / @case / @break / @endswitch
|
شروط متعددة مثل switch. |
|
@include
|
إدراج ملف Blade آخر. |
|
@extends
|
توريث من قالب رئيسي. |
|
@section / @endsection
|
تحديد جزء محتوى يتم حقنه في القالب الرئيسي. |
|
@yield
|
مكان يتم حقن المحتوى فيه من القوالب الفرعية. |
|
@csrf
|
إضافة توكن CSRF تلقائياً داخل الفورم. |
|
@method
|
إضافة Method HTTP (PUT, PATCH, DELETE) داخل الفورم. |
|
@error
|
عرض رسالة خطأ تحقق على حقل معين. |
|
@auth / @endauth
|
عرض محتوى فقط إذا كان المستخدم مسجلاً دخول. |
|
@guest / @endguest
|
عرض محتوى إذا كان المستخدم ضيف (غير مسجل دخول). |
|
@stack / @push
|
تجميع سكربتات أو محتوى من أماكن مختلفة داخل قالب. |
|
all()
|
جلب جميع السجلات من الجدول. |
|
find()
|
جلب سجل حسب الـ id. |
|
findOrFail()
|
جلب سجل بالـ id أو إرجاع 404 إذا لم يوجد. |
|
first()
|
جلب أول سجل يطابق الشرط. |
|
firstOrFail()
|
جلب أول سجل أو إرجاع 404. |
|
pluck()
|
جلب عمود محدد من السجلات. |
|
select()
|
تحديد أعمدة معينة من الجدول. |
|
where()
|
تصفية النتائج بشرط. |
|
orWhere()
|
إضافة شرط OR. |
|
whereBetween()
|
فلترة بين قيمتين. |
|
whereIn()
|
فلترة حسب قائمة قيم. |
|
orderBy()
|
ترتيب النتائج. |
|
latest()
|
ترتيب حسب الأحدث (عادةً created_at). |
|
oldest()
|
ترتيب حسب الأقدم. |
|
count()
|
إرجاع عدد السجلات. |
|
sum()
|
إرجاع مجموع قيمة عمود. |
|
avg()
|
إرجاع المتوسط. |
|
max()
|
إرجاع أكبر قيمة. |
|
min()
|
إرجاع أصغر قيمة. |
|
with()
|
تحميل العلاقات مع الموديل (Eager Loading). |
|
load()
|
تحميل علاقة لموديل تم جلبه مسبقاً. |
|
create()
|
إضافة سجل جديد (باستخدام Mass Assignment). |
|
update()
|
تحديث بيانات السجل. |
|
delete()
|
حذف سجل. |
|
destroy()
|
حذف سجل أو أكثر باستخدام id. |
|
save()
|
حفظ موديل جديد أو تحديث موديل موجود. |
|
paginate()
|
تقسيم النتائج إلى صفحات. |
|
simplePaginate()
|
تقسيم نتائج بطريقة أبسط. |
|
Middleware
|
طبقة وسيطة تعالج الطلبات قبل/بعد وصولها للكونترولر. |
|
$this->middleware()
|
إضافة ميدل وير على كونترولر كامل أو على دوال محددة. |
|
Register Middleware
|
تسجيل Middleware في app/Http/Kernel.php. |
|
Global Middleware
|
ميدل وير يتم تشغيله على كل الطلبات. |
|
Route Middleware
|
ميدل وير يطبق فقط على مسارات معينة. |
|
Group Middleware
|
تجميع عدة ميدل وير في مجموعة. |
|
Terminating Middleware
|
ميدل وير يعمل بعد إرسال الاستجابة. |
|
Parameters Middleware
|
تمرير باراميتر إلى الميدل وير من المسار. |
|
Redirect in Middleware
|
إعادة التوجيه إذا لم يتحقق شرط معين. |
|
Next Middleware
|
استدعاء الميدل وير التالي في السلسلة. |
|
Custom Auth Middleware
|
إنشاء ميدل وير مخصص لفحص صلاحيات معينة. |
|
Form Request
|
كلاس مخصص للتحقق من المدخلات بدلاً من وضع القواعد داخل الكونترولر. |
|
$request->all()
|
جلب جميع البيانات المرسلة بالطلب. |
|
$request->input()
|
جلب قيمة مدخل معين. |
|
$request->only()
|
جلب بعض الحقول فقط. |
|
$request->except()
|
جلب جميع الحقول باستثناء بعض الحقول. |
|
$request->has()
|
التحقق إذا كان الحقل موجود في الطلب. |
|
$request->filled()
|
التحقق إذا كان الحقل موجود وله قيمة. |
|
$request->boolean()
|
جلب قيمة منطقية من الطلب. |
|
$request->validate()
|
التحقق من صحة المدخلات مباشرة داخل الكونترولر. |
|
Validator::make()
|
استخدام الكائن Validator للتحقق من المدخلات يدوياً. |
|
Validation Rules: required
|
الحقل مطلوب. |
|
Validation Rules: email
|
الحقل يجب أن يكون بريد إلكتروني صحيح. |
|
Validation Rules: max/min
|
تحديد الحد الأقصى أو الأدنى. |
|
Validation Rules: unique
|
القيمة يجب أن تكون فريدة في الجدول. |
|
Validation Rules: confirmed
|
التحقق من وجود حقل مطابق (مثل password_confirmation). |
|
Validation Rules: regex
|
استخدام تعبير منتظم للتحقق. |
|
Custom Messages
|
تخصيص رسائل الأخطاء. |
|
Form Request authorize()
|
تحديد الصلاحية لتنفيذ الطلب. |
|
Form Request rules()
|
تحديد قواعد التحقق في كلاس FormRequest. |
|
@error in Blade
|
عرض رسالة خطأ مرتبطة بحقل. |
|
Auth::attempt()
|
محاولة تسجيل الدخول باستخدام بيانات الاعتماد. |
|
Auth::check()
|
التحقق إذا كان المستخدم مسجل دخول. |
|
Auth::user()
|
جلب المستخدم الحالي المسجل دخول. |
|
Auth::id()
|
جلب id للمستخدم الحالي. |
|
Auth::logout()
|
تسجيل خروج المستخدم. |
|
Hash::make()
|
تشفير كلمة المرور قبل التخزين. |
|
Hash::check()
|
التحقق من كلمة المرور. |
|
Middleware: auth
|
منع الوصول إلا للمستخدمين المسجلين دخول. |
|
Middleware: guest
|
السماح فقط للضيوف (غير المسجلين). |
|
Password Reset
|
نظام استعادة كلمة المرور. |
|
Authorization Gates
|
تحديد صلاحيات معينة باستخدام Gate. |
|
Gate::allows()
|
التحقق من صلاحية Gate. |
|
Gate::denies()
|
التحقق من عدم امتلاك الصلاحية. |
|
Policies
|
كلاسات مخصصة لإدارة الصلاحيات على موديل. |
|
Policy method
|
دوال داخل Policy تحدد الصلاحيات. |
|
$this->authorize()
|
التحقق من الصلاحيات داخل الكونترولر. |
|
@can in Blade
|
عرض جزء من القالب إذا كان يملك صلاحية. |
|
@cannot in Blade
|
عرض جزء إذا لم يملك الصلاحية. |
|
@auth in Blade
|
عرض محتوى فقط للمستخدمين المسجلين. |
|
@guest in Blade
|
عرض محتوى للضيوف فقط. |
|
php artisan list
|
عرض جميع أوامر Artisan المتاحة. |
|
php artisan help
|
عرض شرح لأمر معين. |
|
php artisan tinker
|
فتح واجهة تفاعلية للتعامل مع التطبيق. |
|
php artisan make:controller
|
إنشاء Controller جديد. |
|
php artisan make:model
|
إنشاء Model جديد. |
|
php artisan make:migration
|
إنشاء ملف Migration جديد. |
|
php artisan make:seeder
|
إنشاء Seeder لإضافة بيانات تجريبية. |
|
php artisan make:factory
|
إنشاء Factory لتوليد بيانات وهمية. |
|
php artisan make:middleware
|
إنشاء Middleware جديد. |
|
php artisan make:request
|
إنشاء Form Request للتحقق من المدخلات. |
|
php artisan make:policy
|
إنشاء Policy لإدارة الصلاحيات. |
|
php artisan make:job
|
إنشاء Job لمعالجة المهام في الخلفية. |
|
php artisan make:event
|
إنشاء Event جديد. |
|
php artisan make:listener
|
إنشاء Listener للتعامل مع Event. |
|
php artisan route:list
|
عرض جميع المسارات المسجلة. |
|
php artisan migrate
|
تشغيل جميع المايغريشن. |
|
php artisan migrate:rollback
|
التراجع عن آخر دفعة من المايغريشن. |
|
php artisan migrate:fresh
|
حذف جميع الجداول وإعادة تشغيل المايغريشن. |
|
php artisan db:seed
|
تشغيل الـ Seeders لإضافة بيانات. |
|
php artisan storage:link
|
إنشاء رابط رمزي لمجلد التخزين. |
|
php artisan cache:clear
|
مسح الكاش الخاص بالتطبيق. |
|
php artisan config:clear
|
مسح كاش الإعدادات. |
|
php artisan route:clear
|
مسح كاش المسارات. |
|
php artisan view:clear
|
مسح كاش القوالب. |
|
php artisan serve
|
تشغيل خادم محلي للتطبيق. |
|
Seeder
|
ملف مسؤول عن إدخال بيانات تجريبية لقاعدة البيانات. |
|
run() in Seeder
|
دالة داخل Seeder تحدد البيانات المراد إدخالها. |
|
php artisan db:seed
|
تشغيل جميع الـ Seeders المسجلة في DatabaseSeeder. |
|
php artisan db:seed --class
|
تشغيل Seeder معين. |
|
php artisan migrate:fresh --seed
|
إعادة إنشاء الجداول وتشغيل Seeder مباشرة. |
|
Factory
|
كلاس لتوليد بيانات وهمية باستخدام مكتبة Faker. |
|
definition() in Factory
|
تعريف الحقول والبيانات الوهمية داخل Factory. |
|
Using Factory with create()
|
إنشاء سجل وهمي وحفظه في قاعدة البيانات. |
|
Using Factory with make()
|
إنشاء سجل وهمي دون حفظه. |
|
Factory count()
|
إنشاء عدد معين من السجلات. |
|
Factory states()
|
إنشاء حالات مختلفة من البيانات. |
|
Has Factory Trait
|
يُضاف للموديل لاستخدام الـ Factory. |
|
Calling Factory from Seeder
|
تشغيل Factory داخل Seeder. |
|
Faker
|
مكتبة لتوليد بيانات وهمية مثل الأسماء والعناوين. |
|
faker->name()
|
توليد اسم وهمي. |
|
faker->email()
|
توليد بريد إلكتروني وهمي. |
|
faker->phoneNumber()
|
توليد رقم هاتف وهمي. |
|
faker->address()
|
توليد عنوان وهمي. |
|
faker->text()
|
توليد نص قصير. |
|
php artisan make:event
|
إنشاء Event جديد. |
|
php artisan make:listener
|
إنشاء Listener لمعالجة حدث. |
|
Event class
|
الكلاس الذي يمثل الحدث ويحتوي البيانات المرتبطة. |
|
Listener class
|
كلاس يتعامل مع الحدث عند وقوعه. |
|
EventServiceProvider
|
مكان تسجيل الأحداث والمستمعين. |
|
event() helper
|
تشغيل حدث معين. |
|
Event::dispatch()
|
تشغيل حدث باستخدام الـ dispatch. |
|
Queued Listeners
|
تشغيل المستمع في الخلفية باستخدام Queue. |
|
ShouldQueue
|
تنفيذ Listener عبر نظام الطوابير. |
|
php artisan event:generate
|
توليد جميع الأحداث والمستمعين غير المنشأة. |
|
Broadcasting Events
|
بث الأحداث عبر WebSockets. |
|
ShouldBroadcast
|
إرسال الحدث للـ frontend عبر قنوات البث. |
|
Broadcast::channel()
|
تعريف القنوات الخاصة بالبث. |
|
listen() in EventServiceProvider
|
إضافة أحداث يدوياً داخل EventServiceProvider. |
|
php artisan make:job
|
إنشاء Job جديد. |
|
Job class
|
كلاس يحتوي على المهمة المراد تنفيذها. |
|
dispatch()
|
إرسال Job إلى الطابور. |
|
dispatchSync()
|
تشغيل Job بشكل متزامن (مباشر). |
|
onQueue()
|
تحديد الطابور الذي يذهب له الـ Job. |
|
delay()
|
تأخير تنفيذ Job لفترة زمنية. |
|
ShouldQueue
|
تنفيذ Job عبر الطوابير بدلاً من التنفيذ المباشر. |
|
php artisan queue:table
|
إنشاء جدول لإدارة الطوابير في قاعدة البيانات. |
|
php artisan queue:work
|
تشغيل العامل لمعالجة المهام. |
|
php artisan queue:listen
|
تشغيل العامل مع الاستماع المستمر للطوابير. |
|
php artisan queue:failed-table
|
إنشاء جدول للأعمال الفاشلة. |
|
failed() method
|
التعامل مع فشل تنفيذ الـ Job. |
|
retry
|
إعادة محاولة تنفيذ Job فشل سابقاً. |
|
forget
|
إزالة Job فاشل من السجل. |
|
flush
|
حذف جميع المهام الفاشلة. |
|
Bus::batch()
|
تشغيل عدة Jobs كدفعة واحدة. |
|
Horizon
|
أداة لإدارة ومراقبة الطوابير بشكل مرئي. |
|
Supervisor
|
برنامج خارجي لإبقاء queue:work يعمل في الخلفية. |
|
php artisan make:notification
|
إنشاء إشعار جديد. |
|
Notification class
|
كلاس الإشعار يحتوي القنوات ومحتوى الرسالة. |
|
via() method
|
تحديد القنوات التي يرسل عبرها الإشعار. |
|
toMail()
|
إرسال الإشعار عبر البريد الإلكتروني. |
|
toDatabase()
|
تخزين الإشعار في قاعدة البيانات. |
|
toBroadcast()
|
بث الإشعار عبر WebSockets. |
|
toSlack()
|
إرسال الإشعار إلى Slack. |
|
toVonage()
|
إرسال الإشعار عبر SMS. |
|
notify()
|
إرسال إشعار لمستخدم. |
|
Notification::send()
|
إرسال إشعار لمجموعة من المستخدمين. |
|
Notifiable trait
|
يضاف إلى موديل User ليتمكن من استقبال الإشعارات. |
|
notifications table
|
جدول لتخزين الإشعارات في قاعدة البيانات. |
|
unreadNotifications
|
جلب الإشعارات غير المقروءة. |
|
readNotifications
|
جلب الإشعارات المقروءة. |
|
markAsRead()
|
تحديد الإشعار كمقروء. |
|
delete notification
|
حذف إشعار من قاعدة البيانات. |
|
MailMessage
|
كائن لإنشاء رسالة بريد بتنسيق سهل. |
|
SlackMessage
|
كائن لإرسال رسالة إلى Slack. |
|
BroadcastMessage
|
كائن لإرسال إشعار عبر البث المباشر. |
|
php artisan make:mail
|
إنشاء كلاس Mail جديد. |
|
Mailable class
|
كلاس البريد يحتوي الرسالة والتفاصيل. |
|
build() method
|
تحديد القالب أو المحتوى المرسل. |
|
Mail::to()
|
تحديد المستلم للبريد. |
|
cc() / bcc()
|
إضافة نسخة كربونية أو مخفية. |
|
Mail::queue()
|
إرسال البريد عبر الطابور. |
|
Mail::later()
|
إرسال البريد بعد فترة زمنية. |
|
attachments
|
إرفاق ملفات مع البريد. |
|
with()
|
تمرير بيانات إلى القالب. |
|
Markdown mail
|
إرسال بريد باستخدام قوالب Markdown. |
|
markdown()
|
عرض البريد باستخدام Markdown. |
|
config/mail.php
|
ملف إعدادات البريد (SMTP, Mailgun...). |
|
Mail Facade
|
الواجهة الأساسية لإرسال البريد. |
|
php artisan make:notification --mail
|
يمكن إرسال البريد أيضاً عبر نظام Notifications. |
|
Storage facade
|
الواجهة الرئيسية للتعامل مع الملفات. |
|
php artisan storage:link
|
إنشاء رابط رمزي لمجلد التخزين للوصول من المتصفح. |
|
Storage::put()
|
رفع أو إنشاء ملف. |
|
Storage::get()
|
قراءة محتوى ملف. |
|
Storage::exists()
|
التحقق إذا كان الملف موجود. |
|
Storage::delete()
|
حذف ملف. |
|
Storage::copy()
|
نسخ ملف. |
|
Storage::move()
|
نقل ملف. |
|
Storage::download()
|
تحميل ملف كاستجابة للمتصفح. |
|
Storage::url()
|
جلب رابط عام للملف. |
|
Storage::disk()
|
التعامل مع نظام تخزين محدد (local, s3, public). |
|
config/filesystems.php
|
ملف إعدادات أنظمة التخزين (local, public, s3...). |
|
Request::file()
|
جلب ملف مرفوع من الفورم. |
|
$file->store()
|
رفع الملف لمجلد معين. |
|
$file->storeAs()
|
رفع الملف باسم مخصص. |
|
$file->getClientOriginalName()
|
جلب الاسم الأصلي للملف المرفوع. |
|
$file->getClientMimeType()
|
جلب نوع الملف. |
|
File facade
|
التعامل مع الملفات مباشرة عبر File بدلاً من Storage. |
|
File::files()
|
جلب جميع الملفات من مجلد. |
|
File::allFiles()
|
جلب الملفات بشكل متداخل (بما في ذلك المجلدات الفرعية). |
|
Cache facade
|
الواجهة الأساسية للتعامل مع الكاش. |
|
Cache::put()
|
تخزين قيمة في الكاش مع وقت انتهاء. |
|
Cache::get()
|
جلب قيمة من الكاش. |
|
Cache::get() with default
|
جلب قيمة أو قيمة افتراضية إذا لم توجد. |
|
Cache::has()
|
التحقق من وجود قيمة في الكاش. |
|