1. 程式人生 > >編寫一個私有的composer包

編寫一個私有的composer包

 很多時候,多人開發一個專案的時候,我們需要統一管理依賴和一些類庫檔案,不然每個人引入自己的類原始碼,造成累贅,和使用方法不一混亂的局面。所以現在很多流行框架都用composer來管理。

大部分都是github上建立自己的依賴包,然後Packagist來發布,最後composer下載到自己的專案。但是有時候我們需要用的類庫是涉及隱私的,不方便公開,怎麼辦。這個時候需要我們自己配配置composer下載源

下面的例子:是以本地搭建的gitlab為倉庫(內部才能訪問).

一、環境資訊

目前gitlab網址為 http://git.weshineapp.com

假設要安裝的包名為 weshine/weshineLib

:包名帶斜槓/    這是composer包規定格式

二、修改 composer 全域性 config  

檔案路徑 /root/.composer/config.json (路徑大部分為這個)

因為 git.weshineapp.com 使用 HTTP 協議, 所以secure-http 要設為false

設定gitlab-domains 告訴 Composer 相應的域名可以使用 GitLab API   

內容如下:



{
 "config": {
 "secure-http": false,
 "gitlab-domains": [
    "git.weshineapp.com"
  ]
 }
}

三、在gitlab上建立一個專案

編寫composer.json檔案,然後提交到倉庫上。此時因為有了composer.json檔案,該專案相當於一個包檔案

:composer.json中具體的檔案對應載入型別,需要根據檔案的作用,自行判斷,載入型別含義可參考網址:http://laravelacademy.org/post/7074.html (推薦psr-4載入型別)

個人理解

psr-0 :已經被廢棄,原因目錄結構太深,不適用

files :一般對應公共函式的檔案

class-map :顧名思義,只是做了一個對映而已,這種最普通的自動載入,如果專案夠大,檔案很多,容易產生類名衝突

psr-4:會自動給相應資料夾下的類檔案,自動新增一個和資料夾同名的名稱空間字首,然後進行相應載入。可以有效避免類名衝突的問題。

載入原理:可追溯vendor資料夾下的autoload檔案。

例如:以下是我的conposer.json配置



四、在其他專案中使用第三步建立好的包,實現自動載入

在專案的根目錄中,使用composer init命令 然後一直回車,預設建立一個composer.json的檔案,然後進行編寫,大致內容如下:



最後: 編寫完成composer.json 檔案之後,可以使用 composer update 命令進行安裝,或者更新。

相關推薦

Composer構建現代PHP帝國(二)——編寫自己的Composer

簡介:你或許使用過多個框架,或許自己開發過很多元件,多個類庫,介面等。會不會因為切換框架而頭疼,是不是還得修改你的程式碼,可能還得在某一框架裡面重新包含這些檔案進來。現在有兩個工具可以幫助你解決這一問題,它們分別是Composer和PEAR.我們主要推薦Composer,

編寫一個供瀏覽器端使用的NPM

產品運營 ebp port module 發布 能夠 指定 數據 文件中 此文已由作者吳維偉授權網易雲社區發布。歡迎訪問網易雲社區,了解更多網易技術產品運營經驗。在編寫程序時,總會有一些代碼是我們不願意一遍又一遍重復地去寫的,比如一些UI或交互相似組件,或是一些相似的流程或

編寫一個私有的composer

 很多時候,多人開發一個專案的時候,我們需要統一管理依賴和一些類庫檔案,不然每個人引入自己的類原始碼,造成累贅,和使用方法不一混亂的局面。所以現在很多流行框架都用composer來管理。 大部分都是github上建立自己的依賴包,然後Packagist來發布,最後compo

編寫一個程式設計一個汽車類vehicle,包含的私有資料成員有車輪個數wheels和車重weight

#include<iostream.h> class vehicle // 定義汽車類 { protected: int wheels; // 車輪數 float weight; // 重量 public: vehicle(int wheels,fl

建立你的一個composer

如何建立自己的一個composer包,這個其實很好解決的!只要你瞭解composer相關的知識便不難做到。 首先,你還不知道什麼是composer的話,請先學習下composer的相關知識。簡單的說,composer就是一個包的依賴安裝管理,類似前端的npm!

書寫自己第一個composer

網上搜了很多教程,很多都不太理解,簡單整理一下,終於寫出了第一個自己的composer包,本人比較菜,請大佬不要嘲笑,有啥不合理,不對的地方請各位大佬指點小弟一二1、先了解一下composer包的結構composer -自己隨便起的包含compo

