zoukankan      html  css  js  c++  java
  • PSR4自动加载

    什么是psr

    PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。
    百度百科:https://baike.baidu.com/item/PSR/19915567?fr=aladdin

    PSR描述了类名和文件路径自动加载。

    1 class 指的是 class interface trait 以及其他类似结构体

    2 一个合格的类名应该是下面格式

    <NamespaceName>(<SubNamespaceNames>)*<ClassName>
    必须有一个顶级命名空间

    可以包括一级或多级子命名空间的名字

    必须包括一个最终的类名

    下划线在这里没有任何特殊含义

    类名大小写敏感

    3 例子

    完整合格的限定性类名 命名空间前缀 基本路径 文件真实路径
    AcmeLogWriterFile_Writer AcmeLogWriter ./acme-log-writer/lib/
    AuraWebResponseStatus AuraWeb /path/to/aura-web/src/
    SymfonyCoreRequest SymfonyCore ./vendor/Symfony/Core/
    endAcl Zend /usr/includes/Zend/

    命名空间 对应的是文件 还是目录?

    1.当成是目录吧
    2.使用命名空间只是让类名有了前缀,不容易发生冲突,系统仍然不会进行自动导入。

    命名空间的问题

    php 命名空间与文件引入
    问题描述:这两天试着自己写一些东西,也是为了复习一下忘了的PHP基础知识,但是写到命名空间的时候遇到了一点问题,在这记录一下:当我写好文件之后,添加了命名空间,结果一直提示命名空间下类不存在,一直以为是其他原因,查了老半天都没解决,到后来才忽然想起来,use 命名空间不等于加载(引入);
      总结:use只是使用了命名空间,但是要想调用类,必须要加载类文件,或者自动加载(reqquire或者include)。

    一篇弄懂PHP命名空间及use的使用

    https://zhuanlan.zhihu.com/p/80352112

    注意:use不等于require_once或者include,use的前提是已经把文件包含进当前文件。

    顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。

    use的是类名,不是文件名

  • 相关阅读:
    ida动态调试--反反调试
    python读取配置文件
    问题解决:局域网内,为啥别人ping不到我的IP
    完全卸载MySQL
    JDK环境配置
    win10无法运行Vmware,怎么办
    查看ie版本
    公开的免费WebService接口分享,用于做接口练习
    SVN更改地址
    Loadrunner录制步骤及说明
  • 原文地址:https://www.cnblogs.com/cn-oldboy/p/13741924.html
Copyright © 2011-2022 走看看