php的composer算雞肋嗎

2021-01-04 技術愛好者

每個php程序猿都知道composer,是php的軟體依賴工具,類似於Python的pip,nodejs的npm

composer

任何一門語言,隨著生態的不斷完善,都會有各種功能完善的包和類庫,它們之間經常相互依賴,如何解決依賴就是一個頭疼的問題。

像Linux不同的發行版,都有各自的包管理工具,像centos的yum ,Ubuntu的apt。

早期的php是通過pear和pecl進行擴展安裝的,pear是php開發的,而pecl是c寫的,一般用於php難以實現的功能。

雖然pear早了很多年,由於composer易用和部署方便,大有取代pear之勢。

這個工具也有它的缺點:

1. 不好安裝,特別是在windows下,我的安裝體驗,兩種方法:

方法一. php -r "readfile('https://getcomposer.org/installer');" | php

結果出錯

PHP Parse error: syntax error, unexpected ''head' (T_ENCAPSED_AND_WHITESPACE),

expecting ']' in Standard input code on line 1529

Parse error: syntax error, unexpected ''head' (T_ENCAPSED_AND_WHITESPACE), expec

ting ']' in Standard input code on line 1529

方法二 Composer-Setup.exe

結果又錯誤

Failed to decode zlib stream

exe安裝錯誤

最終還是直接下載的composer.phar文件,

建一個bat的批處理文

@ECHO OFF

php "%~dp0composer.phar" %*件

雙擊運行

cli下執行composer -v 能出現composer圖形就算成功了。

成功

在Linux環境下,安裝是很順利的,用命令行很容易就安裝成功了。

2. 網速慢,這應該是最大的硬傷,雖然可以通過設置鏡像讓安裝快一點,但升級的時候經常出現各種問題。

所以,對於簡單的應用,我不太喜歡這個工具,還是

在composer出現之前,php開發的各種程序,都是通過zip包直接下載,然後解壓就可以運行了,包裡有程序所有文件,不需要額外的工作,自從composer出現以後,越來越多的程序開始採用,無形中增加了php的學習成本,php本來就是簡單易學著稱,現在讓很多初學者倒在了安裝的路上。

php本來就是解釋性腳本語言,不管前期怎麼折騰,最後還是一堆php文件來運行,所以不管用什麼工具安裝其實和zip所有文件是一樣的,到底哪個更方便呢!

總體來說,composer還是增加了php引入第三方類庫的便利性,弊大於利吧。

