Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Segredo para uma vida longa: pouca cama, pouco prato, muita sola de sapato. (Autor desconhecido)

5 - Gerando Código com Bake

5 - Gerando CRUD com Bake e muito mais

 

Algumas pessoas querem que algo aconteça, outras desejam que aconteça, outras fazem acontecer.

Michael Jordan

http://book.cakephp.org/3.0/en/bake.html

A console bake do CakePHP é um outro esforço para que você esteja rodando o CakePHP rapidamente. A console do bake pode criar qualquer um dos códigos básicos do CakePHP: models, behaviors, views, helpers, controllers, components, test cases, fixtures e plugins. E não estamos falando apenas de esqueletos de classes, o bake pode criar uma aplicação inteiramente funcional em poucos minutos.

 

Pré-requisitos

A console do bake requer:

- PHP CLI

- extensão intl

- Pelo menos um SGBD instalado e configurado na aplicação atual

 

Executando o bake

cd /var/www/html/cliente

bin/cake bake

Mostrará:

The following commands can be used to generate skeleton code for your application.

Available bake commands:

- all

- behavior

- cell

- command

- component

- controller

- fixture

- form

- helper

- mailer

- middleware

- migration

- migration_diff

- migration_snapshot

- model

- plugin

- seed

- shell

- shell_helper

- task

- template

- test

- twig_template

By using `cake bake [name]` you can invoke a specific bake task.

 

Obtendo ajuda para controllers com o bake

bin/cake bake controller --help

Veja:

bin/cake bake controller --help

Bake a controller skeleton.

Usage:

cake bake controller [subcommand] [options] [<name>]

Subcommands:

all Bake all controllers with CRUD methods.

To see help on a subcommand use `cake bake controller [subcommand] --help`

Options:

--actions The comma separated list of actions to generate. You

can include custom methods provided by your template

set here.

--components The comma separated list of components to use.

--connection, -c The datasource connection to get data from.

(default: default)

--force, -f Force overwriting existing files without prompting.

--help, -h Display this help.

--helpers The comma separated list of helpers to use.

--no-actions Do not generate basic CRUD action methods.

--no-test Do not generate a test skeleton.

--plugin, -p Plugin to bake into.

--prefix The namespace/routing prefix to use.

--quiet, -q Enable quiet output.

--theme, -t The theme to use when baking code. (choices:

Bake|Migrations|WyriHaximus/TwigView)

--verbose, -v Enable verbose output.

Arguments:

name Name of the controller to bake (without the `Controller` suffix).

You can use Plugin.name to bake controllers into plugins.

 

Versatilidade do bake

Ajuda para plugins

bin/cake bake plugin --help

Gerar tudo para Clientes (controller, model, templates, etc)

bin/cake bake all Clientes

 

Gerar novamente forçando

Caso já tenha gerado um código e queira gerar novamente evitando as perguntas para sobrescrever os arquivos gerados, use --force ou -f, assim:

bin/cake bake all Clientes -f

 

Gerar um controller:

bin/cake bake controller Clientes

 

Gerar controller sem actions:

bin\cake bake controller --no-actions Clientes

 

Gerar Componente

bin/cake bake component Calculo

 

Gerar um Template

bin/cake bake template Clientes

 

Gerar Helper

bin/cake bake helper MeuForm

 

Gerar Cell

bin/cake bake cell MinhaCelula

 

Gerar Form

bin/cake bake form MeuForm

 

Gerar um Model

bin/cake bake model Clientes

 

Gerar Behavior

bin/cake bake behavior MeuBehavior

 

Gerar apenas controller, model e template

bin/cake bake controller clientes

bin/cake bake model clientes

bin/cake bake template clientes index (somente a index)

 

Gerando plugin

bin/cake bake all --plugin CakePtbr articles

 

Agora gerar o código completo para o plugin

bin/cake bake all -p CakeAdmin groups

bin/cake bake all -p CakeAdmin users

bin/cake bake all -p CakeAdmin permissions

bin/cake bake all -p CakeAdmin customers

 

Criar plugin ContactManager com tabela contacts para o aplicativo cliente

cd /var/www/html/cliente

bin/cake bake plugin ContactManager

bin/cake bake controller --plugin ContactManager Contacts

bin/cake bake migration CreateContacts title:string body:text created modified

bin/cake bake migration CreateGroups name:string created modified

bin/cake bake migration CreateUsers username:string password:string created modified

bin/cake migrations migrate

bin/cake bake model --plugin ContactManager Contacts

bin/cake bake template --plugin ContactManager Contacts

 

Estrutura de Arquivos do Plugin

/src
/plugins
    /ContactManager
        /config
        /src
            /Plugin.php
            /Controller
                /Component
            /Model
                /Table
                /Entity
                /Behavior
            /View
                /Helper
            /Template
                /Layout
        /tests
            /TestCase
            /Fixture
        /webroot

Regerando o autoloader

composer dump-autoload

 

Limpando o cache

composer clear-cache

 

Observação

Existem alguns recursos que não são gerados ou auxiliados pelo bake, como o element.

 

Outros comandos

bin/cake bake fixture groups

bin/cake bake test users

 

Garantir que não use cache:

bin/cake bake model comments –force
bin/cake bake model issues –force
bin/cake orm_cache clear

Cache do ORM

Reconstruir o cache dos metadados de todas as tabelas da conexão default

bin/cake orm_cache build --connection default

 

Para reconstruir o cache dos metadados apenas da tabela artigos

bin/cake orm_cache build --connection default artigos

 

Remover o cache de todos os metadados:

bin/cake orm_cache clear

 

Remover o cache de todos os metadados da tabela aratigos

bin/cake orm_cache clear artigos

 

Criando Model para o Plugin

bin/cake bake model --plugin Admin Groups

bin/cake bake model --plugin Admin Users

 

Criando Templates para o Plugin

bin/cake bake template --plugin Admin Groups

bin/cake bake template --plugin Admin Users

 

Criar somente a view login.ctp para o Plugin

bin/cake bake template --plugin Admin Users login

 

Observação importante:

Atualmente na versão 3, idealmente devemos criar plugins para a pasta vendor, que são hospedados num repositório público, como o GitHub e publicados num repositório do composer, como o Packagist. Assim podemos instalar e publicar o plugin pela linha de comando com o composer.

 

A oitava maravilha do mundo

Gosto de dizer que o bake é a oitava maravilha do mundo da programação web. Realmente me maravilho com seus resultados mágicos e ele me prende ao Cake.

Mas gostaria de deixar aqui um alerta, especialmente para o programador iniciante: evite ficar preso somente ao bake e se satisfazer com o resultado dele. Ao contrário estude o código gerado por ele, que por sinal é muito bom, para então conseguir adaptar seus aplicativos para as tuas necessidades e dos teus clientes.

Comodismo é algo que acaba com o programador e me parece que com qualquer área da vida do ser humano. A curiosidade, a motivação, o interesse em estudar, aprender, mexer, customizar, isso sim, devem estar presentes na vida do programador e do ser humano, me parece.

Detalhes - https://book.cakephp.org/bake/1.x/en/index.html

Comments fornecido por CComment

Novo Testamento

E, DEPOIS que cessou o alvoroço, Paulo chamou a si os discípulos e, abraçando-os, saiu para a Macedônia.
(At, 1:1)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper