combustor é um pacote de utilitários para Codeigniter 3 que gera controladores, modelos e visualizações com base nas tabelas de banco de dados fornecidas. Ele usa o pacote Describe para obter colunas de uma tabela de banco de dados e como base para geração de código.
Codeigniter 3 ;combustor fará o resto. Extraia primeiro o conteúdo do projeto Codeigniter 3 mais recente:
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacmeEm seguida, defina as configurações de conectividade do banco de dados do projeto:
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
); A seguir é prosseguir com a instalação combustor via Composer:
$ composer require rougin/ combustor --dev // ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
} Por último, instale os wrappers ORM como Wildfire ou Doctrine :
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrineObservação
Usar o comando install:wildfire instala o pacote Wildfire enquanto install:doctrine instala o pacote Credo.
Antes de executar qualquer comando, certifique-se de que as tabelas do banco de dados estejam definidas corretamente (chaves estrangeiras, índices, relacionamentos, normalizações) para minimizar as modificações após a geração da estrutura do código.
Além disso, prossiga primeiro na geração de modelos, visualizações ou controladores para tabelas de banco de dados que não têm relacionamento com outras tabelas no banco de dados.
Dica
combustor gerará controladores, modelos ou visualizações com base no esquema de banco de dados especificado. Se houver algo errado no esquema do banco de dados especificado, combustor gerará uma base de código incorreta.
create:layoutCrie um novo arquivo de cabeçalho e rodapé.
Opções
--bootstrap - adiciona estilo baseado em Bootstrap--force - gera arquivos mesmo que eles já existamExemplo
$ vendor/bin/ combustor create-layout --bootstrapcreate:controllerCrie um novo controlador HTTP.
Argumentos
table - nome da tabela do banco de dadosOpções
--doctrine - gera um controlador baseado em Doctrine--wildfire - gera um controlador baseado no Wildfire--empty - gera um controlador HTTP vazio--force - gera arquivos mesmo que eles já existam Observação
Se Wildfire ou Doctrine estiverem instalados, não há necessidade de especificá-lo como opção para executar um comando específico (por exemplo, --wildfire ). No entanto, se ambos estiverem instalados, um comando deve ter uma opção --wildfire ou --doctrine adicionada.
Exemplo
$ vendor/bin/ combustor create:controller users --wildfirecreate:modelCrie um novo modelo.
Argumentos
table - nome da tabela do banco de dadosOpções
--doctrine - gera um modelo baseado em Doutrina--wildfire - gera um modelo baseado no Wildfire--empty - gera um modelo vazio--force - gera arquivos mesmo que eles já existamExemplo
$ vendor/bin/ combustor create:model users --wildfirecreate:repositoryCrie um novo repositório de entidade.
Argumentos
table - nome da tabela do banco de dadosOpções
--force - gera arquivos mesmo que eles já existamExemplo
$ vendor/bin/ combustor create:repository usersObservação
Este comando só é aplicável a uma implementação do Doctrine.
create:viewCrie modelos de visualização.
Argumentos
table - nome da tabela do banco de dadosOpções
--bootstrap - adiciona estilo baseado em Bootstrap--doctrine - gera visualizações baseadas em Doutrina--wildfire - gera visualizações baseadas no Wildfire--force - gera arquivos mesmo que eles já existamExemplo
$ vendor/bin/ combustor create:view users --bootstrapcreate:scaffoldCrie um novo controlador HTTP, modelo e modelos de visualização.
Argumentos
table - nome da tabela do banco de dadosOpções
--bootstrap - adiciona estilo baseado em Bootstrap--doctrine - gera um controlador, modelo e visualizações baseados em Doctrine--wildfire - gera um controlador, modelo e visualizações baseados no Wildfire--force - gera arquivos mesmo que eles já existamExemplo
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfireObservação
Se --doctrine for selecionado, o comando também executará o comando create:repository .
install:doctrineInstale o pacote Doctrine.
Exemplo
$ vendor/bin/ combustor install:doctrineObservação
Doctrine não estiver instalado no projeto.Loader.php no diretório core . O referido arquivo é usado para carregar repositórios personalizados estendidos para EntityRepository .install:wildfireInstale o pacote Wildfire.
Exemplo
$ vendor/bin/ combustor install:wildfireObservação
Este comando estará disponível se Wildfire não estiver instalado no projeto.
remove:doctrineRemova o pacote Doctrine.
Exemplo
$ vendor/bin/ combustor remove:doctrineObservação
Este comando estará disponível se Doctrine estiver instalado no projeto.
remove:wildfireRemova o pacote Wildfire.
Exemplo
$ vendor/bin/ combustor remove:wildfireObservação
Este comando estará disponível se Wildfire estiver instalado no projeto.
combustor .yml combustor atualmente funciona imediatamente após a configuração baseada na Installation . No entanto, o uso de um combustor .yml pode ser usado para configurações complexas, como especificar o novo caminho do aplicativo e excluir colunas:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at Para criar um combustor .yml , basta executar o comando initialize :
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !app_path Esta propriedade especifica o diretório application . Ele pode ser atualizado para qualquer diretório (por exemplo, ciacme/application , ciacme/config , etc.), desde que possa detectar o arquivo config/config.php do diretório definido:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ... Observação
combustor tentará verificar o caminho especificado em app_path se for um projeto Codeigniter 3 válido. Em seguida, ele realizará outra verificação se o diretório application existe ou se o diretório config pode ser acessado diretamente do diretório definido em app_path .
excluded_fieldsOs campos especificados nesta propriedade são excluídos da geração para os seguintes modelos:
controllersmodelsviews (somente para create e edit modelos) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at Observação
Os carimbos de data e hora são adicionados por padrão ao criar um combustor .yml pela primeira vez, pois geralmente são preenchidos automaticamente por ORMs instalados, como Wildfire ou Doctrine .
custom_fields Por padrão, todos os campos gerados pelo combustor para create e edit páginas usarão o auxiliar form_input :
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
<?= form_input ( ' email ' , set_value ( ' email ' ), ' class="form-control" ' ) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div> No entanto, alguns campos como email e tipos boolean podem precisar usar outros auxiliares de formulário:
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Still using form_input, but the type is "email" instead
<?= form_input ([ ' type ' => ' email ' , ' name ' => ' email ' , ' value ' => set_value ( ' email ' ), ' class ' => ' form-control ' ]) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div><div class="mb- 3 ">
<?= form_label ( ' Admin ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Use "form_checkbox" for boolean-based data types
<div>
<?= form_checkbox ( ' admin ' , true , set_value ( ' admin ' ), ' class="form-check-input" ' ) ?>
</div>
<?= form_error ( ' admin ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div> Para conseguir isso, combustor fornece um utilitário para lidar com nomes de campos ou tipos de dados especificados usando custom_fields :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField Ao adicionar um campo personalizado, crie uma classe que se estenda à classe Colfield :
namespace Acme Fields ;
use Rougin combustor Colfield ;
class EmailField extends Colfield
{
protected $ class = ' form-control ' ;
/**
* If $name is specified, it will check if the current field
* name matches the in this $name field.
*/
protected $ name = ' email ' ;
public function getPlate ()
{
$ field = $ this -> accessor ;
$ class = $ this -> getClass ();
/** @var string */
$ name = $ this -> getName ();
$ html = ' <?= form_input([ ' type ' => ' email ' , ' name ' => '' . $ name . '' , ' value ' => set_value( '' . $ name . '' )]) ?> ' ;
if ( $ this -> edit )
{
$ html = str_replace ( ' set_value( '' . $ name . '' ) ' , ' set_value( '' . $ name . '' , ' . $ field . ' ) ' , $ html );
}
$ html = str_replace ( ' )]) ?> ' , ' ), ' class ' => '' . $ class . '' ]) ?> ' , $ html );
return array ( $ html );
}
} Depois de criar o campo personalizado, basta adicionar o nome da classe ao combustor .yml :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.
$ composer test A licença MIT (MIT). Consulte LICENÇA para obter mais informações.