成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

學(xué)習(xí)開發(fā)自己的composer包,并使用GitHub實(shí)時(shí)更新到Packagist

EasonTyler / 1251人閱讀

摘要:系統(tǒng)學(xué)習(xí)的使用請(qǐng)移步中文學(xué)習(xí)開發(fā)自己的組件要點(diǎn)理解如何實(shí)現(xiàn)自動(dòng)加載第三方組件理解和的規(guī)范理解基于如何實(shí)現(xiàn)自動(dòng)加載。

composer是什么

Composer 不是一個(gè)包管理器。是的,它涉及 "packages" 和 "libraries",但它在每個(gè)項(xiàng)目的基礎(chǔ)上進(jìn)行管理,在你項(xiàng)目的某個(gè)目錄中(例如 vendor)進(jìn)行安裝。默認(rèn)情況下它不會(huì)在全局安裝任何東西。因此,這僅僅是一個(gè)依賴管理。

Composer 受到了 node"s npm 和 ruby"s bundler 的強(qiáng)烈啟發(fā)。而當(dāng)時(shí) PHP 下并沒有類似的工具。

composer可以做什么 Composer 將這樣為你解決問題:

你有一個(gè)項(xiàng)目依賴于若干個(gè)庫(kù)。

其中一些庫(kù)依賴于其他庫(kù)。

你聲明你所依賴的東西。

Composer 會(huì)找出哪個(gè)版本的包需要安裝,并安裝它們(將它們下載到你的項(xiàng)目中)。

系統(tǒng)學(xué)習(xí)composer的使用請(qǐng)移步 composer中文學(xué)習(xí)

開發(fā)自己的composer組件

要點(diǎn):理解composer如何實(shí)現(xiàn)自動(dòng)加載第三方組件; 理解psr-0psr-4的規(guī)范; 理解基于psr-0,psr-4,classmap,files如何實(shí)現(xiàn)自動(dòng)加載。 理解Composer和Packagist

關(guān)于安裝和使用composer請(qǐng)參考composer中文學(xué)習(xí) 創(chuàng)建目錄名稱
mkdir try-make-package
cd try-make-package

這個(gè)try-make-package文件夾就是你的包的根目錄了,你只需要記住composer.json在包的哪個(gè)目錄下面,一般那就是包的根目錄了。
現(xiàn)在我們還沒有composer.json文件,下面我們來(lái)初始化

初始化擴(kuò)展包
?  composer init

  Welcome to the Composer config generator

This command will guide you through creating your composer.json config.

Package name (/) [lingan/try-make-package]:
Description []: try make a package
Author [saboran , n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []: MIT

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n

{
    "name": "lingan/try-make-package",
    "description": "try make a package",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "saboran",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}

Do you confirm generation [yes]? yes

經(jīng)過一番上面的掙扎在當(dāng)前目錄就生成了composer.json文件,下面我們對(duì)這個(gè)文件進(jìn)行一些修改

修改composer.json增加自動(dòng)加載規(guī)范(命名空間和目錄映射關(guān)系)和環(huán)境要求
{
  "name": "lingan/try-make-package",
  "description": "try make a package",
  "type": "library",
  "license": "MIT",
  "authors": [
    {
      "name": "saboran",
      "email": "[email protected]"
    }
  ],
  "minimum-stability": "dev",
  "require": {
    "php": ">=7.0"
  },
  "autoload": {
    "psr-4": {
      "FlowerRose": "src/Flower/Rose",
      "FlowerLily": "src/Flower/Lily"
    }
  }
}
創(chuàng)建類文件

根據(jù)上面的命名空間和目錄的映射關(guān)系,創(chuàng)建對(duì)應(yīng)目錄和文件,如下圖

對(duì)應(yīng)文件內(nèi)容



測(cè)試安裝

以上代碼都梳理完畢后,需要composer install來(lái)測(cè)試我們的包是否可以正常工作此時(shí)會(huì)在vendor/composer/autoload_psr4.php中生成命名空間和目錄的映射關(guān)系,被包在一個(gè)數(shù)組中:

 array($baseDir . "/src/Flower/Rose"),
    "FlowerLily" => array($baseDir . "/src/Flower/Lily"),
);
增加.gitignore為git忽略一些文件,增加readme.md為項(xiàng)目增加描述
.idea
vendor/
composer.lock
提交代碼到github

現(xiàn)在自己的Github主頁(yè)上創(chuàng)建一個(gè)新的倉(cāng)庫(kù)然后將項(xiàng)目提交到對(duì)應(yīng)倉(cāng)庫(kù),參考如下

git init
git add -A
git commit -am "init && dev package"
git remote add origin [email protected]:linganmin/try-make-package.git
git push -u origin master

登錄自己的packagist submit(自己注冊(cè))

將自己的項(xiàng)目地址粘貼

點(diǎn)擊check,然后點(diǎn)擊submit,至此,自己的composer包就提交成功了,

測(cè)試使用自己開發(fā)的包擴(kuò)展[2017.11.07更新]

創(chuàng)建測(cè)試目錄

mkdir test-my-package
cd test-my-package

