為什麼現在很多框架都用Composer來安裝,增加了學習難度?


一般情況下,你不需要學習太多 Composer 就能安裝吧,以 Laravel 為例,新建項目:

composer create-project --prefer-dist laravel/laravel blog

你只需要將上面的 `blog` 改為你想要的名字即可。對於命令行的執行結果,你不需要去了解每個選項和命令是啥意思,直接運行即可。

對於現有的 Laravel 項目,如 summerblue/larabbs ,安裝也是很簡單:

composer install

大部分使用,在國內使用 Composer 會遇到網路問題,不過現在也可以很方便的通過 Composer 中文鏡像 / Packagist 中國全量鏡像 來解決,只需要在命令行執行以下命令即可:

composer config -g repo.packagist composer https://packagist.laravel-china.org

建議作為新手,學習編程時經常會出現『技術話題過載』的問題,不用擔心,找個教程直接使用就行。你不需要在一開始就弄懂所有的概念,等到學習深入了,經驗慢慢積累了,那時候你再去了解 Composer 的機制和作用,會更加輕鬆。


你學PHP就是因為它簡單嗎?


難?

難的不是用composer,是讓你接受新事物。

依賴管理和自動載入用起來不要太爽。

一旦你用過composer,你就再也離不開它了。

JavaScript有npm

Java有Maven

Python3.4之後更直接把pip集成了。

PHP的呢?那就是composer了。

使用composer就跟點菜一樣簡單,除非你有選擇綜合症。


說實話,如果只是簡單的使用composer的話…… 它減少了學習難度……

起碼我用 npm的時候 是這麼感覺的……

不過有個問題…… 對於 依賴的依賴 以及 依賴的依賴的依賴…… 的版本控制

composer是怎麼管理的…… 這個我還真不是太清楚……


用多了,你會進入黑盒子狀態,說實話我不喜歡用這東西。用多了出問題,維護是個麻煩事


關於composer這種東西,你可以把他理解成蘋果系統下的Appstore和windows下的應用商店。他可以統一管理你系統里的第三方應用,節省你自己上網找軟體的時間,而且通常這種應用商店提供給的程序質量都能得到保障,因為他們已經幫你篩選和測試過一遍了。

當然你也完全可以不用,不用也一樣可以自己去網上找安裝包自己安裝,只需要記住跟著你的團隊走,如果你的項目組就是用composer在管理項目,你偏不用搞個性,那就說不過去了。


Composer是PHP界新出現的依賴管理工具,初識Composer的時候,有一種相見恨晚的感覺。

PHP也可以用pear和pecl進行依賴管理,前者是管理PHP庫,後者管理PHP擴展。在某些情況下也很方便,我尤其喜歡用pecl安裝PHP擴展。

Composer的優點在於僅需要提供一個composer.json文件,申明需要用到的三方庫,一個簡單的命令就能將其依賴全部裝好。也方便項目的部署和發布,因為只需要提供一個composer.json就行了。

現在的缺點是缺少對一些靜態資源(如js,css)的直接支持,這也許與其定位有關吧。

當然,Composer 不僅僅是依賴管理工具,還提供了自動載入的支持。這就涉及到php-fig組織的PSR-0規範了。有興趣可看其官方網站:PHP-FIG — PHP Framework Interop Group。

學習難度是有限的,但其帶來方便性卻是無限的!


很多使用composer的框架號稱不要重複造輪子.

其實呢,他們搞的各種基於composer的框架本質就是重複造輪子,是不是很諷刺.

在我看來,PHP7和Swoole引擎這些才是顛覆性/革命性的東西,而那些框架絕對不是.


composer都搞不定的話,你這輩子基本就告別編程了。


又來黑phper


唯一的難度是需要穩定的網速!


以前用pecl安裝擴展,我搞不懂,以前需要一個sdk到處找,然後複製到項目類庫,不想在需要的地方引入就直接入口載入了,造成了不必要的浪費,composer出世就是解決這個問題啊,難在命令行?說明你基礎不行啊。


很多框架使用說明很簡單好吧,以後框架什麼的都可以不用,路由,資料庫,緩存,模板引擎,容器都可以通過require得到,根據需求量身量身定製,你說吊不弔


首先要明確一個概念,出來一個新的技術,新的東西,不是為了給大家增加學習難度,而是為了解決問題

在日常開發中,我們常常用到別人已經開發好的插件啊,別人封裝好的各種包啊之類的,可以大幅加快我們的開發節奏,就好像蓋大樓,如果兩種選擇,一種是提供給你各種現成的建材,另一種也是連塊磚頭都要你自己燒制,你會選擇哪一種?毫無疑問,別人現成做好的東西,又方便,性能也比自己造的輪子快,我們當然會選擇用別人現成的東西。但是,與此同時會出現一個問題——依賴鏈。

什麼是依賴鏈?依賴,就像字面上的意思一樣,比如,jdk就是java的依賴,首先你得有jdk,你才能使用java,設想一下,如果你需要使用的一個包A,使用了包B和包C,也就是說如果想用A就得先導入B和C,A和B和C就構成了依賴鏈,一旦依賴鏈過長,就會出現很糟糕的情況,設想一下,當你想用包A,發現需要導入BCD,導完了這三個包,發現這三個包又各自有自己的依賴………OMG,這簡直就是場災難,而Composer的出現,完美的為PHP解決了這個問題,你只需要導入A,至於A所需的依賴就不需要你一個一個找了,Composer會自動幫你處理,當然JAVA中也有類似的工具如Maven,所以說,學好Composer是相當有必要的


套用一下 @大水 的答案,應該想想一下問題:

為什麼現在很多Javascript庫都需要npm,webpack等工具安裝,增加了學習難度嗎?

為什麼現在很多Java,Android的jar包都需要Maven,Gradle等工具安裝,增加了學習難度嗎?

為什麼現在很多python庫都需要pip等工具安裝,增加了學習難度嗎?

pi的增加學習難度?不存在的,這本來就是你的學習範圍。

PS:PHP簡單?不,是你們還沒玩到6翻。(一個普通的軟體設計師的心裡話)


Composer只是一個依賴管理的工具。在前端有npm 在python 中有pip。在ruby中有gem。php一直有了composer才讓我們的代碼可以更加的連接起來。不用到處找輪子。學習一個工具的難度並不是很大。


各個語言基本都有類似的三方包管理器。

怎麼到了php這裡就成了增加難度了。。

不要黑phper的素養好不好。


我感覺是因為翻牆網速成本高~~


composer 其實很簡單,很好用,它避免了你很多的學習過程,

另外舉個例子:php安裝擴展時,自己手動編譯也可以,但有時候成本會很高,要考慮各種系統但方法以及依賴,但如果你使用pecl安裝,那就是一個命令但事情,就如使用Siri一樣簡單。

composer 類似,安裝軟體但時候,不用考慮內部依賴關係以及實現,你只要負責使用即可,

當然,你如果想了解,composer 安裝之後源碼也是存在但,而且有標準但文檔說明,

其實,很好,努力發現就對了。


composer這玩意真沒難度。又不是讓你寫插件


推薦閱讀:

php查詢資料庫用了一個c寫的擴展,這樣做有什麼好處呢?
Mac 下如何搭建 PHP 開發環境?
建站的主要流程?
MVC 模式前端應該寫模板嘛?

TAG:PHP | PHP開發 | PHP學習 | Laravel | Composer |