首頁 開發工具 composer Composer依賴管理(PHP利器)

Composer依賴管理(PHP利器)

Jan 26, 2020 pm 04:01 PM
composer

Composer依賴管理(PHP利器)

別再到處搜PHP類別擴充包了,對於現代語言而言,套件管理器基本上是標配。 Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。 PHP 的則是PEAR,不過PEAR 坑不少:

##● 依賴處理容易出問題

● 設定非常複雜

● 難用的命令列介面

好在我們有

Composer,PHP依賴管理的利器。它是開源的,使用起來也很簡單,提交自己的套件也很容易。

舉個例子,平常我們開始的時候如果不是用框架,想要一個驗證碼,就要先去Gihutb或者其他地方找一個驗證碼類,然後在專案中include一下,再編輯編輯就跑起來了,以至於到後期專案維護都可能會出現問題。在Github上開源的,那還能點個watch,看到有Bug修復或新版本發布,能及時跟著升級。

如果下載的擴充包多了,就需要各種include了,還有可能出現命名空間衝突的問題,又要根據專案去更改命名空間,如果擴充包升級了,又要重新下載編輯,這是十分不方便的。所以Composer依賴管理函式庫就這樣誕生了。

上面就是Compser比較重要的需求場景。

1.能方便安裝升級擴充包

2.只include就行,不用到處寫include

3.避免命名空間的衝突

平常都去Github、碼雲等平台上找擴充包,而現在也有一個網站把所有包綜合起來,也就說現在的開發方式:先在packagist上搜索,然後用Composer安裝升級。

安裝Composer

傻瓜式安裝的話就是直接點擊https://getcomposer.org/Composer-Setup.exe,下載安裝就行了,安裝程式將為你下載Composer並設定你的PATH環境變量,以便你可以簡單地Composer從任何目錄呼叫。

安裝的過程中需要注意的是要找到php.exe的根目錄,選擇正確的PHP路徑。這裡就不提供截圖了,因為我也沒下好,而且我也是手動安裝的。

選擇目錄應該是這樣的:

D:\phpStudy\php\php-7.0.12-nts\php.exe
登入後複製

 

下面還是著重介紹手動安裝的,我覺得這個方法十分好用:

先下載一個composer.phar文件,將phar文件放在developer資料​​夾中,這個你隨意,不限制放在哪個資料夾中。

然後開啟DOS窗口,或快速鍵windows R輸入cmd,使用以下指令,先進入到你放置phar檔案的目錄

D:\developer\composer>echo @php "%~dp0composer.phar" %*>composer.bat
登入後複製

安裝成功的標誌就是在命令列輸入

composer -v
登入後複製

顯示如下內容

Composer依賴管理(PHP利器)

 

看到這裡我就都當成Composer已經安裝成功了,在中國區域網路內,使用Composer是比較慢的,不過好在國內有鏡像,執行如下命令切換到國內的鏡像,國內鏡像所做的就是緩存所有安裝包和元數據到國內的機房並通過國內的CDN 進行加速,這樣就不必再去向國外的網站發起請求。

composer config -g repo.packagist composer https://packagist.phpcomposer.com
登入後複製

 

這樣做就相當於全域更改了配置,我選擇修改目前專案的composer.json 的設定檔:

{
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}
登入後複製

 

#composer常用指令

selfupdate<strong></strong>

更新composer 本身,請經常執行composer selfupdate 以保持Composer 一直是最新版本。

composer selfupdate
登入後複製

等價於

composer self-update
登入後複製

dumpautoload<strong></strong>

當我們更改了composer.json 檔案中的autoload 時,需要執行composer dumpautoload,來讓autoload 立即生效。而不必執行 install 或 update 指令。

composer dumpautoload
登入後複製

等價於

composer dump-autoload
登入後複製

dumpautoload 指令有兩個常用的選項:

--optimize (-o): 轉換PSR-0/4 autoloading 到 classmap ,以獲得更快的載入速度。這特別適用於生產環境,但可能需要一些時間來運行,因此它目前不是預設值。

--no-dev: 停用 autoload-dev 規則。

 

install

composer install
登入後複製

 

依據目前目錄下的composer.lock(鎖定檔案) 或composer.json 文件,所定義的依賴關係,安裝依賴套件。

install 指令會先檢查 composer.lock 鎖定檔案是否存在,如果存在,它將下載 composer.lock 檔案中指定的版本,而忽略 composer.json 檔案中的定義。

# 查看 composer install 的帮助信息
composer install -h
# 只安装 require 中定义的依赖,而不安装 require-dev 中定义的依赖
composer install --no-dev
登入後複製

update<strong></strong>

如果你想更新你的依賴版本,或是你修改了composer.json 中的依賴關係,想讓composer依照composer.json 檔案中的定義執行更新操作,就用update 指令。

composer update
登入後複製

 

require<strong></strong>

require 命令一般用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。

如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。

