国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于composer一些學(xué)習(xí)和理解_v1.0_byKL

hedzr / 1949人閱讀

摘要:關(guān)于一些學(xué)習(xí)和理解不是一個(gè)包管理器。其中一些庫(kù)依賴于其他庫(kù)。范圍通過(guò)使用比較操作符可以指定有效的版本范圍。賦值運(yùn)算符這對(duì)于遵循語(yǔ)義化版本號(hào)的項(xiàng)目非常有用。指定最低版本,但允許版本號(hào)的最后一位數(shù)字上升。

關(guān)于composer一些學(xué)習(xí)和理解

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 下并沒(méi)有類似的工具。

Composer 將這樣為你解決問(wèn)題:

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

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

你聲明你所依賴的東西。

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

因?yàn)閘aravel是使用composer管理的,所以一切以laravel為基礎(chǔ)。

下載安裝composer

這里補(bǔ)充的是:

因?yàn)槟承┰颍L問(wèn)國(guó)外的composer資源網(wǎng)站很慢,導(dǎo)致composer install或者update的時(shí)候經(jīng)常連接超時(shí)而出錯(cuò),所以改為中國(guó)鏡像

    全局:
    composer config -g repo.packagist composer https://packagist.phpcomposer.com
    
    局部項(xiàng)目(需要在項(xiàng)目當(dāng)前目錄下執(zhí)行):
    composer config repo.packagist composer https://packagist.phpcomposer.com

執(zhí)行完命令后會(huì)在composer.json文件里面增加這段,這樣就代表添加中國(guó)鏡像成功了,以后執(zhí)行composer install或者update之類的命令的時(shí)候就會(huì)優(yōu)先使用這個(gè)鏡像

    "repositories": {
      "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
      }
    }

composer selfupdate來(lái)保持composer工具本身的版本更新

關(guān)于composer.json文件
{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {  //這里是告訴composer必須要安裝的項(xiàng)目,相當(dāng)于生產(chǎn)環(huán)境
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",  //require 需要一個(gè) 包名稱,這個(gè)就是包名稱
        "laravelcollective/html": "5.2.*",
        "yuanchao/laravel-5-markdown-editor": "dev-master"
    },
    "require-dev": {  //這個(gè)是開發(fā)需要安裝的項(xiàng)目,相當(dāng)于開發(fā)環(huán)境,可以通過(guò)-no-dev來(lái)取消安裝這個(gè)項(xiàng)目里面的包
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r "copy(".env.example", ".env");""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "IlluminateFoundationComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "IlluminateFoundationComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

包名稱的版本

確切的版本號(hào)--------1.0.2---------你可以指定包的確切版本。

范圍-------->=1.0 >=1.0,<2.0 >=1.0,<1.1|>=1.2--------通過(guò)使用比較操作符可以指定有效的版本范圍。 有效的運(yùn)算符:>、>=、<、<=、!=。你可以定義多個(gè)范圍,用逗號(hào)隔開,這將被視為一個(gè)邏輯AND處理。一個(gè)管道符號(hào)|將作為邏輯OR處理。 AND 的優(yōu)先級(jí)高于 OR。

通配符--------1.0.*--------你可以使用通配符*來(lái)指定一種模式。1.0.*與>=1.0,<1.1是等效的。

賦值運(yùn)算符--------~1.2--------這對(duì)于遵循語(yǔ)義化版本號(hào)的項(xiàng)目非常有用。~1.2相當(dāng)于>=1.2,<2.0。

我們需要重點(diǎn)關(guān)注通配符和波浪符,通配符很好理解,波浪符有點(diǎn)拗口,~ 最好用例子來(lái)解釋: ~1.2 相當(dāng)于 >=1.2,<2.0(標(biāo)記你所依賴的最低版本),而 ~1.2.3 相當(dāng)于 >=1.2.3,<1.3。(指定最低版本,但允許版本號(hào)的最后一位數(shù)字上升。)語(yǔ)義化很難懂,但是直接看例子是可以知道怎么用的

基本用法

composer是通過(guò)讀取composer.json和composer.lock文件來(lái)進(jìn)行安裝包的

在安裝依賴后,Composer 將把安裝時(shí)確切的版本號(hào)列表寫入 composer.lock 文件。這將鎖定改項(xiàng)目的特定版本。因?yàn)?install 命令將會(huì)檢查鎖文件是否存在,如果存在,它將下載指定的版本(忽略 composer.json 文件中的定義)。如果不存在 composer.lock 文件,Composer 將讀取 composer.json 并創(chuàng)建鎖文件。

一般的使用用法有:

composer install (install 命令從當(dāng)前目錄讀取 composer.json 文件,處理了依賴關(guān)系,并把其安裝到 vendor 目錄下。)

composer install XXXX (這是多帶帶安裝某些包的時(shí)候使用)

composer update (為了獲取依賴的最新版本,并且升級(jí) composer.lock 文件,)

composer update XXX (類似)

--prefer-source: 下載包的方式有兩種: source 和 dist。對(duì)于穩(wěn)定版本 composer 將默認(rèn)使用 dist 方式。而 source 表示版本控制源 。如果 --prefer-source 是被啟用的,composer 將從 source 安裝(如果有的話)。如果想要使用一個(gè) bugfix 到你的項(xiàng)目,這是非常有用的。并且可以直接從本地的版本庫(kù)直接獲取依賴關(guān)系。
--prefer-dist: 與 --prefer-source 相反,composer 將盡可能的從 dist 獲取,這將大幅度的加快在 build servers 上的安裝。這也是一個(gè)回避 git 問(wèn)題的途徑,如果你不清楚如何正確的設(shè)置。
--dry-run: 如果你只是想演示而并非實(shí)際安裝一個(gè)包,你可以運(yùn)行 --dry-run 命令,它將模擬安裝并顯示將會(huì)發(fā)生什么。
--dev: 安裝 require-dev 字段中列出的包(這是一個(gè)默認(rèn)值)。
--no-dev: 跳過(guò) require-dev 字段中列出的包。
--no-scripts: 跳過(guò) composer.json 文件中定義的腳本。
--no-plugins: 關(guān)閉 plugins。
--no-progress: 移除進(jìn)度信息,這可以避免一些不處理?yè)Q行的終端或腳本出現(xiàn)混亂的顯示。
--optimize-autoloader (-o): 轉(zhuǎn)換 PSR-0/4 autoloading 到 classmap 可以獲得更快的加載支持。特別是在生產(chǎn)環(huán)境下建議這么做,但由于運(yùn)行需要一些時(shí)間,因此并沒(méi)有作為默認(rèn)值。

