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

Composer依賴管理(PHP利器)

藏色散人
藏色散人轉載
2020-01-26 16:01:354223瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除