1. 程式人生 > >composer的使用以及安裝

composer的使用以及安裝

net pyw com post ace 創建 repos 很慢 with

composer是一個php類庫管理工具,一聽工具,那麽肯定需要安裝呢,所以下面我們看一下composer如何安裝.

composer的安裝

怎麽樣安裝呢?不要著急,安裝composer呢我們需要準備一些東西.
首先,composer的使用有一定的要求.
1,php的環境變量的配置,需要在cmd命令行中去調用.
2,php的版本要求,需要>=5.5.9,配置好環境變量,在命令行中運行php -v命令就可以查看
3,需要三個擴展 openssl,mbstring,pdo,怎麽去開啟和編譯這三個擴展呢,so easy 打開我們的php目錄,找到php.ini文件,在裏面搜索如openssl,正常情況是:


~~~~~~~~~~~
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
~~~~~~~~~

前面有個分號,把分號去掉即可

好了,準備工作已經準備好,下面呢我安裝composer

window下安裝

1,在線安裝,不管我們安裝什麽東西,都需要把它的安裝包,給準備好,同樣的composer也是這樣,我們可以直接去百度搜索composer 進入它的官網,或者國內的鏡像中,可能是這樣的一個東西:
技術分享
直接雙擊它,一路next就ok了;
但是註意,我們這樣安裝可能會失敗,因為在中間回去composer官網,去下載兩個文件,composer.bat,composer.phar但這個網站是國外的,可能會訪問失敗,那下載不成怎麽辦呢?

2,離線安裝
我們可以去手動的去網上下載好這兩個文件,
1. 按要求打開PHP的相關擴展:openssl.dll , mbstring.dll ,及PDO
2. 把php.exe所在目錄的路徑,加入環境變量,保證隨處可以cmd下調用php命令.
3. 把這兩個文件給放到 php.exe

的同級目錄下就ok了

打開命令行中,運行composer -v即可,出現以下界面說明安裝成功

技術分享

但是並沒有完事,因為composer官網是在國外,所以我們下載東西呢,速度會很慢
但是在國內有composer的鏡像,我們需要修改成國內的鏡像,僅僅是提高下載速度,如下:

composer config -g repositories.packagist composer https://packagist.phpcomposer.com

composer的使用 引入類庫

那麽我們在之前呢,了解到composer是php類庫管理工具,主要是為項目引入類庫使用,怎麽引入呢?
如:我在做一個blog項目,現在需要用一個smarty組件,首先,我們去http:://packagist.org上去搜索smarty的信息,然後我們需要到blog項目根目錄創建一個composer.json的文件,然後把smarty組件的信息,給寫入,註意是json格式,如下:

{
    "require":{
        "smarty/smarty":"3.1.30"
    }
}

json文件寫好之後,我們需要在cmd中來到項目的額根目錄,運行composer install這個命令
會出現以下這種結果

D:\xampp\htdocs\myphp\blog>composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing smarty/smarty (v3.1.30)
Downloading: 100%
Writing lock file
Generating autoload files

完成之後,那麽來到項目的文件夾下,多出一個vendor的目錄,並且vendor目錄下也有一個smarty的文件夾.
在這裏可能會有疑問,在json文件中的寫個格式是什麽意思,以smarty為例,smarty/smarty前面的代表一個公司,後者是代表這個公司開發的這個類庫

{
    "require":{
        "廠商/類庫名字":"版本號"
    }
}

添加類庫

一個項目不可能就需要一個類庫,所以如何去添加類庫,比如需要一個phpmailer的類庫,同樣的我們還是需要到http://packagist.org這個網站上,找到phpmailer這個類庫的信息和版本
接下來到composer.json文件中去添加信息,如下:

{
    "require":{
        "smarty/smarty":"3.1.30",
        "phpmailer/phpmailer":"5.2.16"
    }
}

然後同樣的需要到項目根目錄下,執行composer install可能會有以下錯誤

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json

但是不要著急,我們去讀,它的意思呢是json文件中的文件版本較新,而lock文件中的這個類庫版本較舊,你可以去執行以下update
我們在次去執行 composer update我們發現回到正常的下載頁面,然後在去項目文件加下的vendor目錄,發現也多出一個phpmailer的文件夾,說明我們添加類庫成功,那麽既然有添加類庫就有卸載

卸載類庫

比如我們需要把沒有用到的類庫去卸載掉,怎麽弄呢,如卸載phpmailer的類庫

只需要執行一條命令即可 composer remove phpmailer/phpmailer
成功後,查看你的json文件中的phpmailer的信息沒有了,同樣的vendor目錄下也沒有了phpmailer的文件夾,說明已經卸載成功

不配置json文件添加類庫

如果我們需要的類庫比較多,那麽一個一個去composer.json文件中去添加麽,不用的
可以執行命令composer require 廠商/類庫=版本號

如,引入phpmailer composer require phpmailer/phpmailer="5.2.16"
在去看我們的json文件,多出一條phpmailer的信息,並且vendor目錄下,也多出一個phpmailer的文件夾

如何加載引入類庫

我們用composer把類庫給引入,但是們怎麽去調用呢,難道一個個去手動引入麽,是不用的,我們註意觀察vendor目錄下有一個autoload.php這樣的一個自動加載文件
我只需要引入這個自動加載的文件,我就可以調用任意你引入的類庫,如smarty這個類庫

require(__DIR__.‘/vendor/autoload.php‘);

print_r(new Smarty());

創建項目

我們composer是引入類庫使用,那麽類庫供項目使用,能否用composer創建項目呢?

我們知道的有的框架和composer使用,我們用composer創建項目,會直接把框架依賴的類庫全部下載下來,省時間,怎麽創建呢?以laravel為例
執行命令
composer create-project laravel/laravel=5.1.33
如:
技術分享

下載下來之後,到你的項目根目錄會發現一個完整的框架,直接可以調用,這就是composer的如何去使用,謝謝大家!!!

composer的使用以及安裝