php教程 php手册 Composer帮你轻松管理PHP包

Composer帮你轻松管理PHP包

Jun 06, 2016 pm 07:59 PM
composer php 패키지 관리 관리하다 쉬운

在PHP包管理上面,PHP发展的很缓慢,导致的结果就是很少发现程序员会使用像PEAR这样的工具。相反,大多数开发人员会选择他们自己喜欢的框架来处理代码,比如DB交互、ORIMS、Oauth、Amazon S3整合等。 缺点就是在转换框架的时候(或者根本不需要返回使用框架

在PHP包管理上面,PHP发展的很缓慢,导致的结果就是很少发现程序员会使用像PEAR这样的工具。相反,大多数开发人员会选择他们自己喜欢的框架来处理代码,比如DB交互、ORIM’S、Oauth、Amazon S3整合等。

缺点就是在转换框架的时候(或者根本不需要返回使用框架)就感觉像在做噩梦,因为涉及到使用新工具,你必须重新学习里面的一切东西,而这并不简单。OK,Composer来帮助你解决这些问题。

介绍

Composer通过把自己定位成“所有项目的粘合计”来着手解决问题。这也就意味着包可以被写,开发和以某种格式进行共享,其他开发人员可以轻松插入到应用程序中。

Composer帮你轻松管理PHP包

这篇文章将向大家讲解如何安装和使用Composer包。在文章最后,你就可以把代码块插入到任何一个框架中进行体验,你可以使用CodeIgniterFuelPHPLaravelSymfony2, LithiumYiiZend等。

安装

Composer包含两大逻辑部分:一个是用来存储包,另一个是命令行应用程序,帮助你发现、下载、更新和分享代码。

<ol>
<li><span><span>$ cd/path/to/my/project  </span></span></li>
<li>
<span>$ curl -s http:</span><span>//getcomposer.org/installer| php</span><span> </span>
</li>
</ol>
로그인 후 복사

在项目列表中,会有一个composer.phar文件,里面包含了所有逻辑代码行工具。你可以通过运行下面代码来确定是否安装成功。

<ol><li><span><span>$ php composer.phar </span></span></li></ol>
로그인 후 복사

这个命令执行后会显示所有可用的命令。

我个人比较建议大家使用这个命令:

<ol><li><span><span>$ sudo mv composer.phar /usr/bin/composer </span></span></li></ol>
로그인 후 복사

把这个文件移到bin目录下,它允许你简化命令。

<ol><li><span><span>$ composer about </span></span></li></ol>
로그인 후 복사

如果你是在Windows上运行,你可以下载这个文件,然后通过PHP解析器安装,无论在哪里都可以。

解析composer.json文件

如果你是一名Ruby程序员,你会觉得这个文件跟Gemfile文件很相似,或者你是一个Node程序员,那么会觉得和package.json文件很像。同样,Composer会根据你的应用需求用composer.json文件来指定设置和封装。

在大多数基本的form里面,composer文件看起来是这样的:

<ol>
<li><span><span>{  </span></span></li>
<li><span>    "require": {  </span></li>
<li><span>        "kriswallsmith/assetic": "*"  </span></li>
<li><span>    }  </span></li>
<li><span>} </span></li>
</ol>
로그인 후 복사

意思是需要一个“assetic”包,通过“kriswallsmith”创建和指定任意一个版本。你也可以指定一个特殊的版本,你可以使用下面命令代替:

<ol><li><span><span>"kriswallsmith/assetic": "1.0.3" </span></span></li></ol>
로그인 후 복사

你甚至还可以使用这种方法:

<ol><li><span><span>"kriswallsmith/assetic": "1.0.*" </span></span></li></ol>
로그인 후 복사

这个有一些微小的变化,但是他不会升级到1.1.0,程序员需要注意界面上细微的变化。

安装要求

现在,在你的composer.json文件下面会有一个或多个包,这个时候可以运行:

<ol><li><span><span>$ php composer.phar install </span></span></li></ol>
로그인 후 복사

或者,如果你听了我的建议,你只需要在Unix机器上面运行:

<ol><li><span><span>$ composer install </span></span></li></ol>
로그인 후 복사

你会发现,正在下载文件并且会放在应用程序根目录下面的vendors文件夹里面。这个逻辑也可以使用下面的配置:

<ol>
<li><span><span>{  </span></span></li>
<li><span>    "require": {  </span></li>
<li><span>        "kriswallsmith/assetic": "1.0.*"  </span></li>
<li><span>    },  </span></li>
<li><span>    "config" : {  </span></li>
<li><span>        "vendor-dir" : "packages"  </span></li>
<li><span>    }  </span></li>
<li><span>} </span></li>
</ol>
로그인 후 복사

自动加载

自动加载在PHP里面有一点乱糟糟的,作为开发人员,他们有属于自己操作方式。比如Smarty包,使用自己的自动载入。有一些开发人员会把多个类放到一个文件里面,或者文件名小写,这些做法都太随意啦!

Composer帮你轻松管理PHP包

PHP官方社区创建了PSR-0标准,从而来规范这些随意的做法。Composer默认支持这个标准。Composer里面自带PSR-0自动加载机制,在项目里面加入下面一行代码:

<ol><li><span><span>include_once './vendor/autoload.php'; </span></span></li></ol>
로그인 후 복사

显然,如果autoload.php文件目录有变化,你也需要在代码里面做出相应改动。

下面,你可以在应用程序中使用如下代码:

<ol>
<li><span><span></span><span>php</span><span>   </span></span></li>
<li><span>use Assetic\Asset\AssetCollection;  </span></li>
<li><span>use Assetic\Asset\FileAsset;  </span></li>
<li><span>use Assetic\Asset\GlobAsset;  </span></li>
<li>
<span>$</span><span>js</span><span> = </span><span>new</span><span> AssetCollection(array(  </span>
</li>
<li><span>    new GlobAsset('/path/to/js/*'),  </span></li>
<li><span>    new FileAsset('/path/to/another.js'),  </span></li>
<li><span>));  </span></li>
<li><span>   </span></li>
<li><span>// the code is merged when the asset is dumped  </span></li>
<li>
<span>echo $js-</span><span>></span><span>dump();  </span>
</li>
</ol>
로그인 후 복사

这是一个使用Assetic的例子,当然,这里也有许多命名空间代码,但是这样做是为了避免包之间互相冲突。

PSR-0的命名惯例本质是:

<ol><li><span><span>\</span><span><span>Vendor</span><span> Name</span><span>></span><span>\(</span><span><span>Namespace</span><span>></span><span>\)*</span><span><span>Class</span><span> Name</span><span>></span><span> </span></span></span></span></span></li></ol>
로그인 후 복사

下面这个例子是Buzz HTTP包:

<ol>
<li><span><span>$</span><span>browser</span><span> = </span><span>new</span><span> Buzz\Browser;  </span></span></li>
<li>
<span>$</span><span>response</span><span> = $browser-</span><span>></span><span>get('http://www.google.com');  </span>
</li>
<li>
<span>echo $browser-</span><span>></span><span>getLastRequest()."\n";  </span>
</li>
<li><span>echo $response;  </span></li>
</ol>
로그인 후 복사

看起来像是被美化的file_get_contents(),但是它处理所有类型的智能逻辑,并且在后台处理HTTP Response/Request,你也会发现命名空间语法也不是那么的强烈。

真实的世界

目前,大多数PHP存储依靠主代码库。如果你使用Facebook SDK,例如,你仅仅从GitHub或者zip文件中通过复制粘贴的方式把版本推到你的代码中,然后把它放到你的版本控制系统里面,将会变更。

版本和你的代码只是作为静态文件放在里面,在某种意义上,你可能会忘记升级,如果你关注到Facebook已经发布了一个新版本。最新版本文件会显示在最上面。

使用Composer就无需关注版本变化情况,你只需运行一下更新,那么所有需要更新的都会自动更新。但是为什么还会有大量的代码在你的仓库里呢?你不需要它们在那里吗?

最干脆的做法是添加vendors到你的“Ignore”列表里面(例如gitignore)并且让你的代码完全离开那里。当你在部署代码的时候,你只需运行composer install或者composer update。

如果你想使用更熟练,你可以手动运行整个过程,如果你有云端托管你可以设置hooks,一旦代码发布,就运行。

总结

将来,你将会看到更多的Composer,各种丰富多彩的框架已经开始提供了多种层次的集成。FuelPHP将构建Composer包,CodeIgniter提供自动加载并且已经在Symfony2上广泛使用。

使用Composer添加相关包到你的项目里面是一个很好的方式,无需安装PECLI扩展或者复制粘贴一个系列文件。那种方式已经很过时了,并且还浪费你大量的时间。(编译:张红月)

market@csdn.net 


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Composer를 사용하여 권장 시스템의 딜레마를 해결하십시오 : Andres-Montanez/권장 사항-펀들 Composer를 사용하여 권장 시스템의 딜레마를 해결하십시오 : Andres-Montanez/권장 사항-펀들 Apr 18, 2025 am 11:48 AM

전자 상거래 웹 사이트를 개발할 때 어려운 문제가 발생했습니다. 사용자에게 개인화 된 제품 권장 사항을 제공하는 방법. 처음에는 간단한 권장 알고리즘을 시도했지만 결과는 이상적이지 않았으며 사용자 만족도에도 영향을 미쳤습니다. 추천 시스템의 정확성과 효율성을 향상시키기 위해보다 전문적인 솔루션을 채택하기로 결정했습니다. 마지막으로 Composer를 통해 Andres-Montanez/Residations-Bundle을 설치하여 문제를 해결했을뿐만 아니라 추천 시스템의 성능을 크게 향상 시켰습니다. 다음 주소를 통해 작곡가를 배울 수 있습니다.

LARAVEL 소개 예 LARAVEL 소개 예 Apr 18, 2025 pm 12:45 PM

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

PHP의 지속적인 사용 : 지구력의 이유 PHP의 지속적인 사용 : 지구력의 이유 Apr 19, 2025 am 12:23 AM

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.

Laravel 프레임 워크 설치 방법 Laravel 프레임 워크 설치 방법 Apr 18, 2025 pm 12:54 PM

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

Laravel의 버전 번호를 보는 방법은 무엇입니까? Laravel의 버전 번호를 보는 방법 Laravel의 버전 번호를 보는 방법은 무엇입니까? Laravel의 버전 번호를 보는 방법 Apr 18, 2025 pm 01:00 PM

Laravel 프레임 워크에는 개발자의 다양한 요구를 충족시키기 위해 버전 번호를 쉽게 볼 수있는 내장 방법이 있습니다. 이 기사는 Composer Command Line 도구 사용, .env 파일에 액세스하거나 PHP 코드를 통해 버전 정보를 얻는 것을 포함하여 이러한 방법을 탐색합니다. 이러한 방법은 Laravel 애플리케이션의 버전 관리를 유지 관리하고 관리하는 데 필수적입니다.

DICR/YII2-Google을 사용하여 YII2에서 Google API를 통합합니다 DICR/YII2-Google을 사용하여 YII2에서 Google API를 통합합니다 Apr 18, 2025 am 11:54 AM

vprocesserazrabotkiveb-enclosed, мнепришлостольносться악 · 뇨 зейейерациигоглапи혁 맥발 추배. LeavallysumballancefriAblancefaumdoMatification, čtookazalovnetakprosto, Kakaožidal.posenesko

작곡가로 이메일 마케팅을 단순화하는 방법 : duwa.io의 응용 프로그램 관행 작곡가로 이메일 마케팅을 단순화하는 방법 : duwa.io의 응용 프로그램 관행 Apr 18, 2025 am 11:27 AM

메일 마케팅 캠페인을 할 때 까다로운 문제가 있습니다. HTML 형식으로 효율적으로 메일을 작성하고 보내는 방법. 기존의 접근 방식은 수동으로 코드를 작성하고 SMTP 서버를 사용하여 이메일을 보내는 것이지만 이는 시간이 많이 걸릴뿐만 아니라 오류가 발생하기 쉽습니다. 여러 솔루션을 시도한 후 HTML 메일을 신속하게 만들고 보내는 데 도움이되는 간단하고 사용하기 쉬운 RESTAPI 인 Duwa.io를 발견했습니다. 개발 프로세스를 더욱 단순화하기 위해 작곡가를 사용하여 duwa.io의 PHP 라이브러리 인 CaptainDoe/Duwa를 설치하고 관리하기로 결정했습니다.

laravel8 최적화 지점 laravel8 최적화 지점 Apr 18, 2025 pm 12:24 PM

Laravel 8은 성능 최적화를위한 다음 옵션을 제공합니다. 캐시 구성 : Redis를 사용하여 캐시 드라이버, 캐시 포스, 캐시보기 및 페이지 스 니펫을 사용하십시오. 데이터베이스 최적화 : 인덱싱을 설정하고 쿼리 범위를 사용하며 웅변적인 관계를 사용합니다. JavaScript 및 CSS 최적화 : 버전 제어, 병합 및 수축 자산을 사용하고 CDN을 사용하십시오. 코드 최적화 : 작곡가 설치 패키지를 사용하고 Laravel 도우미 기능을 사용하고 PSR 표준을 따르십시오. 모니터링 및 분석 : Laravel Scout을 사용하고 망원경을 사용하고 애플리케이션 메트릭을 모니터링하십시오.

See all articles