相關焦點

  • PHP 之 composer 安裝及使用
    composer如何安裝?windows 環境下的安裝:Wondows 平臺上,我們只需要下載 Composer-Setup.exe 後,一步步安裝即可。需要注意的是你需要開啟 openssl 配置,我們打開 php 目錄下的 php.ini,將 extension=php_openssl.dll前面的分號去掉就可以了。
  • 使用composer實現php自動加載的一種方式
    首先需要安裝composer然後在項目根目錄創建library和Model目錄和一個composer.json文件,在裡面輸入如下內容:註:上面內容的library和Model即為自動加載的目錄,我們要自動加載的類文件就放在這些目錄下。
  • 「Composer」PHP開發者必須了解
    composer init交互式的創建composer.json.比如執行composer global require fabpot/php-cs-fixer,現在php-cs-fixer命令行可以全局運行了,如果稍後想更新它,只需要運行composer global updatecomposer dump-autoload
  • 如何安裝Composer?怎麼將PHP的Composer切換為國內源(阿里)?
    安裝網上能查到的資料,安裝方法都是:mv composer.phar /usr/local/bin/composer這要從國外下載,速度真的很急人,基本上都要1分鐘以上,我們可以通過國內的鏡像來下載安裝,比如阿里的鏡像,安裝方法如下:chmod
  • php擴展管理工具composer的坑、常見問題和解決方法
    找不到php.ini的同學 在命令行裡面#php -i | grep 'php.ini'     2)直接命令行通過參數修改[root@zjt-ecs-1 composertest1]# php -d memory_limit=-1 composer
  • 微信PHP開發框架 LaneWeChat 登陸 Composer
    使用方法:composer require lixuancn/lanewechat 或php /usr/local/composer/bin/composer.phar require lixuancn/lanewechat 代碼包地址:https://packagist.org/packages
  • 淺談PHP組件、框架以及Composer
    下面我們在項目最頂層運行如下命令:composer require guzzlehttp/guzzlecomposer require league/csvComposer會將依賴安裝到根目錄的vendor
  • composer安裝包文件忽略PHP版本的命令
    >引言 composer的出現,方便了廣大開發者。但是伴隨PHP環境和其他因素影響,安裝期間也會出現一些問題。下面就是解決PHP版本被識別錯了我們要強制安裝的方法Composer 不是一個包管理器。
  • 國內 PHP Composer 鏡像列表及配置方法
    比如 FastAdmin、 ThinkPHP、Laravel 等都是用 Composer 進行 php 包的管理。鏡像列表國內也很多開發者使用 Composer,但由於不可控因素,官方的伺服器常常連接不上。所以這裡收集了一下國內鏡像列表。
  • 解決composer由於php版本導致的運行錯誤
    今天想熟悉一下swoole,安裝一個php的微服務光加,需要用到composer,結果命令出錯了,出錯信息如下:好了,到這裡我們明白了,是在include_path,找不到對應文件,通過echo get_include_path();得到php的include_path經測試,發現php的include_path目錄為 「.:」php7.0的include_path目錄為 「.
  • Composer 中國全量鏡像開源了,一起讓 PHP 社區更繁榮
    詳細配置說明詳見 config.default.phpcp config.default.php config.php,修改 config.php 中的如下參 /** * distdir 用於存儲 zip 包 */ 'distdir' => __DIR__ .
  • php 包管理工具 composer 欄位結構
    構造composer.json文件有兩種 1個是項目根目錄包, 一個是依賴安裝包. composer.json文件位置分別放置在 項目根目錄 或 組件根目錄根目錄包就是在你的項目的根目錄由 composer.json 定義的包。主要就是由 composer.json 來定義你的項目的依賴。
  • PHP開發者該知道的5個Composer小技巧
    如果你編輯了composer.json,你應該會看到這樣的信息。比如,如果你增加或更新了細節信息,比如庫的描述、作者、更多參數,甚至僅僅增加了一個空格,都會改變文件的md5sum。然後Composer就會警告你哈希值和composer.lock中記載的不同。那麼我們該怎麼辦呢?
  • PHP開發人員是如何高效使用17個 Composer 實踐
    已上傳的 .travis.yml 配置類似下面的格式:代碼詳見 my mhujer/fio-api-php library 及 the build matrix on Travis CI雖然這解決了多數的不兼容問題,不過仍然要記得,依賴項的最低和最高版本間有太多的組合。他們仍舊可能存在不兼容的情況。
  • 「PHP編程」為什麼使用composer下載的包,不需要再include?
    使用Composer,你可以在自己的項目根目錄的composer.json中聲明所依賴的外部工具庫(libraries),然後在composer.json文件所在目錄執行composer install命令,Composer 就會幫你安裝這些依賴的庫文件。
  • 「PHP編程」如何搭建私有Composer包倉庫?
    在前一篇文章中,我們已經介紹了如何製作自己的 composer 包,以及如何使用 composer 安裝自己製作的 composer 包。不過,這其中有幾個問題。首先,如果你使用 VCS 類型,那每引入一個 composer 包,你都要指定一個倉庫地址;其次,如果你使用 composer 官方倉庫,雖然可以直接使用 require 命令,但私有的代碼也會被暴露。
  • 你必須知道的22個PHP Composer最佳實踐
    或者可能新版本有 bug 沒有修正,那麼 php_codesniffer 檢測你的代碼格式的時候會導致新問題,這在很大程度上可能會破壞一個應用的構建。依賴關係的更新應該是深思熟慮的,而不是偶然的。其中的一個技巧更詳細地討論了它。
  • composer 內存限制錯誤解決
    134217736 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 84Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 134217736 bytes
  • thinkphp6如何使用composer安裝
    使用php的包管理工具composer進行在線安裝。目前我使用的集成開發環境是phpstudy8安裝composer.2.設置php和composer的環境變量。phpstudy安裝在了d盤,php版本是7.4.3D:\phpstudy_pro\Extensions\composer1.8.5D:\phpstudy_pro\Extensions\php\php7.3.4nts3.使用powershell安裝thinkphp6 ,命令:composer config -g repo.packagist composer
  • 私有 composer 包創建
    但是可以用 PHP 的包管理呀, composer. 那新的問題來了, 我們自己私人的包, 並不想開源出去, 怎麼辦呢?來了, 利用gitlab github gitee 等管理自己的私有 composer 包.