composer+psr-4实现自动加载

自动加载

对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。

require ‘vendor/autoload.php‘;

这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。

$log = new Monolog\Logger(‘name‘);
$log->pushHandler(new Monolog\Handler\StreamHandler(‘app.log‘, Monolog\Logger::WARNING));

$log->addWarning(‘Foo‘);

你可以在 composer.json 的 autoload 字段中增加自己的 autoloader。

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer 将注册一个 PSR-4 autoloader 到 Acme 命名空间

你可以 定义一个从命名空间到目录的映射 。此时 src 会在你项目的根目录,与 vendor 文件夹同级。例如 src/Foo.php 文件应该包含 Acme\Foo 类。

添加 autoload 字段后,你应该再次运行 install 命令来生成 vendor/autoload.php 文件。

引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。

$loader = require ‘vendor/autoload.php‘;
$loader->add(‘Acme\Test\‘, DIR);

除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看 自动

原文地址:http://blog.51cto.com/phpme/2346530

时间: 2024-10-06 23:36:37

composer+psr-4实现自动加载的相关文章

composer的autoload来自动加载自己编写的函数库与类库?

1.使用命令composer init生成composer.json文件,并编辑autoload选项内容如下: 其中又包含主要的两个选项: files 和 psr-4. files就是需要composer自动帮我们加载的函数库(不含类),只要在后面的数组中将函数库的文件路径写入即可.psr-4顾名思义,是一个基于psr-4(http://www.php-fig.org/psr/psr-4/)规则的类库自动加载对应关系,只要在其后的对象中,以 "命名空间": "路径"

Composer实现项目的自动加载

Composer管理依赖包,实现自动加载 composer通过require.remove命令对项目进行依赖包的添加与删除. composer通过对项目根目录下的composer.json文件的配置,可以实现PSR-4自动加载的规范. composer.json架构详解,此处有详细介绍如何配置该文件. 通过对TP5.1的源码进行学习,TP5的自动加载主要是根据composer install命令执行后composer在vendor目录下生产的ClassLoader类进行重写.Composer自动

深入解析 composer 的自动加载原理 (转)

深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演进,而 composer 的出现更是彻底的改变了以往构建 PHP 应用的方式,我们可以根据 PHP 的应用需求混合搭配最合适的 PHP 组件.当然这也得益于

PSR 类自动加载规范的翻译与看法

先列举一些资源: PSR-0官网原文 PSR的Github源 PSR中文翻译的Github源 有几点事先说明: 翻译部分,我只挑选PSR-0和PSR-4中的主要规范内容进行翻译. 我的翻译,侧重以理解的角度,而不是严格的文法翻译. 关键修饰词的说明: **MUST** __务必__ **MUST_NOT** __绝不__ **REQUIRED** __务必__ **SHALL** __务必__ **SHALL_NOT** __绝不__ **SHOULD** __应该__ **SHOULD_NOT

优雅的 laravel(1)- Composer概述及其自动加载探秘

刚开始接触laravel,一天时间走马观花的看了一些官方文档之后便开始了laravel的学习.这里谈到的都是最基础的东西,各路大神,可直接略过. composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具库,Composer就会帮你安装这些依赖的库文件.运行 Composer 需要 PHP 5.3.2+ 以上版本. 使用composer 第一步,声明依赖关

Composer中的自动加载

Composer是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行.此文并不介绍如何使用Composer,而是关注于它的autoload的内容吧. 举例来说,假设我们的项目想要使用monolog这个日志工具,就需要在composer.json里告诉composer我们需要它: { "require": { "monolog/monolog": "1.*" } } 之后执行: php

Laravel 学习笔记之 Composer 自动加载

说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制. Composer的自动加载机制 1.初始化一个composer项目 在一个空目录下composer安装Laravel的容器Container包: composer require illuminate/container 然后在该目录下新建一个index.php文件,然后分析下Container类为何能被实例化: <?php /** * Created by PhpStorm. * User:

使用composer 实现自动加载

准备工作:提前安装好composer 1.创建项目目录OOP 2.OOP目录下新建composer.json文件,composer.json是一个空json文件,代码如下: { } 3.打开控制台,进入项目目录OOP,在OOP目录下运行composer命令: composer install 4.运行后自动生成composer文件目录,目录结构如下: OOP - Vendor - composer - autoload_classmap.php - autoload_namespaces.php

composer自动加载一个文件后必须执行命令composer dump-autoload

"autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" }, "files":[ "app/Common/function.php", "api/qqOauth/qqConnectAPI.php" ] }, 比如我新增了一个qq的登录api(api