Ini adalah paket pertama saya yang diterbitkan. Saya ingin belajar cara membuat paket sederhana untuk Laravel. Saya telah membaca banyak tentang wadah IOC, bagaimana Laravel melakukan injeksi ketergantungan dll ... Paket ini terinspirasi oleh paket Laracasts/Flash yang hebat!
Berlari
$ composer require linking/flashr
Saat paket diinstal, jika Anda menjalankan Laravel 5.x, Anda dapat mendaftarkan paket di AppServiceProvider , seperti ini
<?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);
}
} Jika Anda menjalankan Laravel versi yang lebih lama, Anda dapat mengedit file app.php , dan menambahkannya di opsi providers
' providers ' => [
// ...
Linking Flashr FlashrServiceProvider::class,
];Anda juga harus menambahkan fasad, di file app.php , di bawah tombol 'alias', tambahkan
' aliases ' => [
// ..
' Flashr ' => Linking Flashr Facades Flashr::class,
// ..
];Di dalam pengontrol Anda, Anda dapat melakukannya
public function edit ( Post $ post ) {
Flashr:: success ( " The post has been edited " );
return view ( ' post.edit ' , compact ( ' post ' ));
}Flashr mengekspos fungsi perbedaan untuk mencetak berbagai jenis flash. Berikut adalah daftar fungsi flashr:
Flashr::success($message)Flashr::info($message)Flashr::warning($message)Flashr::danger($message)Kemudian, dalam pandangan Anda, Anda dapat menyertakan pandangan vendor, dengan melakukan
@include ( ' flashr::flashes ' )Catatan: Gunakan, secara default, notasi Bootstrap Twitter. Jika Anda ingin mengganti perilaku ini, cukup baca apa selanjutnya
Jika Anda ingin menyesuaikan tampilan, cukup lakukan
php artisan vendor:publish --tag=flashr
Kemudian, pergi ke direktori pandangan Anda. Anda harus menemukan direktori vendor. Di dalam direktori ini, direktori Flashr akan ada di sini. Anda dapat mengedit file ini ke apa pun yang Anda inginkan. Secara default, file terlihat seperti ini:
@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 Seperti yang Anda lihat, plugin menambahkan dua tombol di sesi: _flashr.type dan _flashr.message