Typecho Framework简介

简介: Typecho Framework是SegmentFault所用的框架,由创始人joyqi亲手打造。joyqi也是国内知名博客平台Typecho的作者。

Typecho FrameworkSegmentFault所用的框架,由创始人joyqi亲手打造。joyqi也是国内知名博客平台Typecho的作者。

Typecho Framework代码已经开源,本文简单介绍Typecho Framework,希望能帮助PHPer了解 Typecho Framework。


目录结构

Typecho Framework的目录结构如下:

  • Cache
  • DB
  • Helper
  • MVC
  • Validator


Cache

基于Redis的缓存。

Redis是一个开源、基于内存、键值对数据库,使用ANSI C编写。Redis这种基于内存的性质,与在执行一个事务时将每个变化都写入硬盘的数据库系统相比就显得执行效率非常高。


DB

顾名思义这就是和数据库打交道的。

  • Connector.php
  • Adapter
  • Query


Connector

Connector.php中是Connector类,封装了数据库的初始化、选取、更新、增删、插入、查询等操作的函数。


Adapter

数据库的适配器,支持SQLite、MySQL、PostgreSQL。


Query

具体的query封装,InsertDeleteQuerySelectUpdate等等。


Helper

提供一些辅助功能:

  • Autoloader.php 自动加载
  • Config.php 配置
  • HttpClient.php HTTP客户端
  • Logger.php 日志


Validator

顾名思义,各种验证。例如URL、Email、字符串长度,等等。

上面的介绍有意略过了Mvc,因为这部分是整个框架的核心,留待下面重点介绍。


MVC

HTTP请求由Server容器处理,Server容器中包括请求、响应、路由、拦截器等对象。Server收到HTTP请求后,会生成相应的请求和响应对象,以注入的方式传给Action。

获得Server注入的对象后,Action与更后端的Service打交道,获取所需的数据。例如数据库等操作,都由Service打理。Action从Service获取所需数据后,传递result给Server的响应对象。

Action传递result,这是Typecho Framework的特色。result可以是template,也可以是json,等等。使用result,方便代码更好地复用。

上面提到了注入。这也是Typecho Framework的特色。关于注入这个概念,可以参考wikipedia的解释。举个例子吧。假设Action A需要使用Model X,通常的做法是用$this->load(XModel)来导入,或者直接使用$this->Xmodel(通过__get这样的magic method实现)。而使用了注入,则只需在Action A中使用private XModel声明,非常的优雅,由于XModel在内存中只有一个实例,性能上也很不错。


小练习

做中学是一种高效的学习方法。通过上面的介绍,你应该对Typecho有了一定的了解,现在是练手的时候了。

参考Typecho Framework的源代码,以及Typecho Framework示例,完成以下三个joyqi给出的小练习:

  1. 输出Hello World
  2. 使用模板输出Hello World
  3. 使用模板,模板中涉及传入的参数
相关文章
|
开发框架 .NET 数据库
ASP.NET Core 个人博客项目搭建笔记
简易个人博客项目搭建笔记 1.概述 项目梗概通过做一个比较简单,通俗易懂的个人博客项目,很简单的增删改查,来更好学习asp.net core,这个项目使用asp.net core webapi+elementui来做。 2.数据库设计文章表ID文章标题文章内容创建时间文章类型ID浏览量点赞量作者ID文章类型表ID类型名作者表ID姓名账号密码 MD5 3.架构设计仓储层服务层 MD5加密pu...
85 1
|
Web App开发 开发框架 前端开发
全面的ASP.NET Core Blazor简介和快速入门
全面的ASP.NET Core Blazor简介和快速入门
261 0
|
前端开发 IDE 开发工具
Typecho Framework 注入简介
注入是Typecho-Framewrok的重要特性。注入写起来非常优雅,在性能上也有好处(避免了函数开销)。本文简要介绍如何使用Typecho-Framework的注入。如果你不太了解Typecho-Framework,请先参考Typecho Framework简介和Typecho Framework: Hello world!两篇文章。
145 0
|
Web App开发 .NET C#
ASP.NET Core 新建项目 - macOS 环境 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 新建项目 - macOS 环境 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目 - macOS 环境 对于任何语言和框架,都是从 Hello World 开始的,这个非常简单,但却有十分重大的意义,ASP.
1724 0
|
监控 .NET Java
asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionless的学习做下笔记! Exceptionless是什么?能做什么呢? “Exceptionless”这个词的定义是:没有异常。
1912 0
|
XML 物联网 数据格式
|
程序员 PHP Web App开发
Swoole Framework 入门教程(1)
Swoole Framework入门教程1 简介 Swoole为广大php 程序员带来了福音, 用一句话说 重新定义PHP, 底层用c扩展实现,配合PHP7 性能不弱于 golang ,并且还可以脱离 fpm 来执行, 让php变得好像nodejs一样~~。
1558 0