定制 adamtyn/at-lumen 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

adamtyn/at-lumen

Composer 安装命令:

composer create-project adamtyn/at-lumen

包简介

一个更适合[开箱即用]的 Lumen 封装

README 文档

README

@author AdamTyn
@description 一个更适合开箱即用的 Lumen 封装
@updated_at 2021-05-27

Usage

@开发环境

  1. 指定目录下,使用 composer create-project --prefer-dist adamtyn/at-lumen demo 初始化一个 demo 项目
  2. 上述指令会 完整安装 最新版本的 adamtyn/at-lumen完整安装 包含了 require-dev 所定义的组件)
  3. 完整安装adamtyn/at-lumen 默认已经在 Lumen 的基础上集成了以下组件
Library Description Required Version
adamtyn/lumen-artisan-storage-link 移植Laravel的 php artisan storage:link [生成符号连接]指令到Lumen v1.0.1
adamtyn/lumen-artisan-key-generate 移植Laravel的 php artisan key:generate [重置AppKey]指令到Lumen v1.0.0
adamtyn/lumen-artisan-config-cache 移植Laravel的 php artisan config:cache [创建配置缓存文件]指令到Lumen v1.1.0
adamtyn/lumen-artisan-config-clear 移植Laravel的 php artisan config:clear [清除配置缓存文件]指令到Lumen v1.1.0
adamtyn/lumen-artisan-down 移植Laravel的 php artisan down [进入维护模式]指令到Lumen v1.3.0
adamtyn/lumen-artisan-up 移植Laravel的 php artisan up [退出维护模式]指令到Lumen v1.3.0
adamtyn/lumen-artisan-make-job 移植Laravel的 php artisan make:job [快速创建任务]指令到Lumen v1.0.0
adamtyn/lumen-artisan-make-model 移植Laravel的 php artisan make:model [快速创建模型] 指令到Lumen v1.0.0
adamtyn/lumen-artisan-serve 移植Laravel的 php artisan serve [快速启动服务]指令到Lumen v1.0.0
  1. 刚创建的 Lumen 应用,应该执行 php artisan key:generate 为应用创建一个 AppKey 用以框架加密函数的密钥

@生产环境

  1. 上线部署代码时,建议使用 composer install --no-dev 指令安装依赖,可以避免生产环境加载 过多非必要 组件
  2. 耐心等待 composer 组件安装完成后,必须确认应用根目录是否存在 .env 文件,若不存在可以执行 copy .env.example .env 生成包含默认内容的文件
  3. 生产环境首次部署一个 Lumen 应用时,除了需要执行 @开发环境-4 的步骤,还一定要注意执行 php artisan storage:link 为应用创建一个 public/storage => storage/app/public符号连接,目的是方便分配目录权限
  4. 当做完所有准备工作,最后就要调整 .env 文件中相关的 环境变量
APP_ENV=production
APP_KEY=H+HOlDl8yODdwUQEPX3xMbmj5MvUHFDeeuz9Yi95ZiA=
APP_DEBUG=false
APP_TIMEZONE=PRC
APP_LOCALE=zh_cn
# has more...
  1. 特别的,如果开发时用到了上述表格中的部分 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();
    }
}
  1. 实际上,核心文件都应该 针对不同代码环境有不同的逻辑

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版本

adamtyn/at-lumen 适用场景与选型建议

adamtyn/at-lumen 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 09 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「framework」 「laravel」 「lumen」 「adamtyn」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 adamtyn/at-lumen 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 adamtyn/at-lumen 我们能提供哪些服务?
定制开发 / 二次开发

基于 adamtyn/at-lumen 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-09-24