PHPackages                             jobsys/starter-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jobsys/starter-module

ActiveLaravel-module[Utility &amp; Helpers](/categories/utility)

jobsys/starter-module
=====================

2.6.3(11mo ago)01121MITPHP

Since Jun 21Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/jobsys/starter-module)[ Packagist](https://packagist.org/packages/jobsys/starter-module)[ RSS](/packages/jobsys-starter-module/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (45)Used By (0)

**Starter** 基本模块 (**Required**)
===============================

[](#starter-基本模块-required)

该模块主要是提供系统的基本功能，包括基础用户认证登录、日志管理、字典管理、消息通知管理等。

模块安装
----

[](#模块安装)

```
# 安装依赖
composer require jobsys/starter-module --dev

# 启用模块
php artisan module:enable Starter && php artisan module:publish-migration Starter && php artisan migrate

```

### 配置

[](#配置)

#### 模块配置

[](#模块配置)

```
"Starter" => [
    "route_prefix" => "manager",                        // 路由前缀
]
```

模块功能
----

[](#模块功能)

### 用户认证登录

[](#用户认证登录)

`用户认证登录`功能流程：`用户登录` =&gt; `选择角色` *（如果只有一个角色自动选定）* =&gt; `初始化权限信息` =&gt; `跳转到Dashboard`。

#### 开发规范

[](#开发规范)

1. 可以根据业务需求自定义登录页面，默认登录页面的路由为 `/login`。
2. 默认的登录界面为 `Modules/Starter/Resources/views/web/NudePageLogin.vue`，登录用户名由 `config/conf.php`中的 `login_field` 定制，可以根据业务需求进行修改。

### 字典管理

[](#字典管理)

字典管理功能提供了对系统中常用的字典进行管理，如：性别、状态、类型等，根据不同的系统功能进行初始化。

#### 开发规范

[](#开发规范-1)

1. 字典管理的数据表为 `dictionaries`，数据模型为 `Modules\Starter\Entities\Dictionary`。
2. 在 `database/seeders/DictionariesSeeder.php` 的 `run` 方法中定义字典的初始化数据。 ```
    //性别类型
    if (!Dictionary::where('name', 'gender_type')->exists()) {
        $dict = Dictionary::create(['display_name' => '性别类型', 'name' => 'gender_type']);
        $dict->items()->insert([
            ['dictionary_id' => $dict->id, 'display_name' => '男', 'value' => '男'],
            ['dictionary_id' => $dict->id, 'display_name' => '女', 'value' => '女'],
        ]);
    }
    ```
3. 使用命令同步 Seeder ```
    php artisan db:seed --class=DatabaseSeeder
    ```

### 日志管理

[](#日志管理)

日志管理功能提供了对系统中的操作日志进行记录，包括：操作人、操作时间、操作内容、操作结果等。

#### 开发规范

[](#开发规范-2)

1. 日志管理的数据表为 `access_logs`，数据模型为 `Modules\Starter\Entities\AccessLog`。
2. 在业务逻辑中使用辅助函数 `log_access` 记录日志，如： ```
    log_access('查看xxx资源', $id);
    ```

### 消息通知管理

[](#消息通知管理)

消息通知管理功能集成了消息通知的获取、查看、标记已读等功能。API 由 `Modules\Starter\Http\Controllers\NotificationController` 提供， 前端页面由 `Modules\Starter\Resources\views\web\components\MessageBox.vue`组件提供。

#### 开发规范

[](#开发规范-3)

1. 消息通知管理的数据表为 `notifications`，详细的功能可以参考 [Laravel Notifications](https://laravel.com/docs/10.x/notifications)。
2. 在页面中使用 `MessageBox` 组件，如： ```
    import MessageBox from "@modules/Starter/Resources/views/web/components/MessageBox.vue"
    ```

    ```

    ```

模块代码
----

[](#模块代码)

### 数据表

[](#数据表)

```
2014_10_12_000001_create_dict_tables.php              # 字典表
2022_08_17_000002_create_access_logs_table.php        # 日志表
2023_04_07_162249_create_notifications_table.php      # 消息通知表
```

### 数据模型/Scope

[](#数据模型scope)

```
Modules\Starter\Entities\BaseModal                # 基础 Model，支持 `appends` 中添加 `_datetime`, `_date`, `_human` 后缀后自动转换为对应的格式等功能
Modules\Starter\Entities\AccessLog                # 日志
Modules\Starter\Entities\Dictionary               # 字典
Modules\Starter\Entities\DictionaryItem           # 字典项
```

### 枚举

[](#枚举)

```
// 基础状态码
enum State: string
{
    const SUCCESS = 'STATE_CODE_SUCCESS';
    const FAIL = 'STATE_CODE_FAIL';
    const DB_FAIL = 'STATE_CODE_DB_FAIL';
    const NOT_LOGIN = 'STATE_CODE_NOT_LOGIN';
    const NOT_FOUND = 'STATE_CODE_NOT_FOUND';
    const NOT_ALLOWED = 'STATE_CODE_NOT_ALLOWED';
    const INVALID_PARAMETERS = 'STATE_CODE_INVALID_PARAMETERS';
    const DUPLICATION = 'STATE_CODE_DUPLICATION';
    const USER_INVALID = 'STATE_CODE_USER_INVALID';
    const USER_INFO_INCOMPLETE = 'STATE_CODE_USER_INFO_INCOMPLETE';
    const TOO_FREQUENTLY = 'STATE_CODE_TOO_FREQUENTLY';
    const CAPTCHA_ERROR = 'STATE_CODE_CAPTCHA_ERROR';
    const VERIFY_ERROR = 'STATE_CODE_VERIFY_ERROR';
    const MOBILE_ERROR = 'STATE_CODE_MOBILE_ERROR';
    const EMAIL_ERROR = 'STATE_CODE_EMAIL_ERROR';
    const RISKY_CONTENT = 'STATE_CODE_RISKY_CONTENT';
    const RISKY_IMAGE = 'STATE_CODE_RISKY_IMAGE';
}
```

### 辅助函数

[](#辅助函数)

#### 基础

[](#基础)

- `starter_setup_user`

    ```
    /**
     * 获取用户相关内容 [菜单, 权限, 部门, 个人信息, 是否超级管理员]
     * @return array
     */
    function starter_setup_user(): array
    ```
- `starter_get_user_menu`

    ```
    /**
     * 获取用户菜单
     * @param $user
     * @param array $permissions
     * @return array
     */
    function starter_get_user_menu($user = null, array $permissions = []): array
    ```

#### 字典

[](#字典)

- `dict_get`

    ```
    /**
     * 获取字典
     * @param string $name
     * @param bool $only_options
     * @return array|BaseModel|Dictionary|null
     */
    function dict_get(string $name, bool $only_options = true): BaseModel|array|Dictionary|null
    ```

#### 日志

[](#日志)

- `log_access`

    ```
    /**
     * @param string $action 动作
     * @param string $object 对象
     * @param string $effect 结果
     * @param int $user_id 用户ID
     * @param string $user_type 用户类型
     * @param string $brief 摘要
     * @return void
     */
    function log_access(string $action, string $object = '', string $effect = '', string $brief = '', int $user_id = 0, string $user_type = 'user'): void
    ```

### Controller

[](#controller)

```
# 基础控制器，提供 `json`, `success`, `message` 方法
Modules\Starter\Http\Controllers\BaseController
```

```
// `json` 方法结果与状态都是自定的
public function json($result = null, $status = State::SUCCESS): JsonResponse

// `message` 方法状态为 `State::FAIL`
public function message($message): JsonResponse

// `success` 方法状态为 `State::SUCCESS`
public function success($result): JsonResponse

//返回结果示例
[
    'status' => 'SUCCESS',
    'result' => [
        'id' => 1,
        'name' => 'name',
        'created_at' => '2021-08-17 16:22:49',
        'updated_at' => '2021-08-17 16:22:49',
    ],
]
```

```
Modules\Starter\Http\Controllers\DictContrller             # 提供字典的增删改查
Modules\Starter\Http\Controllers\NotificationController    # 提供日志的增删改查
Modules\Starter\Http\Controllers\UserCgiController         # 用户的认证登录，退出
```

### UI

[](#ui)

#### PC 端页面

[](#pc-端页面)

```
web/NudePageLogin.vue           # 登录页面
web/PageDict.vue                # 字典页面
```

#### PC 组件

[](#pc-组件)

```
web/components/MessageBox.vue      # 消息通知组件
```

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance51

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~4 days

Total

44

Last Release

343d ago

Major Versions

1.2.7 → 2.0.02023-10-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/9af2852747d0afc832ab19afacd1b3bc0b727a8866ef728c8ccb3dc8ac75ca2a?d=identicon)[sinceow](/maintainers/sinceow)

---

Top Contributors

[![sinceow](https://avatars.githubusercontent.com/u/4105018?v=4)](https://github.com/sinceow "sinceow (54 commits)")

### Embed Badge

![Health badge](/badges/jobsys-starter-module/health.svg)

```
[![Health](https://phpackages.com/badges/jobsys-starter-module/health.svg)](https://phpackages.com/packages/jobsys-starter-module)
```

###  Alternatives

[ivanomatteo/laravel-device-tracking

a library that allow to track different devices used

28266.2k](/packages/ivanomatteo-laravel-device-tracking)[humanmade/hm-gtm

Google Tag Manager Tools for WordPress

35177.9k2](/packages/humanmade-hm-gtm)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
