转:PHP Composer 管理工具的介绍 这个相对清晰点

转自:http://www.aichengxu.com/view/14872

一、PHP的一些臭历史

Dependency Manager For PHP,Composer。在Composer还没诞生之前,PHP的代码很难被管理。虽然pear社区的支持,许多可重用代码可以通过pear来获得,但是pear在处理代码关联性上非常差,当然还有许多问题。Java领域有Maven工具, .Net 的VS工具集成了NuGet,都是非常好使的关联管理器。但是PHP何去何从?Composer诞生了。它的诞生很大意义上是因为php的3.0版本被普及了,php的命名空间特性让代码包可以在全球级别上具备唯一识别性。当然有人说,我们可以在一个类的命名上做文章也可以做到,但是,会带来许多问题,类名太长,命名重名性高,文件的组织性识别性差等等。PHP根本无法忽略java,.net一直在被使用的package与命名空间的特性,php必须换血。随着php3.0 
的普及,通过众多第三方的努力,PHP社区迅猛的积累了许多可用的代码库,起初,大部分代码库都是分享在Github,采用git的方式获取。虽然这个可取,但是关联管理以及操作性上还是比较差。我们需要一个更加简单的具备关联管理的代码库管理工具。Yeah。Composer。

好了,说到这里,或许许多人还很模糊。没关系,我们采用尝试动手,来熟悉Composer。

二、初体验Composer

Composer具体点是什么? 就是一个编译压缩过的phar文件,一个可以执行的工具。

怎么获取?

Linux下

$ curl -sS https://getcomposer.org/installer | php

windows下

C:\Users\username>cd C:\bin
C:\bin>php -r "readfile(‘https://getcomposer.org/installer‘);" | php

完了,你可以在控制台下,输入命令 php composer.phar 来获取composer的使用帮助。

下面我们来演示一下,如何使用Composer来创建一个PHP项目

  1. 首先,创建一个项目目录ComposerDemo
  2. 进入目录之后,使用以上命令来获取composer.phar,当然composer是可以全局配置,意思为不需要一个php项目下载一个Composer,而是共用一个Composer
  3. 接下来 调用 php composer.phar init 可以自动创建一个 composer.json文件,当然你也可以手工创建。
{
    "name": "kendoctor/composer_demo",
    "description": "introduction for how to use composer",
    "minimum-stability": "stable",
    "authors": [
        {
            "name": "kendoctor",
            "email": "[email protected]"
        }
    ],
    "require": {

    }
}

这个文件很重要,它告诉composer如何工作。初始创建的模版,你可以修正一些你的项目的信息。

  • name ,项目名称,命名规则,vendor名称/项目名称
  • description,项目描述
  • minium-stability,版本类型,具体内容参考官方阐述。这里先不作探讨。
  • authors,作者信息。
  • require, 这里可以请求你项目其他的相关php类库或类库包

下面我们来演示Composer的第一个特性,类的自动载入

首先,按照目录结构来创建文件

ComposerDemo/
├── composer.phar
├── composer.json
├── src/
│   ├── models
│      ├── Calculator.php
├── index.php

文件Calculator.php

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Kendoctor
 * Date: 14-3-19
 * Time: 上午9:39
 * To change this template use File | Settings | File Templates.
 */

class Calculator {
    public function addNumbers($x,$y)
    {
        return $x + $y;
    }
}

我们要使用类Calculator,php老办法就是require这个类文件。事实上,我们在代码中会调用许多类,而这些类都会放到不同的文件中,那样的话,我们需要许多的require。

我们知道index.php可以这么写

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: kendoctor
 * Date: 14-3-19
 * Time: 上午9:40
 * To change this template use File | Settings | File Templates.
 */

require("src/models/Calculator.php");

$calc = new Calculator();
echo $calc->addNumbers(10,21);

但是,这不是我们用了Composer想要的。我们要的效果是,实例某个类,它会自动载入。那,怎么搞呢?

修改Composer.json

{
    "name": "kendoctor/composer_demo",
    "description": "description_text",
    "minimum-stability": "stable",
    "authors": [
        {
            "name": "author‘s name",
            "email": "[email protected]"
        }
    ],
    "autoload":{
        "classmap": ["src/"]
    }

}

require这个属性被我删除了,稍等我们再来介绍其特性。首先这里引入一个autoload属性,可以自动加载类或命名空间的特性属性。classmap属性定义要引入的哪个目录下的类,或者直接可以是类文件。我们这里指定src目录下所有的类文件。修改之后,我们要通过composer命令来更新一下目录结构内容,很简单

php composer.php dump-autoload

