Skip to content

Developer Guide 概述

WNCMS 旨在帮助 Laravel 开发者透过 models、controllers、managers 与 packages 扩充功能。
本节提供详细的参考,说明如何建立新功能与客制化现有功能,同时保持与 WNCMS core 的完全相容性。

开发者类型

有两种与 WNCMS 一起工作的开发者:

Website Developer

你为客户安装 WNCMS 并在 Laravel application 内扩充系统。
你可能:

  • app/ 中建立新的 modelscontrollersmanagers
  • 扩充或覆写 wncms-core 提供的 classes。
  • 新增自订 routes、migrations 或 Blade templates。
  • 整合现有的 WNCMS 元件,如 PostManagerLinkManager 与 translation traits。

Package Developer

你建立扩充 WNCMS 功能的 Composer packages,可供其他人安装。
你可能:

  • 透过 wncms()->registerPackage() 注册 packages。
  • 提供 migrations、seeders、translations 与 backend menus。
  • 建立独立 modules,如 wncms-faqswncms-ecommerce 等。

核心扩充层

WNCMS 提供 base classes 与 traits 使开发保持一致:

层级说明范例 Base Class
Model资料表示与 Eloquent 整合Wncms\Models\BaseModel
ControllerBackend、frontend 与 API 的路由逻辑Wncms\Http\Controllers\Backend\BackendController
Manager资料存取与商业逻辑抽象Wncms\Services\Managers\ModelManager
ResourceAPI 序列化层Wncms\Http\Resources\BaseResource
Trait可扩充的功能 modulesWncms\Traits\HasTranslations
RouteWeb、backend、frontend 与 API 的系统 routesroutes/backend.php, routes/frontend.php

本节的每个部分解释如何正确扩充这些层。

开发环境

要扩充 WNCMS,请确保你的 Laravel app 或 package 包含:

bash
composer require secretwebmaster/wncms-core

若你在本地开发:

  • 将 package clone 到 packages/secretwebmaster/wncms-core
  • composer.json 中透过 "repositories" 区段为本地开发新增它
  • 执行 composer update

下一步

用 ❤️ 制作,献给 WNCMS