建立一個自己的composer

Composer 是 PHP 的一個依賴管理工具。它允許你申明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。Composer 不是一個包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每個專案的基礎上進行管理,在你專案的某個目

基於OpenGL編寫一個簡易的2D渲染框架-04 繪制圖片

著色器 drawtext 結構 渲染 images ron renderer make 制圖 閱讀文章前需要了解的知識,紋理:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/  

基於OpenGL編寫一個簡易的2D渲染框架-05 渲染文本

new 坐標 false 證明 ont 獲取 simple 了解 param 閱讀文章前需要了解的知識:文本渲染 https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/ 簡要步

梯有N階,上樓可以一步上一階,也可以一步上二階。編寫一個程序,計算共有多少中不同的走法?

技術 告訴 不同的 mis misc 技術分享 blog main print c語言實現,小夥伴們誰要有更好的實現方法,要告訴我呦 #include int main(void) { int f,i,f1=1,f2=2; printf("請輸入樓梯數"); scanf(

編寫一個線程改變窗體的顏色

pan 使用 tco swing nbsp true 編寫 art 一個 編寫一個線程改變窗體的顏色,1,使用Runnable創建線程,該線程實現窗體的顏色在黑色和白色之間不斷的切換。使用內部類創建線程的方式,實現窗口的顏色在黑色和白色之間不斷的切換。 一、創建類Tes

Angular2-編寫一個簡易的組件

span 裝飾器 cto 理解 log 完整 col 編寫 {}   Angular2組件可以這麽理解:編寫一個類,然後在類的上面用組件裝飾器裝飾一下,這個類就成組件了。   所以編寫組件分兩步:1)編寫類;2)編寫裝飾器   1)編寫類: export class Si

自己動手編寫一個網絡圖片爬蟲

網絡 浪費 原理 get 應用 crawl 方法 網絡圖 理解 如今基本上我們的大部分時間都是浪費在瀏覽網頁上的,網頁有許多的媒體資源,其中最常見的是圖片。當我們瀏覽到比較好的網站的時候,看到比較好看的圖片總是會忍不住要下載。通常來說我們都是右鍵單擊圖標選擇圖片另存為,選擇

【原】shell編寫一個簡單的jmeter自動化壓測腳本

image tac vbo 用戶數 osx dot png das uvc 在公司做壓力測試也挺長時間了,每次測試前環境數據準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了一個自動化腳本,當然這個腳本目前功能十分簡陋,代碼也不完善,很有很

開發自己的composer

bili .net cnblogs cti 指定 穩定 span ins welcom 1. 創建一個開發目錄 1 mkdir project 2 cd project 2. 利用composer生成一個composer.json 1 composer init

基於OpenGL編寫一個簡易的2D渲染框架-13 使用例子

tom 進行 prim demo custom 第一個 manager sets mar 這是重構渲染器的最後一部分了,將會給出一個 demo,測試模板測試、裁剪測試、半透明排序等等: 上圖是本次 demo 的效果圖,中間的綠色圖形展現的是模板測試。 模板測試

創建自己的私有npm並發布

images 成功 有一個 blog 兩個文件 輸出 strong 目錄 兩個 本文參考網上一些零散資料整理,比較系統的入門npm包的發布,幹貨在此: 1、下載node 地址:http://nodejs.cn/download/ 安裝完畢之後可打開cmd命令行測試是否安裝成

編寫一個函數,求字符串的長度

兩個 eat var urn turn 長度 求字符串的長度 函數 length 方法一:先把漢字用兩個單字節字符代替,返回代替後的字符創長度 function getBytes1(str){  var str=str.replace(/[^\x00-\xff]/g,‘**

Golang中使用heap編寫一個簡單高效的定時器模塊

true pop 邏輯 .com light 初始化 callback before cell 定時器模塊在服務端開發中非常重要,一個高性能的定時器模塊能夠大幅度提升引擎的運行效率。使用Golang和heap實現一個通用的定時器模塊,代碼來自:https://github.

手把手教你編寫一個簡單的PHP模塊形態的後門

cpp rest xtu job ring 事先 們的 original call 看到Freebuf 小編發表的用這個隱藏於PHP模塊中的rootkit,就能持久接管服務器文章,很感興趣,苦無作者沒留下PoC,自己研究一番,有了此文 0×00. 引言 PHP是一個非常流行