简称:NetteAdmin ,版本号:V1.0.0
V1.0 是基于ThinkPHP8.0开发的一套完整应用软件框架,目前仅使用了Think-ORM、路由、控制器、验证部分、上传。
如果需要改为基于其他PHP框架的软件,可以自行实现对mongodb的操作及以上提到的部分,即可将ThinkPHP8.0框架更换为其他框架。用户如有需要可自行实现。
文档
其中数据库操作最为重要,请查看开发指导中的数据库章节。
技能要求
软件开发需要具有一定的技术能力,以下技能必须掌握。
php开发语言【8.1】
javascript语言
vuejs框架 【2.0】
uniapp框架
对composer安装使用有足够的了解
对mongodb有一定的了解,数据库使用的是mongodb
对redis有一定的了解,缓存使用的是redis
框架
无需考虑前后端分离,项目中采用Thinkphp8.0为基础框架,并在此框架基础上进行一些常用操作封装使用开发更容易。
以下composer包需要开发者阅读源码,了解新增的功能,以便开发时可以找到对应的功能并直接调用。【必须了解】
以下composer包需要开发者了解使用方法【可选项】
图片处理使用 intervention/image
markdown使用 michelf/php-markdown
自动加载app.php文件
如在app/admin/app.php 文件将会被自动加载,一般用于写一些函数,这些函数通常情况是为了实现项目具体需要的功能。
其中admin可以是其他,比如要开发一个项目叫活动报名且起名为 active_bm,那么在app/active_bm/app.php 中写函数,将会被自动包含。
默认应用
app/admin | 后台管理 |
app/payment | 支付管理 |
app/applet | 小程序相关 |
app/form | 表单配置 |
默认的应用可以加速开发,除了以上应用,如其他第三方接口均存放在RPC服务中,RPC为独立的应用。项目为 app/webtool 。当发放一个完整软件时,如开发一个电商软件,命名为mall时,那么完整的项目目录可能是这样的,在app目录下有 admin 、payment、applet、mall 等
当开发一个共享打印时,由于共享打印需要调用第三方打印接口及生成一寸二寸照片时,此时项目中的app目录下有 admin、payment、applet、printer、webtool ,其中printer为共享打印实现的目录,包含API接口、后台界面、后台功能,webtool为RPC服务,在printer中调用RPC看起来代码为下:
namespace app\printer\controller;
use app\ApiController;
use hg\apidoc\annotation as Apidoc;
/**
* @Apidoc\Title("Api 证件照(智能)")
*/
class ApiAiPhoto extends ApiController
{
public $guest = false;
public $client;
protected function init(){
parent::init();
$url = get_config("RPC_WEBTOOL_URL").'/rpc/webtool/Photo';
$this->client = rpc($url);
}
/**
* @Apidoc\Title("正装选择")
* @Apidoc\Query("spec_id",type="string",require=false,desc="")
* @Apidoc\Method("POST")
*/
public function get_ai_clothes(){
$spec_id = $this->input['spec_id'];
$d = $this->client->get_ai_clothes();
$color = get_photo_ai_to_color($spec_id);
return json_success(['color'=>$color,'clothes'=>$d]);
}
}
代码仅为演示效果。
更多开发功能请在菜单中查看。
开发中核心代码不要进行修改
以下是部分核心代码,列出的目录或文件不要随意修改,核心代码已统一管理,统一覆盖。
/app/applet
/app/form
/app/blog
/app/admin
/app/app.php
/app/AdminController.php
/app/AdminWithController.php
/app/ApiController.php
/app/BaseController.php
/app/AppService.php
/app/CRUD.php
/app/common.php
/app/StoreController.php
/app/middleware.php
/app/ExceptionHandle.php
/app/event.php
/app/Request.php
/public/lib/app.css
/public/lib/admin.css
/public/lib/admin.js
/public/lib/app.js
其他目录在不同的项目中,仅保持在当前项目可用,就算名称相同,也不可以覆盖,以免造成系统异常。