Ceci est mon tout premier package publié. Je voulais apprendre à faire un ensemble simple pour Laravel. J'ai beaucoup lu sur le conteneur IOC, comment Laravel fait l'injection de dépendance, etc.
Courir
$ composer require linking/flashr
Lorsque le package est installé, si vous exécutez Laravel 5.x, vous pouvez enregistrer le package dans AppserviceProvider , comme celui-ci
<?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);
}
} Si vous exécutez une ancienne version de Laravel, vous pouvez modifier le fichier app.php et l'ajouter dans l'option providers
' providers ' => [
// ...
Linking Flashr FlashrServiceProvider::class,
];Vous devez également ajouter la façade, dans le fichier app.php , sous la clé «alias», ajouter
' aliases ' => [
// ..
' Flashr ' => Linking Flashr Facades Flashr::class,
// ..
];Dans vos contrôleurs, vous pouvez faire
public function edit ( Post $ post ) {
Flashr:: success ( " The post has been edited " );
return view ( ' post.edit ' , compact ( ' post ' ));
}Flashr Expose Différentes Fonctions pour imprimer différents types de flashs. Voici une liste des fonctions Flashr:
Flashr::success($message)Flashr::info($message)Flashr::warning($message)Flashr::danger($message)Ensuite, dans vos opinions, vous pouvez inclure les vues du vendeur, en faisant
@include ( ' flashr::flashes ' )Remarque: il utilise, par défaut, la notation Bootstrap Twitter. Si vous voulez remplacer ce comportement, lisez simplement la prochaine
Si vous souhaitez personnaliser la vue, faites simplement
php artisan vendor:publish --tag=flashr
Ensuite, allez dans le répertoire de votre vue . Vous devriez trouver un répertoire de fournisseur. À l'intérieur de ce répertoire, un répertoire Flashr sera là. Vous pouvez modifier ce fichier à ce que vous voulez. Par défaut, le fichier ressemble à ceci:
@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 Comme vous pouvez le voir, le plugin ajoute deux touches dans la session: _flashr.type et _flashr.message