php设计模式一之命名空间、自动加载类、PSR-0编码规范

不言
发布: 2018-04-09 16:11:38
原创
1875人浏览过

本篇文章介绍的内容是php设计模式一之命名空间、自动加载类、psr-0编码规范 ,现在分享给大家,有需要的朋友可以参考一下

一、命名空间:解决在生产环境中多人协同开发时出现类名或函数名冲突的问题;
test1.php

<?php
namespace Test1;
function test(){
    echo "Test1命名空间下的test()方法";
}
?>
登录后复制

test2.php

<?php
namespace Test2;
function test(){
    echo "Test2命名空间下的test()方法";
}
?>
登录后复制

test.php

<?php
require_once('test1.php');
require_once('test2.php');
Test1	est();    //调用Test1命名空间下的test()方法
Test2	est();
?>
登录后复制

二、自动加载类:解决在项目中引入过多的依赖类文件问题;
demo1.php

立即学习PHP免费学习笔记(深入)”;

<?php
class Demo1{
    static function test(){
        echo "Demo1类中的test()静态方法";
    }
}
?>
登录后复制

demo2.php

<?php
class Demo2{
    static function test(){
        echo "Demo2类中的test()静态方法";
    }
}
?>
登录后复制

demo.php

<?php
//php5.3+版本,spl_autoload_register()自动注册加载类。参数为某个自定义的函数
spl_autoload_register('autoload');
//自定义一个自动加载函数,$class为类名,无须传参。spl_autoload_register()方法自动认别
function autoload($class) {
    require_once(__DIR__.'/'.$class.'.php');
}
Demo1::test();
Demo2::test();
//php5.3版本以下,使用__autoload()方法
function __autoload($class) {
    require_once(__DIR__.'/'.$class.'.php');
}
?>
登录后复制

三、PSR-0编码规范
1)、必须使用命名空间并且与文件的绝对路径一致;
2)、类名首字母须大写且与文件名保持一致;
3)、除入口文件以外其他php文件必须只有一个类且没有可执行的代码;

四、基于PSR-0编码规范编写一套基础框架
1)、目录结构

App            存放业务逻辑及功能实现的代码
|--Controller
    |--Home
       |--Index.php
Frame          存放与业务逻辑无关的代码,框架部分
|--Autoloader.php  自动加载类
index.php       单一入口文件
登录后复制

Autoloader.php

<?php
namespace Frame;
class Autoloader
{
    static function autoload($class)
    {
        require_once(BASEDIR.'/'.str_replace('\','/',$class).'.php');
    }
}
?>
登录后复制

App/Controller/Home/Index.php

<?php
namespace AppControllerHome;

class Index
{
    static function test()
    {
        echo "Home控制器下的test()静态方法";
    }
}
?>
登录后复制

index.php

<?php
define('BASEDIR',__DIR__);
require_once(BASEDIR.'/Frame/Autoloader.php');
spl_autoload_register('Frame\Autoloader::autoload');
AppControllerHomeIndex::test();

//输出结果:Home控制器下的test()静态方法
?>
登录后复制

                                                  

以上就是php设计模式一之命名空间、自动加载类、PSR-0编码规范 的详细内容,更多请关注php中文网其它相关文章!

豆包AI编程
豆包AI编程

智能代码生成与优化,高效提升开发速度与质量!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号