هذه هي أول حزمة لي على الإطلاق. أردت أن أتعلم كيفية صنع حزمة بسيطة لـ Laravel. لقد قرأت الكثير عن حاوية IOC ، كيف يقوم Laravel بحقن التبعية وما إلى ذلك ... كانت هذه الحزمة مستوحاة من حزمة Laracasts/Flash العظيمة!
يجري
$ composer require linking/flashr
عند تثبيت الحزمة ، إذا كنت تقوم بتشغيل Laravel 5.x ، يمكنك تسجيل الحزمة في AppServiceProvider ، مثل هذا
<?php
use Linking Flashr FlashrServiceProvider ;
use Illuminate Support ServiceProvider ;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot ()
{
// ...
$ this -> app -> register (FlashrServiceProvider::class);
}
} إذا كنت تقوم بتشغيل إصدار أقدم من Laravel ، فيمكنك تحرير ملف app.php ، وإضافة هذا في خيار providers
' providers ' => [
// ...
Linking Flashr FlashrServiceProvider::class,
];يجب عليك أيضًا إضافة الواجهة ، في ملف app.php ، ضمن مفتاح "الاسم المستعار" ، إضافة
' aliases ' => [
// ..
' Flashr ' => Linking Flashr Facades Flashr::class,
// ..
];ضمن وحدات التحكم الخاصة بك ، يمكنك القيام بذلك
public function edit ( Post $ post ) {
Flashr:: success ( " The post has been edited " );
return view ( ' post.edit ' , compact ( ' post ' ));
}يعرض FlashR وظائف الاختلافات لطباعة نوع مختلف من الهبات. فيما يلي قائمة بوظائف flashr:
Flashr::success($message)Flashr::info($message)Flashr::warning($message)Flashr::danger($message)بعد ذلك ، في وجهات نظرك ، يمكنك تضمين طرق عرض البائعين ، من خلال القيام بذلك
@include ( ' flashr::flashes ' )ملاحظة: يستخدم ، افتراضيًا ، تدوين Twitter Bootstrap. إذا كنت ترغب في استبدال هذا السلوك ، فما عليك سوى قراءة ما هو التالي
إذا كنت ترغب في تخصيص العرض ، فما عليك سوى القيام بذلك
php artisan vendor:publish --tag=flashr
ثم ، اذهب مع دليل وجهات نظرك . يجب أن تجد دليل البائع. داخل هذا الدليل ، سيكون دليل FlashR هنا. يمكنك تحرير هذا الملف إلى ما تريد. بشكل افتراضي ، يبدو الملف هكذا:
@php
$flashr_type = Session :: has ( ' _flashr.type ' ) ? Session :: get ( ' _flashr.type ' ) : null ;
$flashr_message = Session :: has ( ' _flashr.message ' ) ? Session :: get ( ' _flashr.message ' ) : null ;
@endphp
@if ( $flashr_type && $flashr_message )
< div style = " position : relative " class = " alert alert- {{ $flashr_type } } " role = " alert " >
{{ $flashr_message } }
< span id = " close-flash " onclick = " var el = this.parentElement; el.remove() "
style = " position : absolute ; top : 10 px ; right : 10 px ; font-size : 24 px ; line-height : 10 px ; cursor : pointer " > & times ; </ span >
</ div >
@endif كما ترون ، يضيف المكون الإضافي مفتاحين في الجلسة: _flashr.type و _flashr.message