# NP 基础知识
# 目录结构
NP 是传统的多入口应用,public 目录下每个文件都是入口。原始版本没有使用命名空间,基本是面向函数编程。
大的功能模块可以分为 Web 端、Tracker 端两块(以下文件均位于 include 目录)。
- Web 端:主入口
bittorrent.php
,函数文件functions.php
- Tracker 端:主入口
bittorrent_announce.php
,函数文件functions_announce.php
- 二者公共部分:公共函数文件
globalfunctions.php
,core.php
要增加新功能时,只需:新建入口文件 -> 引入主入口 -> 开始具体业务逻辑。
# 常用函数
函数名 | 说明 |
---|---|
dbconn($autoclean = false, $doLogin = true) | Web 端,连接数据库。在 v1.6 中不需要手动调用,会自动连接 |
dbconn_announce() | Tracker 端,连接数据库 |
userlogin() | 设置登录态 |
loggedinorreturn() | 判断用户是否登录 |
parked() | 判断账号是否已经封存 |
parse_imdb_id($id) | 标准化 imdb_id,不足 7 位的补充前导 0 |
sql_query($query) | 执行 DDL + DML 语句,最常用的方法之一 |
get_row_count($table, $suffix = '') | 计数查询,suffix 即是 where 条件(必须包含 where) |
do_log($log, $level = 'info') | 记录日志到文本 |
get_setting($name, $default = null) | 读取站点设定数据 |
nexus_env($name, $default = null) | 读取 .env 文件配置值 |
nexus_config($name, $default = null) | 读取 config 目录下配置文件(allconfig.php除外)的值 |
getSchemaAndHttpHost() | 获取仅包含协议、主机、端口的 URL 地址 |
getBaseUrl() | 获取仅包含协议、主机、端口、路径的 URL 地址 |