composer引用本地git作爲源庫

PHP使用者大多對composer是又愛又恨,愛的是composer require後,不少類庫不用去下載了,恨的是網速卡成翔,雖然國內有不少道友作了鏡象,但對於bower庫這些都仍是總體更新。php

那麼,如何只利用composer的基本功能來爲本身服務呢?composer的官網有介紹,只要在composer.json中加入幾行代碼就好了。。git

"repositories":[  
       {  
           "type":"git",  
           "url":"/var/www/gouki/test/"  
       },  
   ]  

上面的代碼中/var/www/gouki/test,是個人一個git庫。也是按照composer的標準來建的。裏面只有一個composer.json文件:json

{  
    "name":"gouki/test",  
    "description":"test",  
    "authors":[  
        {  
            "name":"gouki",  
            "email":"xxxx@qq.com"  
        }  
    ],  
    "minimum-stability":"dev",  
    "require":{},  
    "autoload":{  
        "psr-4":{  
            "gouki\\test\\":"src/" 
        } 
    }, 
    "extra":{ 
        "branch-alias":{ 
            "dev-master":"1.0.x-dev"  
        }  
    }  
}  

 src目錄下的代碼中使用的namespace就是gouki\test,而後在原項目的composer.json中再加入:composer

"require":{  
        "gouki/test":"dev-master"  
    },  

  

最後,運行一下composer update,你會看到項目的根目錄下多了vendor目錄,同時,vendor目錄下也會多一個gouki/test的目錄,至此項目引入成功,若是還不放心,那就看一下:vendor/composer/autoload_psr4.php中有沒有gouki/test。ssh

之因此這麼作,就是由於前文所說的速度,固然也有小團隊的成本。好比寫個類,就能夠直接composer進行加載了。ui

問題就這麼來了,若是放到線上去,那上面的url

"repositories":[    
       {    
           "type":"git",    
           "url":"/var/www/gouki/test/"    
       },    
   ]   
須要改成:  
"repositories":[    
       {    
           "type":"git",    
           "url":" http://xxxx.xxx.xxx/git "    
       },    
   ]     

 若是該git是public的,則不須要任何處理,若是git是須要登陸的,則須要在項目的根目錄下(和composer.json平級的目錄)增長一個auth.json,裏面也就兩三行代碼spa

{    
    "http-basic":{    
        "http://xxxx.xxx.xxx/git":{    
            "username":"",    
            "password":""    
        }    
    }    
}    

  

固然若是你是ssh免登錄的git則另計。至此一個小小的自建composer源就已經完成。blog

本站採用版權協議, 要求署名、非商業和保持一致. 本站歡迎任何非商業應用的轉載, 但須註明出自"ip

", 保留原始連接, 此外還必須標註原文標題和連接.

相關文章
相關標籤/搜索