文档章节

PHP5的composer学习从入门到精通

行走的螃蟹
 行走的螃蟹
发布于 2014/10/08 12:32
字数 1006
阅读 4.3K
收藏 141

行业解决方案、产品招募中!想赚钱就来传!>>>

从入门到精通,只需四个步骤,解决下面四个问题即可

1.什么是composer?(入门)

    Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。--from 百度百科

    百度百科基本把官网的介绍翻译的很好,说的再明白一点,请看CSDN一篇博文的解释。

    在PHP包管理上面,PHP发展的很缓慢,导致的结果就是很少发现程序员会使用像PEAR这样的工具。相反,大多数开发人员会选择他们自己喜欢的框架来处理代码,比如DB交互、ORIM’S、Oauth、Amazon S3整合等。缺点就是在转换框架的时候(或者根本不需要返回使用框架)就感觉像在做噩梦,因为涉及到使用新工具,你必须重新学习里面的一切东西,而这并不简单。OK,Composer来帮助你解决这些问题。--http://www.csdn.net/article/2012-07-05/2807142


2.composer的环境要求与安装?(进阶)

    Composer 需要PHP5.3.2+ 以上的环境来运行。

    windows下安装:


       a.使用安装包,下载地址:https://getcomposer.org/Composer-Setup.exe

       b.正常安装

         I.DOS下转到你的PHP安装目录,然后运行代码下载composer.phar (如果下载失败,换成http再试试,螃蟹在win7测试木有问题)


C:\Users\username>cd C:\bin
C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
        II.运行下面的代码创建批处理文件,并放到环境变量



C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
        III.关闭DOS窗口,再重新打开,运行下面代码正常表示安装成功(螃蟹测试是木有问题的)



C:\Users\username>composer -V
Composer version 27d8904


    Linux下安装:


    这里螃蟹直接使用阿里云的Centos服务器来做说明

    I.下载composer.phar


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



    II.把composer.phar移动到环境下让其变成可执行



mv composer.phar /usr/local/bin/composer



    III.测试(螃蟹安装过程是正常的)



[root@************** ~]# composer -V
Composer version 73e9db5d9952d52a46ecbc20a269a8c5f9c5b0*1 2014-10-07 15:03:19




3.composer的基本使用?(高级)

    a.编写composer.json文件,是基本的json格式,格式是“提供者/项目名”:"项目版本",关于版本号有很多用法,参考官网

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}



    b.运行命令获取依赖包,这里我试试"driehle/php-crypt-md5": "2.0.*@dev"这个包,另一个包是用来测试多个包,config里面用来配置包下载文件夹


{  
    "require": {  
        "lorenzo/cakephp-email-queue": "dev-master",
	"driehle/php-crypt-md5": "2.0.*@dev"
    },  
    "config" : {  
        "vendor-dir" : "packages"  
    }  
}



H:\xampp\htdocs\testcomposer>php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing driehle/php-crypt-md5 (dev-master 2681d97)
    Cloning 2681d970ada81d08d1772af2d04274588b5d6825

Writing lock file
Generating autoload files



下载后,发现文件夹下面出现几个文件夹



其中packages为我们需要的依赖库,出现composer.lock就表示composer锁定,再运行更新或下载就无效了,要重新更改composer.json下载需删除lock文件

4.如何在项目中使用composer?(精通)

    这里螃蟹演示使用php-crypt-md5这个库,在composer里找的,用来加密的

    编写index.php

<?php 
include_once('./packages/autoload.php');
use Md5Crypt\Md5Crypt;

$cryptedpassword = Md5Crypt::unix   ("123456" ,"123");
$apachepassword  = Md5Crypt::apache ("123456" , "123");

echo $cryptedpassword;
echo '<br>';
echo $apachepassword;

?>



运行结果:


$1$123$7mft0jKnzzvAdU4t0unTG1
$apr1$123$LrxDL9PTEgT.C.VIeb/vh1



基本没问题了,螃蟹是基本参照官网的教程来做的,希望本次学习能让大家都会使用composer来进行依赖管理。


行走的螃蟹

行走的螃蟹

粉丝 32
博文 48
码字总数 23634
作品 0
杭州
程序员
私信 提问
加载中
此博客有 20 条评论,请先登录后再查看。
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
6
N简单CMS

N简单CMS能够让网站开发者更快速、灵活、简单的开发网站。 N简单CMS有以下特点: 更简单和自由的模板标签调用 专注于人性化的管理和操作 基于完全php5框架Kohana2.3.4开发 资源调用和消耗更低...

匿名
2013/02/26
3.1K
0
WebUI自动化测试框架--Dagger

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子...

ChenKan
2013/03/05
2.8W
6
创新团队的效率工具--TeamToy

TeamToy是什么? TeamToy是专为创新团队设计的效率工具,它以【事】为核心,带动整个团队进行有价值的交流。在设计上,TeamToy以简捷为目标,更适合于移动设备和触屏。 TeamToy和TODO工具有什...

Easychen
2013/01/05
1.4W
0

没有更多内容

加载失败,请刷新页面

加载更多

代理服务器和反向代理服务器之间有什么区别? - What's the difference between proxy server and reverse proxy server?

问题: 代理服务器和反向代理服务器有什么区别? 解决方案: 参考一: https://stackoom.com/question/wRc/代理服务器和反向代理服务器之间有什么区别 参考二: https://oldbug.net/q/wRc/W...

技术盛宴
25分钟前
16
0
第八讲:配置外界可以访问虚拟机里面的HDFS

本节通过配置实现外界访问虚拟机Centos6.4里面的HDFS。为后续的java读写HDFS做准备 步骤有: 1、修改主机Windos7的网络配置 2、修改虚拟机Centos6.4里面的网络配置 3、修改虚拟机Centos6.4里...

刘日辉
43分钟前
26
0
OSChina 周四乱弹 —— 不劳而获的饭好吃么?好吃!非常好吃!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《世界上不存在的歌 (2020重唱版)》- 陈奕迅 《世界上不存在的歌 (2020重唱版)》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
31
2
从 GPU、TPU,到 Web 端、移动端,深度学习框架部署训练开始变简单

本文作者:o****0 早些时候的统计显示,今年3月,深度学习框架集中爆发。5月,有人发布可以直接在 iphone11上训练神经网络的开源项目。日前,百度开源国内首个可直接运行在 Web 端的深度学习...

百度开发者中心
昨天
16
0
如何从Git存储库中删除文件? - How can I delete a file from a Git repository?

问题: I have added a file named "file1.txt" to a Git repository. 我已将名为"file1.txt"的文件添加到Git存储库中。 After that, I committed it, added a couple of directories called......

富含淀粉
今天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部