Lumen Micro Framework = > php artisan key: generate

je suis en train d'essayer le PHP micro Framework Lumen (de Laravel).

un de mes premiers pas a été de regarder dans le .env.example le fichier et faites-en une copie pour avoir mon .env fichier. Il y a une variable APP_KEY comme dans Laravel. Maintenant, j'ai essayé la commande simple php artisan key:generate pour obtenir ma nouvelle clé mais j'ai couru dans le message d'erreur suivant

[InvalidArgumentException] There are no commands defined in the "key" namespace.

est-ce que quelqu'un sait comment je peux générer des clés pour Lumen?

mise à Jour avec la solution

j'ai Donc trouvé ma solution préférée pour ce problème. Sur la ligne de commande (Linux) j'exécute php -r "echo md5(uniqid())."n";" ce qui me donne quelque chose comme ceci 7142720170cef01171fd4af26ef17c93.

Si vous allez utiliser Lumen plus souvent, vous pouvez créer un alias dans votre .bashrc, qui se trouve dans votre répertoire personnel /home/USERNAME. Pour ce faire, vous pouvez ouvrir le fichier avec nano ~/.bashrc ou vi ~/.bashrc et copiez l'alias suivant à la fin du fichier, alias phpkey='php -r "echo md5(uniqid())."n";"'. Maintenant, vous pouvez utiliser la commande phpkey qui vous donnera une longue chaîne de 32 caractères:)

38
demandé sur halfer 2015-05-20 11:23:38

9 réponses

la commande Laravel est assez simple. Il génère juste une chaîne de 32 caractères au hasard. Tu peux faire la même chose en Lumen. Juste ajouter temporairement un itinéraire comme ceci:

$app->get('/key', function() {
    return str_random(32);
});

alors allez à /key dans votre navigateur et copier-coller la clé dans votre .env fichier.

Ensuite, retirez la route.

évidemment, vous pouvez aussi utiliser un générateur de chaîne aléatoire en ligne. Comme ceci

69
répondu lukasgeiter 2015-05-20 08:51:14

tout d'Abord, vous devez enregistrer votre commande du générateur de clés, cette Lumen Générateur De Clé Commandesapp/Console/Commands/KeyGenerateCommand.php. Pour rendre cette commande disponible en artisan, modifiez app\Console\Kernel.php:

/**
 * The Artisan commands provided by your application.
 *
 * @var array
 */
protected $commands = [
    'App\Console\Commands\KeyGenerateCommand',
];

après cela, configurez votre application de sorte que Illuminate\Config\Repository l'instance a app.key valeur. Pour ce faire, changez bootstrap/app.php:

<?php

require_once __DIR__.'/../vendor/autoload.php';

Dotenv::load(__DIR__.'/../');

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->configure('app');

après cela, copiez votre .env.example le fichier .env:

cp .env.example .env

ignorez cette étape si vous utilisez déjà .env fichier.

Profitez-vous key:generate commande via:

php artisan key:generate

Modifier

Vous pouvez utiliser Générateur De Lumière. Il couvre tellement de commandes que vous manquez à Laravel.

25
répondu krisanalfa 2016-12-07 05:09:53

une solution facile est d'exécuter du code PHP depuis le terminal (sans utiliser tinker, parce que ce n'est pas disponible avec Lumen):

php -r "require 'vendor/autoload.php'; echo str_random(32).PHP_EOL;"

Il utilise Laravel Str::random() fonction qui utilise la secure random_bytes() fonction.

18
répondu Jeroen Noten 2016-10-19 10:42:43

pour moi, la façon la plus simple de générer une clé Lumen est de taper sur la console une de ces commandes:

date | md5
date | md5sum

ou

openssl rand -base64 24

selon votre environnement. Dans mon cas, je aways utiliser date | md5 sur mac

6
répondu Fábio N Lima 2017-06-20 20:54:11

la génération APP_KEY est une étape du processus de développement (Je ne pense pas que créer temporairement des routes soit un moyen pratique de le faire). La fonction str_random peut nous aider, mais cette fonction fait partie du cadre Laravel/Lunmen. Je recommande d'exécuter bricoler

php artisan tinker

et ensuite lancer la fonction

>>> str_random(32)

Le résultat est la clé que vous recherchez.

=> "y3DLxnEczGWGN4CKUdk1S5GbMumU2dfH"

5
répondu Cosmitar 2016-04-23 22:52:22

cette réponse a été inspirée par la mise à jour de @thomas-venturini à la question. Voici un script bash qui s'occupe de la création .env et mise à jour avec un APP_KEY en utilisant la commande PHP mentionnée ci-dessus et L'UNIX sed commande:

#!/usr/bin/env bash

function generate_app_key {
    php -r "echo md5(uniqid()).\"\n\";"
}

APP_KEY=$(generate_app_key)

sed -e s/APP_KEY=.*$/APP_KEY=${APP_KEY}/g .env.example > .env

j'Espère que quelqu'un trouve cela utile.

0
répondu DuffJ 2016-10-04 16:38:46

j'ai utilisé ces commandes:

php -r \"copy('.env.example', '.env');\"

php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).\"\n\";"

La commande génère une clé similaire à ceci:

$ 2y $ 10$jb3kw/vUANyzZ4ncMa4rwuR09qldQ2OjX8PGrVb5dilsnuapcgjfe

0
répondu Juan Manuel Mc 2018-03-18 21:53:43

Tout ce que je fais sur mac est d'exécuter cette commande dans le terminal:

date | md5 | pbcopy

cela copie la valeur dans le presse-papiers et ainsi vous pouvez facilement coller la clé dans le .env fichier.

0
répondu ubuntugod 2018-04-28 07:07:37

pour générer la clé et utiliser la commande laravel, vous devez installer un paquet. Les détails sont comme ci-dessous:

  1. vous devez installer package composer require flipbox/lumen-generator
  2. Vous devez ajouter $app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class); en bootstrap/app.php fichier.

Lien: https://github.com/flipboxstudio/lumen-generator

0
répondu Umang Soni 2018-09-06 10:10:49