热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPComposer是什么技术?一起看看

Composer是PHP的一个依赖管理工具,它能管理你的PHP项目所需要的所有依赖关系。也就是说,Composer会将你的PHP项目需要的所有代码库、依赖项从网上全部拉取下来,放到一起进行管理。

PHP Composer 是什么技术?

如果你是个程序员,很可能你会发现技术更新的轮子转得让你跟不上,比如用户认证、数据库管理、路由等技术。PHP里有很多很成熟的框架来处理这些问题,于是你会认为这些框架使用起来应该很容易,不是吗?

如果你现在手动的安装使用 Zend, 或 Laravel 或 Symfony,你会发现并不是一件容易的事情,每种技术都有自己的各种依赖包,于是最终事情搞得的一团糟。

这个时候 Composer 的作用就出现了。Composer 是PHP的一个依赖管理工具。它能管理你的PHP项目所需要的所有依赖关系。也就是说,Composer 会将你的PHP项目需要的所有代码库、依赖项从网上全部拉取下来,放到一起进行管理。

这种针对项目的依赖管理方式并不是一种新的概念,事实上,Composer 是受到了 npm 之 Node.js 和 Bundler 之 Ruby 的启发。

相信你应该对 PEAR 有所了解。PEAR 是一种很多年前就有的 PHP 库管理工具。然而,很多程序员并不喜欢使用 PEAR,有很多原因,首先,它过时了,其次,PEAR 要求你安装整个系统,而不是根据每个项目来安装。也就是说,如果你有一个项目对一个稍微有点旧的库有依赖,事情就麻烦了。要想了解更多的关于PHP包管理工具的历史,可以去阅读 Packages: The Way Forward for PHP 这篇文章。

如何安装 Composer

Composer 的安装十分简单,几行命令就能完成。我使用OS X,但对于任何的 *nix 系统而言都是一样的。

请打开命令行窗口,运行下面的命令:

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

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

第一行命令是将 composer.phar 文件下载到你的电脑里。第二行命令是将 composer.phar 文件移动到你的bin目录里,这样你就可以在计算机里全局访问它。

现在运行下面这个命令:

$ composer

如果你成功了安装了 Composer ,这个命令会返回给你一个有效的命令参数清单,以及使用描述。

如何在Windows上安装 Composer

如果你想在Windows系统里安装Composer,可以在官方网站上寻找安装方法,http://getcomposer.org/。

如何使用 Composer?

现在,Composer已经安装到我们的电脑里了,我们可以开始用它导入项目中需要的代码库了。Composer需要一个配置文件,是一个JSON文件,我们把它放到项目的根目录里。

比如,如果我们要使用Slim Framework,可以创建下面的 composer.json 文件:

{  
"require": {  
"slim/slim": "2.*"  
}  
}  
想通过Composer安装 Slim,你只需要简单的使用下面的命令:
 $ composer install

现在Slim会自动的下载下来,并且安装到 vendor/slim/slim 目录下。

是不是很简单!

自动加载

现在,假设你的项目依赖很多不同的代码库,你希望能够自动的加载这些库。幸运的是,Composer 里有一个能够执行这种任务的文件,它能够把你的项目所有依赖的库都自动的下载到项目里。

想要使用 Composer 的自动加载器,只需要在相对的index文件或启动文件里include一行:

 require ‘vendor/autoload.php’;

这样一来,在项目里添加新的依赖包时就不用担心了。

例如:

// Autoload  
require ‘vendor/autoload.php’;
// 实例或 Slim 应用  
$app = new \Slim\Slim();
// 定义 HTTP GET 路径 
$app->get(‘/hello/:name’, function ($name) {  
echo "Hello, $name";  
});
// 运行 Slim 应用  
$app->run();

结论

在PHP项目里使用包管理工具是正确的方向。像Ruby这样的编程语言已经向我们展示了在项目里使用依赖关系管理工具的方便,节省了大量开发者的开发配置时间。

大量的流行框架也开始引用 Composer,有更多的开发者在自己的项目里使用 Composer。

作为一个PHP开发者,Composer 会是你的最佳拍档,随着使用率的增加,Composer必将成为PHP的基础库。

随着像Composer这样的好工具的增加,PHP也会变得越来越好用。Composer已经为PHP社区解决了很多大问题,我们没有理由还拒绝去使用它。

推荐教程:《php视频教程》

以上就是PHP Composer是什么技术?一起看看的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 在树莓派Ubuntu(ARM64)上安装Node.js
    本文详细介绍了如何在树莓派Ubuntu系统(ARM64架构)上安装Node.js,包括下载、解压、移动文件以及创建软链接等步骤。 ... [详细]
  • Node.js 入门指南(一)
    本文介绍了Node.js的安装步骤、如何创建第一个应用程序、NPM的基本使用以及处理回调函数的方法。通过实际操作示例,帮助初学者快速掌握Node.js的基础知识。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文介绍如何在PostgreSQL数据库中正确插入和处理JSON数据类型,确保数据完整性和避免常见错误。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • Node.js 中 GET 和 POST 请求的数据处理
    本文详细介绍了如何在 Node.js 中使用 GET 和 POST 方法来处理客户端发送的数据。通过示例代码展示了如何解析 URL 参数和表单数据,并提供了完整的实现步骤。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
  • 本文介绍了如何使用外向烧鹅IO库来封装GET请求的具体步骤,包括库的安装与配置、请求拦截器的设置以及如何在Vue项目中调用这些封装好的请求方法。 ... [详细]
author-avatar
雪恝1988_757
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有