標籤:魯迅 profile load 方案 tags function 介紹 remote laravel
這段時間比較忙,一直沒時間寫點東西,今天抽空隨便寫寫。
背景:在新公司發現一個現象,很多已經工作六七年的老程式員竟然不會用 git,也不會在網上搜尋,而對於 使用 composer 開發包也就更不瞭解了,現在我就做個入門總結。
不說廢話,直奔主題 —— 魯迅 ^_^參考文檔:https://laravel-china.org/docs/composer/2018協議:http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
步驟:
- 建立項目目錄
mkdir composer-test
cd comopser-test
- 初始化
composer init
提示進行配置 packagist 資訊:
輸入項目命名空間 name:其實就是 packagist 名稱,建議 github 使用者名稱/項目名稱,leesin/composer-test
項目描述 Description: 項目描述,會現在是 packagist 項目介紹中
作者資訊 Author: Leesin <[email protected]>
輸入最低穩定版本:stable, RC, beta, alpha, dev
輸入項目類型:library, project, metapackage, composer-plugin
輸入授與類型:開源軟體 一般選擇 MIT
輸入依賴資訊:yes->搜尋包名 (可以是 php 等)->輸入版本
= >= <= 之類的
是否需要require-dev:同上
進行產生:yes, 產生 composr.json
- 上傳 github
git init && echo ‘hello world‘ >> README.md
git add . && git commit -m‘init‘
git remote add origin 倉庫地址
git push origin -u 倉庫地址
- 提交 packagist
將github 上的包提交到 packagist 註冊
submit->輸入倉庫地址->check->通過檢測就提交到 packagist 了
如果提示已經存在,可修改包名或者直接提交
- 設定 composer 包自動更新
預設情況下,github代碼更新,composer 包是不自動更新的
方案: 使用 github 服務鉤子
setting->Integrations & services ->Add service 搜尋 packagist->填寫資料:
user: packagist 的使用者名稱
token:packagist.org 中 Profile show API Token 查看
domain: https://packagist.org/
edit -> test service ,[Okay, the test payload is on its way. ] 就可以自動更新了
使用
通過 packagist 拉取github 代碼
composer create-project packagist名 project名 --prefer-dist dev-master [ 指定版本 ]
引用其他包composer require package_name實現自動載入: include vendor/autoload.php或者 修改 composer.json, 增加 autoload 配置項,files 表示要自動載入的檔案,psr-4 表示要自動載入的 命名空間 classmap 一般用來對某些開發類自動載入,psr-4則是項目代碼的自動載入,psr-0基本由psr-4替代,files模式主要針對全域helper之類的function載入,配置完成後執行composer dump-autoload即可 "autoload":{ "files":[ "src/functions.php", "", ... ], "psr-4":{ "Leesin\\" : "src", // 前邊命名空間,後邊為目錄 } } composer dump / dump-autoload 按照設定檔,重新載入配置
補充:常用包結構
.
├── composer.json
├── README.md
└── src // 源碼目錄
└── Hello.php
mkdir src && touch src/Hello.php <?php namespace Leesin; class Hello { public static function SayHello(){ return ‘hello world‘; } } 配置自動載入 "autoload":{ "psr-4":{ "Leesin\\":"src/" # "命名空間\\":"目錄名稱/",表示 src 下的命名空間為 Leesin } } composer dump 建立測試檔案 touch test.php <?php require __DIR__.‘/vendor/autoload.php‘; use Leesin\Hello; echo Hello::SayHello(); 測試:php test.php 輸出 hello world 表示成功
- git tag 發布穩定版本 composer 包
git tag -a v0.1 -m ‘version 0.1‘
git push origin --tags
在 packagist 中重新整理即可看到
開發 composer 包,上傳 packagist並即時更新+發布穩定版