完了会自动产生目录vendor,里面许多自动产生的内容,不过这里,我们只需要关注autoload.php这个文件。我们在index.php只需要引入这个文件就可以了

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: kendoctor
 * Date: 14-3-19
 * Time: 上午9:40
 * To change this template use File | Settings | File Templates.
 */

require("vendor/autoload.php");

$calc = new Calculator();
echo $calc->addNumbers(10,21);

如果你又新添加了一个User到models目录下,那你无需要做其他工作,就可以直接在index.php文件中直接调用此类了。

时间: 2024-11-04 10:35:05

转:PHP Composer 管理工具的介绍 这个相对清晰点的相关文章

通过composer管理工具安装laravel

当安装好composer管理工具后,将composer的bin目录添加至环境变量中(PATH),方便在任意目录下执行composer命令. 方法1:我们通过laravel工具安装laravel 首先,使用 Composer 下载 Laravel 安装包: 用cmd命令工具进入任意目录执行以下命令: composer require "laravel/installer=~1.1" 执行完成后,会在该目录下生成一下几个文件: 然后我们将该目录下的~/vendor/bin目录添加到环境变量

MySQL高可用复制管理工具 —— Orchestrator介绍

背景 在MySQL高可用架构中,目前使用比较多的是Percona的PXC,Galera以及MySQL 5.7之后的MGR等,其他的还有的MHA,今天介绍另一个比较好用的MySQL高可用复制管理工具:Orchestrator(orch). Orchestrator(orch):go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等.后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MySQL复制的拓扑关系及状态,通过Web可更改MyS

源代码管理工具Github介绍

*此试验报告为上海海洋大学17级软件工程专业软件工程综合实践专题课程第四次个人博客,内容为介绍源代码管理工具Github,详细内容要包括两个方面工具的介绍以及学习的心得体会. 一.什么是Github GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werne

linux命令行todo列表管理工具Taskwarrior介绍

Taskwarrior 是一款在命令行下使用的TODO列表管理工具,或者说任务管理工具,灵活,快速,高效. 安装 在ubuntu 14.04 中,可从官方仓库安装task软件包 sudo apt-get install task 在ubuntu18.04中,可从官方仓库安装taskwarrior软件包 sudo apt-get install taskwarrior 简单使用 安装后,即可使用task命令 第一次运行会提示你创建配置文件,输入yes,使用默认配置即可. 新建任务 使用task a

Php学习之依赖管理工具composer详解

本文和大家分享的主要是php中依赖管理工具composer相关用法,一起来看看吧,希望对大家学习php有所帮助. 什么是依赖管理工具 当你引用某个第三方库时,如果这个库使用到了另外一个或若干个第三方库,再或许另外一个第三方库又有其他的依赖,这样的话手动维护你需要下载安装N个包.用来解决由此产生的问题的工具就叫做依赖管理工具. 有哪些常见的依赖管理工具 Java的maven.gradle,NodeJs的npm,IOS的CocoaPods,PHP的composer 大部分编程语言都会有自己的常用依赖

有用PHP依赖管理工具Composer新手教程

PHP依赖管理工具Composer新手教程 Composer 是 PHP 的一个依赖管理工具.它同意你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理器. 是的,它涉及 "packages" 和 "libraries",但它在每一个项目的基础上进行管理,在你项目的某个文件夹中(比如 vendor)进行安装. 默认情况下它不会在全局安装不论什么东西.因此,这不过一个依赖管理. 这样的想法并不新奇,Composer 受到

实用PHP依赖管理工具Composer入门教程

PHP依赖管理工具Composer入门教程 Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理器.是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装.默认情况下它不会在全局安装任何东西.因此,这仅仅是一个依赖管理. 这种想法并不新鲜,Composer 受到了 node

pstree,ps,top,htop,vmastp,pmap,glances,dstat进程管理工具介绍

htop,glances,dstat进程管理工具介绍 1.htop 工具 htop常用交互命令 M:以memory排序 P:以cpu占用比排序 T:以cpu占用时长排序 u:过滤仅显示选定用户的进程: s:跟踪选定的进程所发起的系统调用: l:显示指定进程打开的文件 t:显示进程树格式 a:将选定的进程绑定在指定的CPU上 2.glances: glances[-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P pas

Composer : php依赖管理工具

原始时代 我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了 总结如下 代码混乱 规范不统一 没有后续统一更新等管理 Composer侠应运而生 composer直到如今 已有5个年头了,也是直到今年才有了第一个稳定版本1.0,以前都是alpha版本了,其实composer的发展 也和 PHP-FIG (后续会专门解释的)的发展有很大关系 composer是php新时代的依