composer require(require 命令增加新的依賴包到當(dāng)前目錄的 composer.json 文件中。但并不即可更新)

composer dump-autoload(某些情況下你需要更新 autoloader,例如在你的包中加入了一個(gè)新的類。)

自動(dòng)加載

composer的自動(dòng)加載會(huì)生產(chǎn)這個(gè)文件vendor/autoload.php,然后調(diào)用這個(gè)文件就能夠獲得文件里面的類的自動(dòng)加載

自動(dòng)加載只支持 PSR-4和 PSR-0兩種命名方式

Under the psr-4 key you define a mapping from namespaces to paths, relative to the package root. 

{
    "autoload": {
        "psr-4": {
            "Monolog": "src/",  //這里寫法其實(shí)差不多,但是展現(xiàn)的意義并不相同,psr4會(huì)設(shè)定一個(gè)命名空間作為包的根目錄,舉例這行的意思是src/目錄映射成為Monolog根目錄,那么調(diào)用這個(gè)包的時(shí)候?qū)慚onologBarBaz,其實(shí)自動(dòng)加載就會(huì)去這里src/Bar/Baz.php找類文件,然后加載
            "VendorNamespace": ""
        }
    }
}

在 psr-0 key 下你定義了一個(gè)命名空間到實(shí)際路徑的映射(相對(duì)于包的根目錄)
{
    "autoload": {
        "psr-0": {
            "Monolog": "src/",  //這里的意思是src/目錄映射為Monolog,如果要調(diào)用MonologBarBaz,那么自動(dòng)加載就會(huì)去src/Monolog/Bar/Baz.php,然后加載
            "VendorNamespace": "src/",
            "Vendor_Namespace_": "src/"
        }
    }
}

laravel的自動(dòng)加載會(huì)多了一些東西

vendor/autoload.php


引用參考:

http://docs.phpcomposer.com/00-intro.html

https://getcomposer.org/doc/00-intro.md

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22498.html