<strong>composer require</strong>

你也可以直接在命令中指明需要安装的依赖包。

composer require barryvdh/laravel-ide-helper
登入後複製

--dev 选项和 require-dev 相对应。如果你的依赖包仅仅用于开发环境,建议加上 --dev 选项。

composer require --dev barryvdh/laravel-ide-helper
登入後複製

<strong>create-project</strong>

你可以使用 create-project 从现有的包中创建一个新的项目。

它相当于执行了 git clone 命令后,将这个包的依赖安装到它自己的 vendor 目录。

此命令有几个常见的用途:

你可以快速的部署你的应用。

你可以检出任何资源包,并开发它的补丁。

多人开发项目,可以用它来加快应用的初始化。

# 安装 Laravel 项目
composer create-project --prefer-dist laravel/laravel blog 5.5.*
登入後複製

如果没有指定版本号,就默认安装最新的版本。

--prefer-dist: 当有可用的包时,从 dist 安装。

phpStudy集成环境下 安装composer失败

报错提示:

The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The "https://getcomposer.org/download/1.2.0/composer.phar.sig" file could not be downloaded: SSL: crypto enabling timeout
Failed to enable crypto
failed to open stream: operation failed
登入後複製

1、安装composer需要开启openssl拓展 而phpstudy默认是关闭的

2、将php目录下的ssleay32.dll,libeay32.dll以及php/ext文件夹下的:php_openssl.dll 3个文件拷贝到WINDOWS\system32 文件夹下。

3、openssl需要CA证书 phpstudy也是没有的

CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

选中之后单击右键选择另存为

下载成功之后放到tmp文件夹下面

4、然后修改php.ini文件

openssl.cafile = "D:\phpStudy\tmp\cacert.pem"
登入後複製

5、重启phpStudy就可以了报错提示:

failed to open stream: HTTP request failed!
登入後複製

1、检查一下php的curl拓展是否开启

2、检查这两个配置是否开启。

allow_url_fopen = On
user_agent="PHP"
登入後複製

 

也可以这样配置 user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")

模拟浏览器访问也是一个不错的选择

3、开启之后重启重启phpStudy就可以了

 

PS: openssl.cafile 配置选项, 是 PHP 5.6.0. 以上的版本才支持的

更多composer相关技术文章,请访问composer栏目:https://www.php.cn/tool/composer/

以上是Composer依賴管理(PHP利器)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 Apr 18, 2025 am 11:48 AM

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

解決 Craft CMS 中的緩存問題:使用 wiejeben/craft-laravel-mix 插件 解決 Craft CMS 中的緩存問題:使用 wiejeben/craft-laravel-mix 插件 Apr 18, 2025 am 09:24 AM

在使用CraftCMS開發網站時,常常會遇到資源文件緩存的問題,特別是當你頻繁更新CSS和JavaScript文件時,舊版本的文件可能仍然被瀏覽器緩存,導致用戶無法及時看到最新的更改。這個問題不僅影響用戶體驗,還會增加開發和調試的難度。最近,我在項目中遇到了類似的困擾,經過一番探索,我找到了wiejeben/craft-laravel-mix這個插件,它完美地解決了我的緩存問題。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

laravel怎麼查看版本號 laravel查看版本號方法 laravel怎麼查看版本號 laravel查看版本號方法 Apr 18, 2025 pm 01:00 PM

Laravel框架內置了多種方法來方便地查看其版本號,滿足開發者的不同需求。本文將探討這些方法,包括使用Composer命令行工具、訪問.env文件或通過PHP代碼獲取版本信息。這些方法對於維護和管理Laravel應用程序的版本控制至關重要。

解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 Apr 18, 2025 am 08:42 AM

在使用Thelia開發電商網站時,我遇到了一個棘手的問題:MySQL模式設置不當,導致某些功能無法正常運行。經過一番探索,我找到了一個名為TheliaMySQLModesChecker的模塊,它能夠自動修復Thelia所需的MySQL模式,徹底解決了我的困擾。

使用DICR/YII2-Google將Google API集成在YII2中 使用DICR/YII2-Google將Google API集成在YII2中 Apr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹餾標д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

如何使用 Composer 簡化郵件營銷:DUWA.io 的應用實踐 如何使用 Composer 簡化郵件營銷:DUWA.io 的應用實踐 Apr 18, 2025 am 11:27 AM

在進行郵件營銷活動時,我遇到了一個棘手的問題:如何高效地創建並發送HTML格式的郵件。傳統的方法是手動編寫代碼並使用SMTP服務器發送郵件,但這不僅耗時,而且容易出錯。在嘗試了多種解決方案後,我發現了DUWA.io,這是一個簡單易用的RESTAPI,能夠幫助我快速創建和發送HTML郵件。為了進一步簡化開發流程,我決定使用Composer來安裝和管理DUWA.io的PHP庫——captaindoe/duwa。

See all articles