首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏mousemin

    PSR-4 自动加载规范

    PSR-4 自动加载规范 PSR-4 描述了从文件路径中 自动加载 类的规范。 它拥有非常好的兼容性,并且可以在任何自动加载规范中使用,包括 PSR-0。 PSR-4 规范也描述了放置 autoload 文件(就是我们经常引入的 vendor/autoload.php)的位置。

    74810编辑于 2023-06-10
  • 来自专栏小孟开发笔记

    PSR-4规范:自动加载

    摘要: FIG-PHP工作组推出的PSR-4规范能够满足面向package的自动加载,它规范了如何从文件路径自动加载类,同时规范了自动加载文件的位置。 1.   PSR-4规范:自动加载 虽然在[PSR-4-Meta]中指出PSR-4是对PSR-0规范的补充而不是替换,但是在[PSR-0]中已经写到PSR-0于2014.10.21被废弃,并在[PSR-4-Meta PSR-4规范能够满足面向package的自动加载,它规范了如何从文件路径自动加载类,同时规范了自动加载文件的位置。 1.1 概述 这份PSR规范描述了从文件路径自动加载类。 代码样例 以下代码展示了遵循PSR-4的类定义, 闭包(Closure)举例: <?php /** * An example of a project-specific implementation PSR-4应用 PHP的包管理系统Composer已经支持PSR-4,同时也允许在composer.json中定义不同的prefix使用不同的自动加载机制。

    1K40编辑于 2023-05-21
  • 来自专栏站长的编程笔记

    【说站】php PSR-4是什么意思

    php PSR-4是什么意思 说明 1、PSR-4规范了指定文件路径从而自动加载类,同时规范了自动加载文件的位置。 2、在PSR-4的键下,可以定义命名空间和路径的映射关系。 实例 {   "autoload": {     "psr-4": {       "App\\": "App/" // 命名空间App映射到目录App     }   } } 以上就是php PSR-

    73130编辑于 2022-11-24
  • 来自专栏caoayu的分享

    Composer (三) -- 自动加载

    自动加载机制到目前有了很多个标准,目前使用最多的是 PSR-4 标准,4 版本之前的标准已经被弃用了。 psr-4自动加载规范 当我们安装了依赖或者进行更新以及创建一个新的项目时,在 vendor 包中总是会生成一个 autoload.php 文件,这个文件就是用来记录并规范自动加载的配置文件。 # composer.json "autoload": { "psr-4": {"Monolog\\": "src/Monolog"} }, "autoload-dev": { "psr-4": {"Monolog\\": "tests/Monolog"} }, 可以看到,这里指定了自动加载的方式以及对应关系。 composer", "description": "composer", "require": { "monolog/monolog": "^2.2" }, "autoload": { "psr

    1.5K10发布于 2021-02-04
  • 来自专栏佳爷的后花媛

    composer autoloader

    4 类映射与PSR-0与PSR-4的对比。 这里有很多不同的类映射方式,一旦使用其中一种,就要遵循规则,composer会根据遵循的去查找和加载。 b) PSR-0: 当这个逻辑存在在 vendor/composer/autoload_namespaces.php, 要遵循PSR-0规则. c) PSR-4: 当存在在 vendor/composer PSR-0 和 PSR-4 的规则大致相同。 注意: 对于这两者,每次添加新的PHP类时都不必运行composer dumpautoload,因为“搜索文件路径”过程是动态进行的。 必须使用名称空间,尤其是PSR-4,因为名称空间附加到文件路径。 子目录名称必须与子命名空间名称的大小写匹配。 -PSR-4 PSR-0将下划线转换为目录分隔符,而它不在PSR-4中: 每个 "_" in the CLASS NAME 被转换成 a DIRECTORY_SEPARATOR.

    1K10发布于 2020-04-23
  • 来自专栏决胜机器学习

    ModernPHP读书笔记(二) ——PHP开发标准

    二、规范 PHP-FIG共制定五套规范,编号PSR-0~PSR-4,但是PSR-0已经被PSR-4取代,因此已经废弃,故讨论的规范通常只讨论四套规范。 基础编码标准 2、PSR-2(Coding Style Guide) 编码风格向导 3、PSR-3(Logger Interface) 日志记录器接口 4、PSR 4、命名空间遵循PSR-4。 -4 PSR-4为自动加载器,是指PHP运行时根据实际需要动态查找PHP的类、接口或者性状,并进行加载。 PSR-4自动加载的策略,是依赖命名空间的前缀和相对应的文件系统的路径,这两部分内容都可以自定义。 另外,可以采用Composer组件引入加载器,后续文章中会进行描写。

    1.1K100发布于 2018-03-07
  • 来自专栏陶士涵的菜地

    [composer] composer.json autoload参数

    这是配置本地的自动加载机制,一般是采用psr-4的标准,也就是命名空间和目录对应的形式 例如下面的autoload "autoload": { "psr-4": {

    58430发布于 2021-07-14
  • 来自专栏IT码农

    Laravel5.2之Composer自动加载

    autoload函数栈中,最后返回一个loader加载器,而这个加载器是包含一些私有变量的,由于本Container包只包含IlluminateContainer和IlluminateContracts,且都是psr Container类的实例化过程 loader这个加载器已经有了,而且它还是塞满了各种私有变量,这些变量值为命名空间路径映射或者路径哈希映射等,当然这里只有命名空间路径映射这种psr-4规范了。 -4/psr-0查找,其实就是搜寻这些私有变量值,比如这里Container类是psr-4规范,那就去prefixLengthsPsr4/prefixDirsPsr4这些psr-4私有变量中查找文件绝对路径 composer.json文件: { "require": { "illuminate/container": "^5.2" }, "autoload": { "psr -4": { "App\\": "app/" } } } 这里按照psr-4规范来,然后在项目根目录下使用命令: composer install 发现autoload_psr4

    4.1K21编辑于 2022-03-24
  • 来自专栏黄啊码【CSDN同名】

    PHP PSR规范

    -4替代,不再细讲 PSR-1:基本的编码风格 PSR-2:编码风格(更严格) PSR-3:日志记录器接口 PSR-4:自动加载 PSR-1 PHP标签: PHP代码必须放在<? -4 PSR-4规范描述了一个标准的自动加载器策略,指在运行时按需查找PHP类、接口或Traits。 编写一个PSR-4自动加载器 PSR-4规范不要求改变代码的实现方式,只建议如何使用文件系统目录结构和PHP命名空间组织代码,PSR-4规范以来PHP命名空间和文件系统目录结构查找并加载PHP类、接口和 Traits,这正是PSR-4的精髓所在。 下面我们来自己手动实现一个PSR-4自动加载器: <?

    1.8K20发布于 2020-05-29
  • 来自专栏PHP在线

    拒绝重复造轮子,用composer搞自己的框架(1)

    FIG 最初由几位知名 PHP框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范: 1. PSR-4 (Improved Autoloading) 自动加载优化标准 之后,在此标准之上,Composer 横空出世! Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。

    1.2K50发布于 2018-03-08
  • 来自专栏学院君的专栏

    玩转 PhpStorm 系列(十一):编码风格篇

    我们知道 Laravel 遵循 PSR-2 编码风格和 PSR-4 自动载入标准。 在 PhpStorm 中,我们可以通过配置实现根命名空间与指定目录的映射,进而在创建 PHP 类时通过 PSR-4 自动载入标准根据类所在的目录路径生成对应的命名空间;还可以通过外部 PHP Code 1、PSR-4 在 Laravel 项目中,默认 \App 命名空间对应的是根目录下的 app 子目录,这可以通过 composer.json 进行配置: "autoload": { "psr- 通过这种方式,我们可以很方便地在 PhpStorm 中修改命名空间并且基于 PSR-4 自动载入标准新建 PHP 类。 2、PSR-2 代码嗅探工具 与 PSR-4 不同,PSR-2 是 PHP-FIG 组织为 PHP 制定的编码风格标准,它涉及的范围远大于类的自动载入,包含 PHP 编码风格的边边角角,如果要让自己的

    2.7K10发布于 2020-08-18
  • 来自专栏PHP修行之路

    使用composer本地开发项目

    : [ { "name": "gphper", "email": "570165887@qq.com" } ], "autoload": { "psr ": "path", "url": "/home/www/wwwroot/gdemo/hiframe/framework" } }, "autoload": { "psr

    88820发布于 2020-09-01
  • 来自专栏沈唁志

    为什么Composer在生产环境要使用dumpautoload

    Composer 作为现代 phper 的春天,远离重复造轮子的时代,大部分扩展包遵循 psr-4 规范,使得扩展更加轻松,减轻了工作的部分压力 这篇文章来说一下为什么在生产环境下使用 Composer value 的数组 这时我们需要分析一下 ClassLoader 这个类的源码 private function findFileWithExtension($class, $ext) { // PSR return $file; } } } } } // PSR { return $file; } return false; } 我们可以看到会先去查找 autoload_classmap 中所有生成的注册类,如果没有才会加载 psr -4 和 psr-0 所以使用 dumpautoload 后会优先加载需要的类并提前返回,不然的话 compoesr 只能去动态读取 psr-4 和 prs-0 的内容,这样大大减少了 IO 操作和深层次的循环

    2.5K20发布于 2019-12-09
  • 来自专栏Grace development

    来!狂撸一款PHP现代化框架 (准备工作)

    因为他必须具备一下几点 – 遵守PSR-4编码规范 – 使用Composer进行包管理 – 标准的HTTP请求方式 – 优雅的使用设计模式 开始我们无需关心性能问题,先考虑框架具体需要实现哪些功能 作为PSR-4的规定,我们命名空间得有一个祖宗名字,这里我叫他神圣的 《z_framework》 2. 通过psr-4加载个项目命名 { "name": "z framework", "require-dev": { "phpunit/phpunit": "^7.0 " }, "autoload": { "psr-4": { "Zero\\": "src/Zero", } }, "autoload-dev": { "psr-4": { "Zero\\Tests\\": "tests/" } } } 最后我们就需要考虑下目录的结构及其我们第一步要完成的功能

    96920发布于 2019-11-07
  • 来自专栏IT码农

    composer系列之五

    -README.md -composer.json 而关于自动加载方式,如果是一个新的扩展,我喜欢也推荐用psr-4规范。 那就需要在composer.json有如下定义 "autoload": { "psr-4": { "abei2017\\emoji\\": "src" } } 具体psr "yiisoft/yii2": "*", "emojione/emojione": "^3.1" }, "autoload": { "psr abei2017是我github的名字 采用MIT协议发布 yii2-emoji能运行要依赖于 yiisoft/yii2 和 emojione/emojione 的正确部署,见require 自动加载采用psr

    1.1K61发布于 2019-09-03
  • 来自专栏PHP 开发

    [译]Laravel 5.0 之目录结构与命名空间

    而在新的目录结构下, 它只包括应用逻辑(包括业务领域), 并且遵循 PSR-4 规范来进行类的自动加载. 对我们大多数人而言, 创建一个新项目(旧版本的)之后, 至少要花时间去删除 models 目录, 给应用添加命名空间, 按照 PSR-4 规范设置该命名空间的类自动加载. But, this change goes a long way to moving the primary logic of your applications into PSR-4 loaded classes 但 5.0 版本改用 PSR-4 规范来实现主要逻辑的自动加载已经是一大进步, 为把应用代码与 Laravel 进行分离提供了理论上的可能. xxx 应该放在哪里? 默认情况下, 每个 Laravel 应用都有一个代表应用类的顶级命名空间, 一般来说这个命名空间是 "App", 它对应的着 app/ 目录, 遵循 PSR-4 规范.

    1.8K40发布于 2018-03-02
  • 来自专栏友人a的笔记丶

    PHP如何使用Composer来自动加载项目文件?

    composer dump-autoload -o (-o 等同于 --optimize) 这个命令的本质是将 PSR-4/PSR-0 的规则转化为了 classmap 的规则, 因为 classmap 这个命令并没有考虑到当在 classmap 中找不到目标类时的情况,当加载器找不到目标类时,仍旧会根据PSR-4/PSR-0 的规则去文件系统中查找; composer dump-autoload -a autoload,表示PHP 自动加载的映射,支持 PSR-4 和 PSR-0 自动加载,class 映射 和 files 引用。 推荐使用 PSR-4 规范(添加类时,无需重新生成自动加载映射) { "autoload": { "files":[], "psr-4":{ "Test\" :"core/" } } } psr-4顾名思义,是一个基于psr-4(http://www.php-fig.org/psr/psr-4/)规则的类库自动加载对应关系,只要在其后的对象中,以 "命名空间": "

    4.9K40编辑于 2023-02-17
  • 来自专栏仁扬笔记

    Composer 镜像原理 (2) —— composer.json

    ", "php-console/php-console": "Allow sending log messages to Google Chrome" }, "autoload": { "psr -4": {"Monolog\\": "src/Monolog"} }, "autoload-dev": { "psr-4": {"Monolog\\": "tests/Monolog"} } shasum":"" }, "type":"library", "time":"2016-11-08T15:32:34+00:00", "autoload":{ "psr shasum":"" }, "type":"library", "time":"2016-11-08T15:32:34+00:00", "autoload":{ "psr " }, "type":"notadd-module", "time":"2017-11-13T04:23:05+00:00", "autoload":{ "psr

    61800编辑于 2023-06-20
  • 来自专栏Lemon黄

    【译】现代化的PHP开发--PSR规范

    1 PSR-0, PSR-4 PSR-0,和PSR-4这两个是关于自动加载的标准。 现在最新能被接受的自动加载器标准是PSR-4。你应该遵循PSR-4标准来创建我们想要的自动加载器。 有关PSR-4的详细介绍,请参阅其官方页面(http://www.php-fig.org/psr/psr-4/)。 2 PSR-1, PSR-2 PSR-1和PSR-2的标准是关于PHP编码的标准。 www.php-fig.org/psr/psr-1/ PSR-2: http://www.php-fig.org/psr/psr-2/ PSR-3: http://www.php-fig.org/psr/psr-3/ PSR -4: http://www.php-fig.org/psr/psr-4/ PSR-7: http://www.php-fig.org/psr/psr-7/

    76220发布于 2019-10-08
  • 来自专栏Owen's World

    PHP编码规范(中文版)

    目前官方已制定的规范包括以下六份文件: PSR-0 (已弃用) PSR-1 PSR-2 PSR-2补充 PSR-3 PSR-4 2014/04/25 添加PSR-2 2014/07/31 添加PSR-4。 PSR-1 基本代码规范 PSR-2 代码风格规范 PSR-2-1 补充文档 PSR-3 日志接口规范 PSR-4 自动载入 我们希望你贡献的代码符合: ThinkPHP 如果想要了解更多细节或有任何疑问,请继续阅读下面的内容 注意事项 本项目代码格式化标准选用 [PSR-2](www.kancloud.cn/thinkphp/ph…%EF%BC%9B) 类名和类文件名遵循 [PSR

    2.8K30编辑于 2021-12-08
领券