adamtyn / at-lumen
一个更适合[开箱即用]的 Lumen 封装
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^7.2.5
- ext-json: *
- adamtyn/lumen-artisan-config-cache: ^1.0.1
- adamtyn/lumen-artisan-config-clear: ^1.0.1
- adamtyn/lumen-artisan-down: ^1.0.0
- adamtyn/lumen-artisan-key-generate: ^1.0.1
- adamtyn/lumen-artisan-storage-link: ^1.0.0
- adamtyn/lumen-artisan-up: ^1.0.0
- laravel/lumen-framework: ^7.2.2
Requires (Dev)
- adamtyn/lumen-artisan-make-job: ^1.0.1
- adamtyn/lumen-artisan-make-model: ^1.0.1
- adamtyn/lumen-artisan-serve: ^1.0.1
- fzaninotto/faker: ^1.9.1
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.5
README
@author AdamTyn
@description 一个更适合开箱即用的 Lumen 封装
@updated_at 2021-05-27
Usage
@开发环境
- 指定目录下,使用
composer create-project --prefer-dist adamtyn/at-lumen demo
初始化一个demo
项目 - 上述指令会 完整安装 最新版本的
adamtyn/at-lumen
(完整安装 包含了require-dev
所定义的组件) - 完整安装 的
adamtyn/at-lumen
默认已经在 Lumen 的基础上集成了以下组件
- 刚创建的 Lumen 应用,应该执行
php artisan key:generate
为应用创建一个AppKey
用以框架加密函数的密钥
@生产环境
- 上线部署代码时,建议使用
composer install --no-dev
指令安装依赖,可以避免生产环境加载 过多非必要 组件 - 耐心等待
composer
组件安装完成后,必须确认应用根目录是否存在.env
文件,若不存在可以执行copy .env.example .env
生成包含默认内容的文件 - 生产环境首次部署一个 Lumen 应用时,除了需要执行 @开发环境-4 的步骤,还一定要注意执行
php artisan storage:link
为应用创建一个public/storage => storage/app/public
的 符号连接,目的是方便分配目录权限 - 当做完所有准备工作,最后就要调整
.env
文件中相关的 环境变量
APP_ENV=production APP_KEY=H+HOlDl8yODdwUQEPX3xMbmj5MvUHFDeeuz9Yi95ZiA= APP_DEBUG=false APP_TIMEZONE=PRC APP_LOCALE=zh_cn # has more...
- 特别的,如果开发时用到了上述表格中的部分
require-dev
依赖,那么在生产环境的代码中一定要 判断代码环境
<?php class Kernel extends ConsoleKernel { protected function getCommands() { if (config('app.env') !== 'production') { $this->commands[] = \AdamTyn\Lumen\Artisan\KeyGenerateCommand::class; } $this->commands[] = \AdamTyn\Lumen\Artisan\StorageLinkCommand::class; $this->commands[] = \AdamTyn\Lumen\Artisan\ConfigCacheCommand::class; $this->commands[] = \AdamTyn\Lumen\Artisan\ConfigClearCommand::class; $this->commands[] = \AdamTyn\Lumen\Artisan\UpCommand::class; $this->commands[] = \AdamTyn\Lumen\Artisan\DownCommand::class; return parent::getCommands(); } }
- 实际上,核心文件都应该 针对不同代码环境有不同的逻辑
Log
[2021-05-27] 发布v1.4.0版本:添加【模型抽象基类】BaseModel文件;优化配置文件,精简不常用的配置项
[2020-10-28] 发布v1.3.0版本:添加【检查维护模式】CheckForMaintenanceMode中间件,支持 Laravel 【维护模式】相关的artisan指令
[2020-10-09] 发布v1.2.1版本:新增框架入口核心类 bootstrap/core.php
文件,判断是否读取了配置缓存文件
<?php use Laravel\Lumen\Application as Lumen; final class Core extends Lumen { public function configure($name) { if (isset($this->loadedConfigurations[$name])) { return; } $this->loadedConfigurations[$name] = $this->cachedConfig; if (!$this->cachedConfig) { $this->loadedConfigurations[$name] = true; $path = $this->getConfigurationPath($name); if ($path) { $this->make('config')->set($name, require $path); } } } }
[2020-09-29] 发布v1.2.0版本:添加框架入口核心类 bootstrap/core.php
文件,支持加载配置缓存文件 bootstrap/cache/config.php
了!
<?php use Laravel\Lumen\Application as Lumen; final class Core extends Lumen { public function __construct($basePath = null) { // 加载配置缓存文件 $this->loadCachedConfig(); parent::__construct($basePath); } }
[2020-09-28] 发布v1.1.0版本:新增 php artisan config:cache
& php artisan config:clear
两个artisan指令
[2020-09-27] 发布v1.0.1版本:修复artisan指令在生产环境的隐患
[2020-09-24] 发布v1.0.0版本