相關(guān)文章

  • es6學(xué)習(xí)筆記-箭頭函數(shù)_v1.0_byKL

    摘要:因?yàn)榧^函數(shù)本身沒(méi)有所以不可以當(dāng)作構(gòu)造函數(shù),也就是說(shuō),不可以使用命令,否則會(huì)拋出一個(gè)錯(cuò)誤。箭頭函數(shù)不可以使用對(duì)象,該對(duì)象在函數(shù)體內(nèi)不存在。 es6學(xué)習(xí)筆記-箭頭函數(shù)_v1.0 箭頭函數(shù)使用方法 var f = v => v; //普通函數(shù)配合箭頭函數(shù)寫法,這里并且是傳參的 //相當(dāng)于 var f = function(v) { return v; }; /*-----------...

    lushan 評(píng)論0 收藏0
  • es6學(xué)習(xí)筆記-let,const塊級(jí)作用域_v1.0_byKL

    摘要:考慮到環(huán)境導(dǎo)致的行為差異太大,應(yīng)該避免在塊級(jí)作用域內(nèi)聲明函數(shù)。函數(shù)聲明語(yǔ)句函數(shù)表達(dá)式循環(huán)循環(huán)還有一個(gè)特別之處,就是循環(huán)語(yǔ)句部分是一個(gè)父作用域,而循環(huán)體內(nèi)部是一個(gè)單獨(dú)的子作用域。聲明一個(gè)只讀的常量。 es6學(xué)習(xí)筆記-let,const和塊級(jí)作用域_v1.0 塊級(jí)作用域 javascript 原來(lái)是沒(méi)有塊級(jí)作用域的,只有全局作用域和函數(shù)作用域 例子1 因?yàn)闆](méi)有塊級(jí)作用域,所以每次的i都是一...

    Youngdze 評(píng)論0 收藏0
  • 關(guān)于laravel5的excel包maatwebsite/excel的使用筆記_v1.0_byKL

    摘要:關(guān)于的包的使用筆記關(guān)于安裝官網(wǎng)已經(jīng)很詳細(xì)了不再描述關(guān)于導(dǎo)入導(dǎo)入的話只有幾個(gè)小地方需要注意導(dǎo)入的時(shí)候會(huì)有產(chǎn)生一些的在循環(huán)遍歷導(dǎo)入的數(shù)據(jù)的時(shí)候主動(dòng)忽略關(guān)于中文或者亂碼問(wèn)題或者在配置文件在安裝這個(gè)模塊的文檔有介紹怎么生成這個(gè)文件 關(guān)于laravel5的excel包maatwebsite/excel的使用筆記 關(guān)于安裝 官網(wǎng)已經(jīng)很詳細(xì)了,不再描述.http://www.maatwebsite....

    MkkHou 評(píng)論0 收藏0
  • es6學(xué)習(xí)筆記-數(shù)值的擴(kuò)展_V1.0_byKL

    摘要:學(xué)習(xí)筆記數(shù)值的擴(kuò)展有一些不常用或者還不支持的就沒(méi)有記錄了總體來(lái)說(shuō)本篇只是一個(gè)備忘而已用來(lái)檢查一個(gè)數(shù)值是否為有限的。兩個(gè)新方法只對(duì)數(shù)值有效,非數(shù)值一律返回。參考引用數(shù)值擴(kuò)展 es6學(xué)習(xí)筆記-數(shù)值的擴(kuò)展 有一些不常用或者還不支持的就沒(méi)有記錄了,總體來(lái)說(shuō)本篇只是一個(gè)備忘而已 Number.isFinite(), Number.isNaN() Number.isFinite()用來(lái)檢查一個(gè)數(shù)值...

    宋華 評(píng)論0 收藏0
  • es6學(xué)習(xí)筆記-頂層對(duì)象_v1.0_byKL

    摘要:學(xué)習(xí)筆記頂層對(duì)象雖然是筆記但是基本是抄了一次大師的文章了頂層對(duì)象頂層對(duì)象,在瀏覽器環(huán)境指的是對(duì)象,在指的是對(duì)象。之中,頂層對(duì)象的屬性與全局變量是等價(jià)的。的寫法模塊的寫法上面代碼將頂層對(duì)象放入變量。參考引用頂層對(duì)象實(shí)戰(zhàn) es6學(xué)習(xí)筆記-頂層對(duì)象_v1.0 (雖然是筆記,但是基本是抄了一次ruan大師的文章了) 頂層對(duì)象 頂層對(duì)象,在瀏覽器環(huán)境指的是window對(duì)象,在Node指的是gl...

    Meils 評(píng)論0 收藏0

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

0條評(píng)論

hedzr

|高級(jí)講師

TA的文章

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