如何开发一个简易PHP框架

  1. 简介
    框架是组织web程序代码的一种方式,通过面向对象编程思想和设计模式的应用,可以更好地实现系统解耦和代码复用。本文主要介绍一个简易框架必要的组成和功能。本文的目的并不是介绍如何开发框架,而是引导读者由浅入深地理解框架内核,更好地应用框架提高工作效率。需要特别注意的是框架不仅限于MVC框架,还包括一些组件和库(比如Swoole、Yar、Thrift、amphp等),MVC框架也是由很多组件或库(自己开发或者第三方开源)组装而成的。
  2. 框架的组成
    • 入口文件(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等)
  3. 必要的功能
    • 自动加载
      • 自己实现(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)
  4. 框架的发布
    1. 发布到Github(其他代码平台也可,支持Git/Svn/Hg)
    2. packagist提交你的package 输入图片说明
    3. 有代码更新时到对应package点击update更新即可
  5. 主流框架
    • Laravel(优雅的PHP框架)
    • Yii2(支持模板生成,容易入门)
    • Zend Framework
    • Symfony
    • Phalcon(C扩展)
    • Yaf(C扩展,鸟哥出品)
    • ThinkPHP(易上手,设计略粗糙)
  6. 我自己的框架(仅供参考)
    蓝豹PHP框架

转载于:https://my.oschina.net/luoxiaojun1992/blog/732420

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值