Para que serve o composer?

Sei que é um gerenciador de dependências, mas o que é uma dependência? o importante aqui não é como instalá-lo e sim o seu objetivo e suas vantagens e desvantagens.
Por favor, utilize uma linguagem informal.

Eu fiz uma pesquisa, nada muito aprofundado devido ao meu mal entendimento sobre o assunto.

1 curtida

No mundo da informática: dependência é aquilo que o seu projeto precisa para funcionar, ele depende de tais requisitos para funcionar, já o composer controla essas dependências que faz parte mundo PHP, o nuget controla isso no mundo .NET, maven no mundo Java, e assim por diante. O composer tem um papel de controlar versionamentos e sub dependências dos pacotes envolvidos no seu projeto.

Lembrando que existem mais de um gerenciador de dependências. O mundo Java, mesmo, tem três bem famosos. Ant, Maven e Gradle.

Uma dependência é exatamente o que o nome dela diz: Dependência.

Meu software X depende da biblioteca Y para rodar. Logo, Y é dependência de X.

Vou trazer pro mundo Java (entendo nada de PHP). Quando você precisa de uma biblioteca especifica, de uma instalação externa ou de “qualquer coisa que não tenha vindo com o SDK/JDK”, você está com uma dependência. Existem N formas de gerenciar dependencias, você pode instalar na mão, você pode usar um gerenciador, você pode pegar só as classes que precisa da biblioteca (perigosissimo), enfim…

Vantagens de usar um gerenciador de dependências: Toda! Automatização do download destas, atualização automática para a última versão, confiabilidade de que essa biblioteca sempre estará no projeto… Depende das ferramentas que seu gerenciador tem. Por exemplo, no Gradle, eu buildo, baixo todas as dependências, gero um Jar e executo. Em, sei lá, três segundos.

[]'s