中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP商城 Composer 以及PSR規范

發布時間:2020-07-20 15:58:51 來源:網絡 閱讀:351 作者:德尚網絡 欄目:開發技術

Composer 依賴 在很多php商城系統中都有用到,如dsmall商城。隨著項目代碼量的不斷增加,以及一些庫的依賴,我們不得不引入包的管理,來解決不易管理、閱讀、模塊化等問題。 三方庫優秀,而且很多人在維護,功能對接也方便,我們沒有必要在這個一個常用的功能上花費時間來封裝或者造輪子, 很多人在自己的項目中都實踐過,出現了問題,反應的issue也很快會被解決掉,功能也不斷在完善。 一直強調,站在巨人的肩膀上,我們會走的更遠,也許我們自己擼出來的代碼難等大雅之堂,無法比擬, 把重心放在自己的核心產品和功能時間上,學會借鑒學習和使用,降低自己的開發成本。 也許有人會覺得我使用三方庫可能會造成性能上的影響,有些功能我根本用不到。項目中代碼有很多無用的代碼,導致文件加載過慢, 其實不用擔心,?opcache可以將php腳本預編譯到共享內存中來提升php的性能。
php Composer psr-4 autoload
Composer 是php用來管理依賴關系的工具,可以在項目中聲明外部依賴的工具庫,Composer會幫你安裝這些依賴的庫文件 psr-4 是一種代碼規范,能夠實現package的自動加載,規范了如何從文件路徑自動加載類,同時也規范了自動加載文件的位置
自動加載
我們在支持Composer的項目中,只需引入這個文件,加上下面這段php的代碼,就可以得到自動加載的支持了
<?php
require_once DIR . '/vendor/autoload.php';
復制代碼
composer.json
{
"autoload": {
"psr-4": {
"Work\": "src/"
},
"psr-0": {
"VendorNamespace": "src/"
}
}
}復制代碼
Composer 將注冊一個 PSR-4 autoloader 到 Work 命名空間, PSR-0 則支持_,自動轉化為目錄結構
classmap
不遵循PSR-0/4規范的類庫,
files
明確的指定文件加載
額外的
repositories 自定義資源包庫
type
?composer Composer 類型的資源庫,是一個簡單的網絡服務器上的
?vcs git、svn、hg等
?pear 從pear上獲取資源
?package 內聯一個composer.json對象
scripts
Composer 允許你在安裝過程中的各個階段掛接腳本。
詳細流程
典型的命令,composer安裝時
?post-install-cmd?composer install執行之后觸發
?post-update-cmd?composer update執行之后觸發
自定義腳本demo
{
"scripts": {
"post-update-cmd": "MyVendor\MyClass::postUpdate",
"post-package-install": [
"MyVendor\MyClass::postPackageInstall"
],
"post-install-cmd": [
"MyVendor\MyClass::warmCache",
"phpunit -c app/",
"find vendor -type d -name .git -exec rm -rf '{}' \;"
]
}
}復制代碼
<?php
namespace MyVendor;
use Composer\Script\Event;
class MyClass{
public static function postUpdate(Event $event)
{
$composer = $event->getComposer();
// do stuff
}

public static function postPackageInstall(Event $event)
{
    $installedPackage = $event->getOperation()->getPackage();
    // do stuff
}

public static function warmCache(Event $event)
{
    // make cache toasty
}

}復制代碼
不然看出執行的腳本可以是一個類中的靜態方法,當然也可以是一個函數,還可以是一條shell命令
我們也可以手動執行一些命令
composer run-script [--dev] [--no-dev] script

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲江县| 新源县| 子长县| 永春县| 康乐县| 桐梓县| 外汇| 肥东县| 庆元县| 云阳县| 凤翔县| 崇义县| 陇南市| 香河县| 永寿县| 秦皇岛市| 凤山县| 平利县| 凉城县| 福鼎市| 沅江市| 洞口县| 定安县| 阜宁县| 霍山县| 休宁县| 尉犁县| 乐山市| 安陆市| 葫芦岛市| 阿巴嘎旗| 凤山市| 湘乡市| 卢龙县| 普格县| 长沙县| 肃宁县| 宜州市| 明星| 凌海市| 仁怀市|