Composer是幹嘛的,怎麼用它。(1) 安裝
前言:
隨著開源的東西越來越多,一些好的程式碼我們是可以直接拿過來用的,github更是加快了這一節奏,在github上我們可以看到一些開源的專案、程式碼塊、函式庫、類結構等,我們可以直接Fork,然後用在我們自己的專案中,既高效又方便。nodejs 出現後,更是一大批開源的好東西被我們使用,npm就是nodejs中蠻好用的包管理軟體,我們可以用npm 命令複製其他人的一些好的專案,用起來很爽。但是,php中貌似還沒有這樣類似的包管理工具,我們發現別人的程式碼,還是停留在手工階段,手工將其他人的程式碼copy到自己的專案中,有更新我們同樣靠手工copy檔案。於是composer應運而生了。
1、composer是什麼?
2、 composer 的安裝
composer是一款軟體,當然也需要安裝。它支援多平臺,我們將在window和centos 上安裝它。2.1 wondows 安裝
首先官網下載:https://getcomposer.org/Composer-Setup.exe 。很小。1M都沒有。這個連結永遠是最新版本的。下載好了後。就是各種下一步下一步安裝了,到這一步,需要填入php.ini的所在目錄,記住wamp這類的安裝包會有2個php.ini檔案。不要填apache的目錄所在php.ini。需要填入php目錄下的這個配置檔案。這樣安裝完成了。很爽。
2.2 安裝的時候可能會出現以下出錯:
1. The openssl extension is missing, which will reduce the security and stability of Composer. If possible you should enable it or recompile php with --with-openssl"
意思是說php沒有開啟openssl配置。我們開啟php目錄下的php.ini。將openssl前面的分號去掉就可以了:
2. 提示php的版本太低,composer支援5.3+的版本。如果你是5.3-的話就只能去升級一下php的版本了。
接下來我們驗證一下安裝成功了沒?開啟cmd。win+r 快捷鍵開啟cmd命令對話方塊,輸入composer:
說明安裝成功了。恭喜。
windows的版本安裝,相對於比較簡單很方便,其實呢,它替我們做了很多事。
1. 幫我們把php和composer這2命令給加到了系統環境變數。這樣我們能全域性只直接使用這2個命令:
我們在安裝的時候可以看到:
我們開啟系統的環境變數看看,是否添加了:
2. 幫我們把php composer.phar命令簡化成composer命令了。很爽:
2.3 linux上的安裝
linux上的安裝其實說簡單也跟簡單,官網上有很多種安裝方式,我們知道第一種就可以了,也是最快的。curl -s http://getcomposer.org/installer | php
2.4 錯誤提示
1. 如果出現-bash: php: command not found 錯誤提示,說明php是原始碼安裝的,php這個命令沒有加入到系統環境。我們在上一步安裝windows版本的時候,軟體已經幫自動我們幫把php命令加入了系統環境path路徑。
linux下如何把php加入系統環境呢,很簡單:
修改/etc/profile檔案使其永久性生效,並對所有系統使用者生效,在檔案末尾加上如下兩行程式碼
PATH=$PATH:/usr/local/php5/bin
export PATH
最後:執行 命令source /etc/profile或 執行點命令 ./profile使其修改生效,執行完可通過echo $PATH命令檢視是否新增成功。
2. 如果提示:
#!/usr/bin/env php
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl
也是一樣,php的openssl沒有安裝,需要進入php原始碼重新編譯,我這裡簡單記錄下如何新增php的openssl擴充套件:
1. 因為我是原始碼方式安裝的php,所以需要重新編譯,這點比windows上蛋疼的多。進入php的原始碼包,如果刪除了的,需要重新下載這個對應的版本:
[[email protected] ~]# cd /lamp/php-5.4.11/ext/openssl/
[[email protected] openssl]#
2. 用phpize新增配置編譯:
#openssl目錄下有個config.w32和config0.m4,把config0.m4改名為config.m4(不清楚什麼原因,必須這麼改,很重要!!!)
[[email protected] openssl]# cp config0.m4 config.m4
[[email protected] openssl]# /usr/local/php/bin/phpize #使用phpize命令動態新增配置
[[email protected] openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config #編譯
[[email protected] openssl]# make
[[email protected] openssl]# make test
[[email protected] openssl]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
注意:如果configure這一步出錯:configure: error: libssl not found!。可能是系統沒安裝openssl擴充套件,可以:yum -y install openssl-devel 安裝。
3. 修改php.ini ,把剛才編譯好的openssl.so新增進去:
[[email protected] no-debug-zts-20100525]# vi /usr/local/php/etc/php.ini
#GG 定位到最小面,加入這一行:
extension=openssl.so
搞定,由於我們使用php,並沒有用到apache。所以可以不用重啟apache伺服器。
安裝好了後,我們驗證下是否正確安裝:
$ php composer.phar #執行
3、 composer的使用
我們在正確成功安裝好composer之後,就可以使用這個利器了。不管是windows版本還是linux版本使用命令方式都一樣:php composer.phar + 命令
我們剛才安裝的windows版本直接可以使用composer 命令,前面說了,其實也是php composer.phar這2個的組合。 新的問題出來了。就是我們每次要去新下載一個其他人的專案,我們都必須要到在新專案的目錄下重新下載一次composer.phar檔案或者是這樣:[[email protected] /]# php /home/test/composer.phar 相對路徑讀取到composer。能不能也把composer.phar像php命令這樣搞成一個全域性的。直接用 composer該多好啊!
[[email protected] /]# cd /usr/local/composer/
[[email protected] composer]# cp composer.phar /usr/bin/composer
搞定,這樣就能和windows一樣,全域性使用composer命令了。 由於csdn的蛋疼的文件格式,已經讓我的處女病發作了,再寫下去整個排版都無法直視了。所以,下一篇來講composer的具體使用。
相關推薦
Composer是幹嘛的,怎麼用它。(1) 安裝
前言: 隨著開源的東西越來越多,一些好的程式碼我們是可以直接拿過來用的,github更是加快了這一節奏,在github上我們可以看到一些開源的專案、程式碼塊、函式庫、類結構等,我們可以直接Fork,然後用在我們自己的專案中,既高效又方便。nodejs 出現後,更是一大批開源
F() 表示式,這裡的F我理解是fast的意思,用它能節省讀寫資料庫的時間,在資料庫sql語言層面對欄位進行自增(+= 1)操作
1、F() 表示式,F我理解是fast的意思,用它能節省讀寫資料庫的時間,在資料庫sql語言層面對欄位進行自增(+= 1)操作,在Query Expressions章節介紹,這章沒讀過,趕緊收藏。 https://docs.djangoproject.com/en/2.1/ref/models/
編寫一個ArrayList類,用來儲存1到10之間的數,打亂順序後輸出,按從小到大輸出,按從大到小輸出。
/** * Created by whp on 2018/7/30. */ public class Test { public static void main(String[] args) { List list = new ArrayList();
不用再打渠道包了,用它就可以快速統計多個渠道!
使用Shareinstall的免打包渠道統計技術,可以實現只上傳一個APK安裝包,以直接向各個渠道分配渠道連結(二維碼)的方式實現多渠道統計,完全不用再麻煩技術的同事幫忙打包,直接由渠道業務管理的同事操作生成渠道連結即可。 稍微介紹一下,Shareinstall其實是一個APP的推廣輔助
來自語義資訊理論的多標籤分類方法——有簡單方法幹嘛要用複雜的?
流行的多標籤分類方法大多把多分類化為多個二分類。流行的有One-to-Rest方法和Binary Relevance方法。 One-to-Rest方法的問題是, 圍繞一個標籤y1分類, 把一個沒有y的例子當成y1的反例, 這時不對的。 比如兩個例子(25歲, “年輕人”)和
在Excel2003中,用A表示第1列,B表示第2列。。。Z表示第26列,AA表示第27列,AB表示第28列。。。以此類推。請寫出一個函式,輸入用字母表示的列號編碼,輸出它是第幾列
這道題其實就是26進位制字串轉十進位制的題,由於A到Z在ASCii中是連續的 補充知識點: 在ASCII碼中,我們要記住幾個關鍵的字元! 0:48 A:65 a:97 (1)數字在前,大寫字母其後,最後是小寫字母。 (2)小寫字母和大寫字母差32。 下面是簡單的模擬過程
【程序5】 題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
window code 例子 prompt 利用 學習 amp text span if…else語句相對比較多,但是容易理解 1 var scroe = window.prompt("請輸入1-100之間的數") 2 scroe = parseInt
有1千萬條有重復的短信,以文本文件的形式保存,一行一條,也有重復,用5分鐘時間找出重復出現最多的前10條短信。
ascii碼 宋體 哈希表 文本 深度 pan 進行 span 二次 1,哈希表法 分成若幹組,進行掃描。相同記錄只加1次,重復次數加1,之後進行第二次掃描,得出重復次數的前十名。 2,從小到大排序(我覺得最好不用這種方法,準確性不高) 3,內存映射(建議) 對每條
Java學習——方法中傳遞參數分簡單類型與復雜類型(引用類型)編程計算100+98+96+。。。+4+2+1的值,用遞歸方法實現
dig oid 傳遞 system alt style 類型 遞歸 gen package hello; public class digui { public static void main(String[] args) { /
用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。
問題 用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。 要求:中斷觸發方式為下降沿觸發,按鍵有消抖功能 模擬 程式碼 #include <
一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞迴演算法實現。//斐波那契數列
1 public class MainClass 2 { 3 public static void Main() 4 { 5 Console.WriteLine(Foo(30)); 6 } 7 public static int Foo(int i) 8 {
一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞歸算法實現。//斐波那契數列
write pub else ole 位數 return spa sta ati 1 public class MainClass 2 { 3 public static void Main() 4 { 5 Console.WriteLine(F
int.TryParse是幹嘛的,怎麼用
為什麼現在改用int.TryParse了 以前一直用 int.Parse(x)或者 Convert.ToInt64(x),後來專案中發現如果x變數的值為null是,就報錯了,哪怕我這樣寫 int.Parse(x=x??"0") 意思是:"如果x為空,就給x賦值‘0’ 字串
習題 11.1 將例11.1的程式片斷補充和改寫成一個完整、正確的程式,用公用繼承方式。在程式中應包括輸入資料的函式,在程式執行時輸入num,name,sex,age,addr的值,程式應輸出以上。。
C++程式設計(第三版) 譚浩強 習題11.1 個人設計 習題 11.1 將例11.1的程式片斷補充和改寫成一個完整、正確的程式,用公用繼承方式。在程式中應包括輸入資料的函式,在程式執行時輸入num,n
例題:建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。【面向物件設計】
題目: 建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。 解答: 程式程式碼如下: #include <iostream>
習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函式printArea分別輸出以上。。。
C++程式設計(第三版) 譚浩強 習題12.4 個人設計 習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三
習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求。。。
C++程式設計(第三版) 譚浩強 習題12.5 個人設計 習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求它們的和
“我有5年工作經驗。”“不,你只是把1年經驗用了5年!”
1 “我想跳槽了!”月前朋友略顯激動的給我發來一條微信。 我問她:“現在的工作不是挺好的嘛,事少、離家近。” “好啥呀,我都工作5年了,還是一個月收入不到5k的底層小會計。” “但是你的工作輕鬆啊。” “輕鬆有
# 從鍵盤輸入一個正整數,用2的冪次方的形式輸出。約定冪次方用括號來表示,即表示為2(b),b=1時,冪省略。例如139=2^7+2^3+2^1+2^0,即:2(7)+2(3)+2+2(0)
樣例輸入: 402 樣例輸出: 2(8)+2(7)+2(4)+2 要求:冪不能重複,如:139=26+26+23+21+20(出現了2個6次方) 參考 C 程式碼: #include<stdio.h> #include<stdlib.h>
把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
/* 思路: 通俗易懂的解釋: 首先從醜數的定義我們知道,一個醜數的因子只有2,3,5,那麼醜數p = 2 ^ x * 3 ^ y * 5 ^ z,換句話說一個醜數一定由另一個醜數乘以2或者乘以3或者乘以5得到,那麼我們從1開始乘以2,3,5,就得到2,3,5三個醜數,在從這