Uma extensão de produtividade para Visual Studio Code que ajuda desenvolvedores PHP a implementar rapidamente métodos de interfaces em suas classes.
Funcionalidades ✨
Implementação de Métodos: Insere automaticamente os métodos de uma interface em uma classe que a implementa.
Suporte a Múltiplas Interfaces: Detecta e implementa métodos de múltiplas interfaces declaradas em uma única linha implements.
Gerenciamento de Imports: Adiciona automaticamente as declarações use necessárias da interface, evitando duplicatas e garantindo a sintaxe correta.
Prevenção de Duplicatas: Não adiciona métodos ou imports que já existem na classe.
Formatação Automática: Formata o código após a inserção dos métodos para manter a consistência.
Como Usar 🚀
Instalação:
Abra o VS Code.
Vá para a visualização de Extensões (Ctrl+Shift+X ou Cmd+Shift+X).
Pesquise por "PHP Interface Implementer".
Clique em Instalar.
Uso:
Abra um arquivo PHP que contenha uma classe que implementa uma ou mais interfaces.
Posicione o cursor em qualquer lugar da linha onde a declaração implements está (ex: class MyClass implements MyInterface {).
Clique com o botão direito do mouse e clique em PHP Interface: Implement Methods.
A extensão irá então adicionar automaticamente os métodos da interface (ou interfaces) ao corpo da sua classe.
Exemplo de Uso 💡
Antes:
<?php
namespace App\Http\Controllers;
use App\Http\HttpInterface;
use App\Http\HttpInterface2;
class TestContro implements HttpInterface, HttpInterface2 {
}
Depois (após executar o comando):
<?php
namespace App\Http\Controllers;
use App\Http\HttpInterface;
use App\Http\HttpInterface2;
use App\Models\User; // Exemplo de import adicionado automaticamente
class TestContro implements HttpInterface2 {
public function mothodTest(): bool {
// TODO: Implement methodTest()
}
public function methodTest2(string $id): ?User
{
// TODO: Implement methodTest2() method
}
}
Contribuições 🤝
Contribuições são sempre bem-vindas! Se você encontrar um bug ou tiver uma ideia para uma nova funcionalidade, por favor, abra uma issue no repositório GitHub ou envie um Pull Request.
Licença 📄
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.