Como publicar pacote e instalar com compositor php
-
21-12-2019 - |
Pergunta
Até agora consegui publicar meu pacote no packagist.Do meu repositório, http://github.com/pbalan/directory-parser
eu segui Como criar uma biblioteca para ser usada pelo carregamento automático do compositor?
Quando tento instalar o mesmo usando o compositor, não consigo.O compositor falha ao dizer:
Loading composer repositories with package information
Reading composer.json of pbalan/directory-parser (0.0.1)
Importing tag 0.0.1 (0.0.1.0)
Reading composer.json of pbalan/directory-parser (master)
Importing branch master (dev-master)
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package pbalan/directory-parser 1.0.0 could not be found.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
Aqui está meu compositor que tenho em meu repositório do github:
{
"name" : "pbalan/directory-parser",
"description" : "DirectoryParser",
"license": "MIT",
"keywords" : ["DirectoryParser"],
"homepage" : "https://github.com/pbalan/directory-parser",
"authors" : [
{
"name" : "prashant"
}
],
"autoload" : {
"psr-0" : {"src" : ""}
},
"require" : {
"php": ">=5.3.3"
}
}
E estou tentando instalar em um novo diretório usando este compositor.json:
{
"name" : "pbalan/directory-parser",
"description" : "DirectoryParser",
"license": "MIT",
"keywords" : ["DirectoryParser"],
"homepage" : "https://github.com/pbalan/directory-parser",
"authors" : [
{
"name" : "prashant"
}
],
"repositories": [
{
"type": "vcs",
"url": "http://github.com/pbalan/directory-parser.git"
}
],
"require" : {
"php": ">=5.3.3",
"pbalan/directory-parser": "dev-master"
}
}
Mudei meu compositor.json agora para um ponto em que não tenho erros, porém não consigo instalar o pacote e apenas instalar os arquivos do autoloader.
Como posso instalar meu pacote?Por favor ajude!
Solução
O problema é provavelmente que você está reutilizando o nome do seu pacote no segundo composer.json
.
Basta usar isso como o composer.json
para o seu diretório vazio:
{
"require": {
"php": ">=5.3.3",
"pbalan/directory-parser": "dev-master"
}
}
Isso é tudo!Você não precisa de todas as informações extras, como nome, descrição, etc.a menos que você esteja criando outra biblioteca que também esteja disponível no Packagist.