web-dev-qa-db-fra.com

Comment utiliser Sentry avec Laravel 5?

J'ai essayé d'installer Sentry dans Laravel 5 mais cela ne fonctionne pas. J'aimerais savoir si quelqu'un l'a fait et comment le faire.

Mise à jour: j'ai utilisé les instructions pour Laravel 4.

11
Ogie Sado

J'ai ce travail.

  1. Il n’existe actuellement aucun support officiel pour Sentry en L5. Ils déclarent ce droit sur leur site web. Ils y travaillent cependant.

  2. Ajoutez les éléments suivants à votre fichier composer.json dans la section require.

    "cartalyst/sentry": "dev-feature/laravel-5",
    "illuminate/html": "~5.0"
    

Ajoutez ce qui suit à la section autoload.

"app/Http/Controllers",

Cela devrait ressembler à quelque chose comme:

"require": {
    "laravel/framework": "5.0.*",
    "cartalyst/sentry": "dev-feature/laravel-5",
    "illuminate/html": "~5.0"
},
"require-dev": {
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1"
},
"autoload": {
    "classmap": [
        "database",
        "app/Classes",
        "app/Http/Controllers",
        "app/Models"
  1. (En supposant que Linux ne contient aucun alias) Exécutez php composer.phar dump-autoload then php composer.phar update

  2. Suivez les instructions de la page suivante pour convertir vos fichiers de la version 4.2 à la version 5.0: http://laravel.com/docs/master/upgrade#upgrade-5.0

  3. Si vous utilisez HTML Facade for FORMS, remplacez {{{}}} ou {{}} pour le FORM en {!! !!} car L5 échappe à toutes les sorties de {{{}}} et {{}}. Si vous voulez une sortie brute, vous devez utiliser {!! !!}.

  4. Lorsque vous déplacez votre contrôle de redirection vers la méthode de démarrage conformément aux instructions du point 4, ajoutez ce qui suit au début du fichier RouteServiceProvider.php 

    utilise Cartalyst\Sentry\Facades\Laravel\Sentry;

La méthode de démarrage devrait ressembler à quelque chose comme:

public function boot(Router $router)
    {
        parent::boot($router);
        // Check if someone is already logged in
        Route::filter('members_auth',function(){
        //If already logged in go to dashboard or else login
            if(!Sentry::check()){
                return Redirect::to('/login');
            }
        });

        //
    }

UPDATE 02-26-15

  1. N'exécutez pas la commande php artisan optimize car cela briserait la sentinelle. Je ne pouvais pas comprendre ce qui n'allait pas après avoir exécuté cela, mais je pensais que cela devait probablement se faire avec le fichier compiled.php. J'ai donc lancé php artisan optimiser --force , ce qui a résolu le problème.

J'espère que ça aide.

Wayne Leiser, I.T. Réalisateur

B2B I.T. Solutions

** Mise à jour 29-03-2018 ** Sentry now prend en charge Laravel 5.x

17
scrfix

Je ne l'ai pas personnellement installé, mais je sais que c'est compatible. https://medium.com/@Cartalyst/laravel-5-support-4c11e01c3337

Les instructions d'installation ne contiennent pas d'informations spécifiques sur Laravel5, mais elles doivent être identiques à celles de L4 en attendant que vous sélectionniez la branche appropriée. En supposant que vous utilisiez composer, vous pouvez le faire en demandant "cartalyst/sentry": "dev-feature/laravel-5" dans votre composer.json.

Suivez le reste de l'installation de L4 (ajout au tableau des fournisseurs et des alias) et les informations, sauf que souvenez-vous que app.php n'est plus dans app/config/app.php mais dans config/app.php.

Si les choses ne fonctionnent toujours pas pour vous, veillez à mettre à jour votre question avec au moins quelques informations ...

2
Jeremy Schaffer

bootstarpCms utilise à la fois laravel5 et sentry, vous pouvez donc lire le code source pour apprendre .here https://github.com/BootstrapCMS/CMS

1
jamlee

Essayez Sentinel: https://github.com/rydurham/Sentinel

ajouter au compositeur

composer require rydurham/sentinel

Dans config/app.php

'providers' => array(
    ...
    'Sentinel\SentinelServiceProvider', 
    ...
)

Dans app/Http/Kernel.php

protected $routeMiddleware = [
    // ..
    'sentry.auth' => 'Sentinel\Middleware\SentryAuth',
    'sentry.admin' => 'Sentinel\Middleware\SentryAdminAccess',
];

puis

publier la configuration:

php artisan sentinel:publish

exécuter des migrations:

php artisan migrate

faire du semoir:

php artisan db:seed --class=SentinelDatabaseSeeder

ajouter une route de départ dans app/routes.php

 Route::get('/', array('as' => 'home', function()
{
    return View::make('home');
}));

tout est fait, allez à myapp.dev/login 

0
star18bit