您的位置:首页 > 编程语言 > PHP开发

如何开发一个简易PHP框架

2016-08-14 00:00 176 查看
摘要: 框架是组织web程序代码的一种方式,通过面向对象编程思想和设计模式的应用,可以更好地实现系统解耦和代码复用。本文主要介绍一个简易框架必要的组成和功能。本文的目的并不是介绍如何开发框架,而是引导读者由浅入深地理解框架内核,更好地应用框架提高工作效率。

简介

框架是组织web程序代码的一种方式,通过面向对象编程思想和设计模式的应用,可以更好地实现系统解耦和代码复用。本文主要介绍一个简易框架必要的组成和功能。本文的目的并不是介绍如何开发框架,而是引导读者由浅入深地理解框架内核,更好地应用框架提高工作效率。需要特别注意的是框架不仅限于MVC框架,还包括一些组件和库(比如Swoole、Yar、Thrift、amphp等),MVC框架也是由很多组件或库(自己开发或者第三方开源)组装而成的。

框架的组成

入口文件(index.php)

入口文件是一个框架最必不可少的文件,是程序接收Web请求的唯一入口。
// Require Composer Autoload File
require_once(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php');

// Start App
(new \lb\Lb())->run();


核心类文件(App.php)

核心类是一个框架的大脑,类似于计算机中的CPU,负责调度处理各种内部逻辑。
class Lb extends \lb\BaseLb
{
public function run()
{
if (strtolower(php_sapi_name()) !== 'cli') {
parent::run();
}
}
}


其他的组件(Request、UrlManager、Route等)

必要的功能

自动加载

自己实现(spl_autoload_register()注册函数或方法)

spl_autoload_register(['self', 'autoload']);


Composer(PSR-0、PSR-4)

结合上面两种方式(比如Yii2)

路由(解析$_SERVER['REQUEST_URI']或者$_SERVER['QUERY_STRING'],提取controller、action、request parameters,支持.html伪静态等。)

约定的规则

自由配置(Laravel、Symfony)

结合以上两种方式(Yii2)

控制器(根据解析出来的路由信息调用相应的Controller、Action)

框架的发布

发布到Github(其他代码平台也可,支持Git/Svn/Hg)

packagist提交你的package



有代码更新时到对应package点击update更新即可

主流框架

Laravel(优雅的PHP框架)

Yii2(支持模板生成,容易入门)

Zend Framework

Symfony

Phalcon(C扩展)

Yaf(C扩展,鸟哥出品)

ThinkPHP(易上手,设计略粗糙)

我自己的框架(仅供参考)

蓝豹PHP框架
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: