美文网首页
开发一个PSR-0的基础框架

开发一个PSR-0的基础框架

作者: 云龙789 | 来源:发表于2018-12-15 16:43 被阅读11次

PSR-0 规范

  • 命名空间必须与绝对路径一致
  • 类名首字母必须大写 (注意是类名,而不是文件名)
  • 除入口文件外,其他的 .php 必须只有一个类

开发符合PSR-0规范的基础框架

  • 全部使用命名空间
  • 所有的PHP文件必须自动载入,不能有 include/require
  • 单一入口

首先说明下类自动载入

__autoload 但是这个函数被废弃了,因为这个函数使用一次以上的话,会报函数命名冲突的错误

function __autoload($class)
{
 require __DIR__.'/'.$class.'.php';
}

spl_autoload_register() php5.3之后官方提倡使用此函数取代 __autoload (spl_autoload_register — 注册给定的函数作为 __autoload 的实现)
这个函数载入的是一个函数,在函数中引入文件即可,而且不会引起冲突
还可以多次调用此函数

index.php

<?php

spl_autoload_register('auto');

\app\Controller\Index::test();

function auto($class)
{
    require __DIR__ . '/' . str_replace('\\','/',$class) . '.php';
}

app/Controller/Index.php

<?php

namespace app\Controller;

class Index
{

    public static function test()
    {
        echo 'index test';
    }
}

注意

  • 规范中可能是类的首字母必须大写,文件好像并没有规定大小写,但是我测试过类和文件名大小写其实都是可以的
  • 但是命名空间必须与文件名一直,因为引入的时候可能是安好命名空间引入的,打印 auto($class) 的参数,得到的其实就是命名空间
  • 所以需要使用 str_replace 函数转换 \\/
  • spl_autoload_register() 函数时可以多次调用的,而且不会引起命名冲突
  • 很多讲解者喜欢把 spl_autoload_register() 函数的参数使用 autoload ,但其实随便一个函数都行,只是使用的功能要是本例中auto 函数的功能

相关文章

  • 开发一个PSR-0的基础框架

    PSR-0 规范 命名空间必须与绝对路径一致 类名首字母必须大写 (注意是类名,而不是文件名) 除入口文件外,其...

  • 2.1.4Bootstrap

    概念:一个前端开发的框架 框架:一个半成品软件,开发人员可以在框架基础上,再进行开发,简化代码。 好处:1.定义了...

  • 代码重构,MVP+RxJava+Retrofit

    1. Android开发框架的选择 我们知道原生Android开发已经是一个基础的MVC框架,其中xml部分被认为...

  • metric上报插件开发

    java 基础中台java 开发框架java 开发框架 3.0 (推荐使用)开发需求开发计划架构设计组件4.1 x...

  • gitlab fork项目更新操作说明

    需求 在开发项目中,需要在基础框架代码上进行开发,但又想能及时更新基础框架代码的新功能,所以就有fork 项目, ...

  • Cocoa Touch 框架

    Cocoa Touch 框架是iOS开发的基础,了解Cocoa Touch框架,对我们开发iOS软件有很大的帮助。...

  • 产品研发记录05:产品研发人员应当具备的特质

      目前负责一款基础开发框架产品的研发,该产品的受众群体为所有的项目开发人员。该基础开发框架产品的核心价值在与提升...

  • 老生常谈Android的MVP架构

    原生框架问题 由于原生 Android 开发应该已经是一个基础的 MVC 框架,所以在初始开发的时候并没有遇到太多...

  • Flutter通用基础框架设计思想

    # Flutter通用基础框架 #### Flutter基础框架设计特点 1、代码轻量级 2、快速开发、学习门槛低...

  • 一个常见的三段式iOS app的开发框架

    做开发两年,觉得有必要重新学习下基础的知识,在公司开发时比较依赖前辈写的框架开发,突然想到自己开发一个框架对于自己...

网友评论

      本文标题:开发一个PSR-0的基础框架

      本文链接:https://www.haomeiwen.com/subject/eyyahqtx.html