安裝自己的擴(kuò)展

 composer require lingan/try-make-package dev-master
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing lingan/try-make-package (dev-master d7b9f94): Cloning d7b9f941b0 from cache
Writing lock file
Generating autoload files

安裝完成的目錄如下圖

查看autoload_psr4.php

 array($vendorDir . "/lingan/try-make-package/src/Flower/Rose"),
    "FlowerLily" => array($vendorDir . "/lingan/try-make-package/src/Flower/Lily"),
);

新建首頁(yè)入口文件index.php,開始測(cè)試自己寫的包

desc();
echo "
";
echo $lily->desc();

執(zhí)行

php index.php
this is rose flower
this is lily flower%    

* 至此說明我們自己開發(fā)的擴(kuò)展包可以正常使用

設(shè)置Packagist上自動(dòng)更新擴(kuò)展包,即當(dāng)我們更新擴(kuò)展包提交到GitHub時(shí),Packagist自動(dòng)更新

在沒有設(shè)置自動(dòng)更新時(shí),Packagist上包詳情頁(yè)會(huì)有這樣一個(gè)提示

This package is not auto-updated. Please set up the GitHub Service Hook for Packagist so that it gets updated whenever you push!(這個(gè)軟件包不是自動(dòng)更新的。請(qǐng)為Packagist 設(shè)置GitHub服務(wù)鉤,以便在您推送時(shí)更新!)

詳細(xì)設(shè)置自動(dòng)更新軟件包的文檔地址

簡(jiǎn)化步驟如下:

去個(gè)人中心頁(yè)面拿到自己的api令牌

去當(dāng)前包在GitHub的地址,點(diǎn)擊設(shè)置,點(diǎn)擊集成和服務(wù),點(diǎn)擊添加Packagist服務(wù)并配置你的API令牌,以及你的Packagist用戶名和賬號(hào)對(duì)應(yīng)域名

選擇active,點(diǎn)擊add service

設(shè)置自動(dòng)更新結(jié)束,之后你更改了自己包擴(kuò)展的代碼提交到GitHub后,很短的時(shí)間差就會(huì)同步到Packagist

結(jié)束語(yǔ)

作為一枚渣渣,發(fā)現(xiàn)自己的不足,嘗試接觸更多新技術(shù)和工具,以上文字若有錯(cuò)誤歡迎指正

Happy Coding

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26031.html

相關(guān)文章

  • php管理依賴關(guān)系工具composer學(xué)習(xí)筆記

    摘要:首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡(jiǎn)單感興趣的同志們可以上他視頻網(wǎng)站購(gòu)買視頻,網(wǎng)站地址放在文末我的博客作用自動(dòng)安裝所需要的模塊,自動(dòng)加載管理項(xiàng)目,發(fā)布到網(wǎng)上上去是默認(rèn)的加載組件地址安裝下 首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇composer的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡(jiǎn)單感興趣的同志們可以上他視頻網(wǎng)站購(gòu)買視頻...

    CoyPan 評(píng)論0 收藏0
  • PHP回顧之創(chuàng)建自己Composer

    摘要:想要更好的利用協(xié)同工作,學(xué)會(huì)創(chuàng)建自己的包是一項(xiàng)必不可少的技能。編輯項(xiàng)目的或,增加一項(xiàng)配置,例如以上配置使用中國(guó)全量鏡像網(wǎng)站作為默認(rèn)中央倉(cāng)庫(kù)。創(chuàng)建自己的包創(chuàng)建一個(gè)包只需兩步填寫包描述信息寫代碼。通過簡(jiǎn)單兩步,我們創(chuàng)建的自己的包。 轉(zhuǎn)載請(qǐng)注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie web響應(yīng) ...

    KoreyLee 評(píng)論0 收藏0
  • 月光寶盒之網(wǎng)站資源收錄

    摘要:開源的論壇網(wǎng)站開源的論壇源代碼接口管理接口環(huán)境下環(huán)境一鍵安裝軟件二前端資源中國(guó)淘寶鏡像在國(guó)內(nèi),由于墻的原因,安裝包速度很慢,所以,這里建議使用淘寶提供的鏡像安裝前端資源。 為者常成,行者常至。 一、PHP資料 1、V2EX way to explore 分享和探索的地方2、Laravel China 中國(guó)最大的 Laravel 和 PHP 開發(fā)者社區(qū)3、Composer使用方法4、Pa...

    learning 評(píng)論0 收藏0
  • 月光寶盒之網(wǎng)站資源收錄

    摘要:開源的論壇網(wǎng)站開源的論壇源代碼接口管理接口環(huán)境下環(huán)境一鍵安裝軟件二前端資源中國(guó)淘寶鏡像在國(guó)內(nèi),由于墻的原因,安裝包速度很慢,所以,這里建議使用淘寶提供的鏡像安裝前端資源。 為者常成,行者常至。 一、PHP資料 1、V2EX way to explore 分享和探索的地方2、Laravel China 中國(guó)最大的 Laravel 和 PHP 開發(fā)者社區(qū)3、Composer使用方法4、Pa...

    2bdenny 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<