ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
# 基础框架 ## 简介 TarBlog并不基于现成的框架,也不使用composer(自v0.3起)来管理项目。TarBlog的框架借鉴了Typecho程序,但使用了更现代的PSR-4命名规范,它用于自动引用类文件,composer也用它来管理命名空间和目录之间的关系。 使用PSR-4意味着程序中有大量的命名空间,虽然给插件的开发带来些许不便(插件的命名空间在根部,因此自动引入时需要特殊处理,且无法自动引入插件主文件外的PHP类文件),但是它能对应目录与命名空间之间的关系,相对于PSR-0更人性化,且更好理解。硬要说的话,PSR-0和PSR-4的关系就像JAVA和Go语言,前者有各种语法规则可以实现同一功能,而后者通常只有一种,对于初学者来说少即好。 TarBlog基础框架实现了Action(动作处理器,旧版里用的是Controller,Controller包括多个Action)、DataContainer(一种数据容器,用于遍历数组,通常封装一些方法快速回显指定内容)、Container(应用容器,是一种单例模式的实现,程序中使用Manager类来管理容器)、Database(数据库组件,支持SQL拼接,类似于Laravel中的DB)、Http组件(包括Request、Session、Cookie、CSRF Token,其中Session封装了PHP默认的Session处理方法,在程序结束时才写入更改的数据,因此$_SESSION获取到的并不是Session中的最新数据)、Plugin(插件)、Routing(路由,匹配路径并指向Action)、Facade(门面,用于快速获取单例对象)、Paginator(分页器)、Validate(验证类)等等,后面会一一介绍。 ## 目录结构 ``` 根目录 |--admin '后台 |--usr '用户目录 |--plugin '插件目录 |--theme '主题目录 |--upload '上传文件目录 |--var '系统目录 |--App 'Action所在目录,具体结构请自行研究 |--Core '框架核心类目录 |--Exceptions '异常处理目录,目前用得少,后期可能用得多 |--Helper '帮助类,主要用于业务逻辑上的封装,类似于Service |--Models '模型,一般对应数据表 |--Utils '工具类,基本上与业务逻辑无关 |--... |--bootstrapper.php '启动器,用于定义一些系统初始化的东西 |--helpers.php '辅助函数文件 |--routes.php '路由定义,一般不要动 |--config.inc.php '配置文件 |--index.php '入口 |--install.php '安装文件,安装完成后可以删除 |--LICENSE '协议文件,建议保留 ```