Lumen Micro Framework => php artisan key:generate

Tho*_*ini 58 php lumen

我正在尝试PHP微框架流明(来自Laravel).

我的第一步是查看.env.example文件并复制它以获取我的.env文件.有一个变量APP_KEY就像在Laravel中一样.现在我尝试了简单的命令php artisan key:generate来获取我的新密钥但是我遇到了以下错误消息

php -r "echo md5(uniqid()).\"\n\";"

有人知道我如何为流明生成密钥吗?

用解决方案更新

所以我找到了我最喜欢的解决方案.在命令行(Linux)上我运行的7142720170cef01171fd4af26ef17c93东西给了我这样的东西.bashrc.

如果您要更频繁地使用流明,您可能需要/home/USERNAME在您的主目录中创建一个别名nano ~/.bashrc.为此,您可以使用vi ~/.bashrc或打开文件,alias phpkey='php -r "echo md5(uniqid()).\"\n\";"'并在文件末尾复制以下别名phpkey.现在你可以使用命令.env.example,它会给你一个32个字符长的随机字符串:)

luk*_*ter 95

Laravel命令相当简单.它只生成一个随机的32个字符长的字符串.你也可以在流明做同样的事.只需暂时添加这样的路线:

$router->get('/key', function() {
    return \Illuminate\Support\Str::random(32);
});
Run Code Online (Sandbox Code Playgroud)

然后转到/key浏览器并将密钥复制粘贴到您的.env文件中.
然后删除路线.

显然你也可以在线使用一些随机字符串生成器.像这个

  • 空无一人.流明需要很轻,所以由开发人员来做生成密钥...... (3认同)
  • 在最近的版本中,$ app更改为$ router.休息是正确的. (2认同)

kri*_*lfa 35

首先,你必须注册你的密钥生成器的命令,把这个流明密钥发生器命令app/Console/Commands/KeyGenerateCommand.php.要使此命令可用artisan,请更改app\Console\Kernel.php:

/**
 * The Artisan commands provided by your application.
 *
 * @var array
 */
protected $commands = [
    'App\Console\Commands\KeyGenerateCommand',
];
Run Code Online (Sandbox Code Playgroud)

之后,配置应用程序以使该Illuminate\Config\Repository实例具有app.key值.为此,请更改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');
Run Code Online (Sandbox Code Playgroud)

之后,将您的.env.example文件复制到.env:

cp .env.example .env
Run Code Online (Sandbox Code Playgroud)

如果您已使用.env文件,请忽略此步骤.

享受你的key:generate命令:

php artisan key:generate
Run Code Online (Sandbox Code Playgroud)

编辑

你可以使用流明生成器.它涵盖了Laravel中缺少的大量命令.

  • 我会回答这个问题,它是laravel实现,它教了您一些有关控制台命令的结构以及它们在应用程序上下文中的位置的信息。潜入它真的很酷:D (2认同)
  • 好的解决方案 感谢分享.一件小事:我会在`$ commands`;中使用KeyGenerateCommand :: class而不是硬编码的类名. (2认同)

Jer*_*ten 27

一个简单的解决方案就是从终端运行PHP代码(不使用tinker,因为Lumen不提供):

php -r "require 'vendor/autoload.php'; echo str_random(32).PHP_EOL;"
Run Code Online (Sandbox Code Playgroud)

它使用Laravel的Str::random()功能,利用安全random_bytes()功能.

  • Oneliner的base64编码输出为Lumen> = 5.4:`php -r"需要'vendor/autoload.php'; echo base64_encode(str_random(32)).PHP_EOL;"` (5认同)

Fáb*_*ima 13

对我来说,生成流明键的最简单方法是在控制台上输入以下命令之一:

date | md5
date | md5sum
Run Code Online (Sandbox Code Playgroud)

要么

openssl rand -base64 24

取决于您的环境.在我的情况下,我date | md5在mac上使用


Cos*_*tar 9

APP_KEY生成是开发过程的一个步骤(我不认为创建临时路由是一种实用的方法).该函数str_random可以帮助我们,但是这个函数是Laravel/Lunmen框架的一部分.我建议跑修补

php artisan tinker

然后运行该功能

>>> str_random(32)

结果是你正在寻找的关键.

=> "y3DLxnEczGWGN4CKUdk1S5GbMumU2dfH"

  • 是的,最后我发现自己使用`date | 终端上的md5sum`并将结果粘贴到.env中 (3认同)

小智 6

只需使用PHP CLI。从本地或远程命令行运行此命令,以生成一个随机的32个字符的流明APP_KEY:

php -r "echo bin2hex(random_bytes(16));"
Run Code Online (Sandbox Code Playgroud)

输出:bae48aba23b3e4395b7f1b484dd25192

在Mac和Windows上可与PHP 7.x一起使用。


小智 5

要生成密钥并使用laravel命令,您需要安装一个软件包。详细信息如下:

  1. 您必须安装软件包 composer require flipbox/lumen-generator
  2. 您必须添加$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);bootstrap/app.php文件中。

链接:https//github.com/flipboxstudio/lumen-generator