Initial commit: apps.prometeysev.ru
This commit is contained in:
commit
96ccabcd8b
6561 files changed
+1270349
No files matched your search
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
import sys, os
|
||||
|
||||
# Append the top level directory of the docs, so we can import from the config dir.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
# Pull in all the configuration options defined in the global config file..
|
||||
from config.all import *
|
||||
|
||||
language = 'pt'
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP Bake
|
||||
|
||||
/index
|
||||
/usage
|
||||
/development
|
||||
+280
@@ -0,0 +1,280 @@
|
||||
Extendendo o Bake
|
||||
#################
|
||||
|
||||
Bake fornece uma extenssiva arquitetura que permite a sua aplicação ou plugin ser modificado ou adicionar funcionalidades as bases. Bake faz uso de uma classe view dedicada que usa o `Twig <https://twig.symfony.com/>`_ engine de templates.
|
||||
|
||||
Eventos do Bake
|
||||
===============
|
||||
|
||||
Como uma class view , ``BakeView`` emite o mesmo evento como qualquer outra classe view,
|
||||
mais uma extra que inicializa eventos. No entanto, onde classe view padrão usa o prefixo "View.", ``BakeView`` usa o prefixo "Bake.".
|
||||
|
||||
O inicializador de eventos pode ser usado para fazer mudanças quando aplicadoa toda a saida do bake
|
||||
, por exemplo ao adicionar outro helper ao bake view class este evebti oide ser usado::
|
||||
|
||||
<?php
|
||||
// config/bootstrap_cli.php
|
||||
|
||||
use Cake\Event\Event;
|
||||
use Cake\Event\EventManager;
|
||||
|
||||
EventManager::instance()->on('Bake.initialize', function (Event $event) {
|
||||
$view = $event->getSubject();
|
||||
|
||||
// No meu bake de templates, permite uso de MuSpecial helper
|
||||
$view->loadHelper('MySpecial', ['some' => 'config']);
|
||||
|
||||
// E adicionar uma variável $author então este estará sempre disponível
|
||||
$view->set('author', 'Andy');
|
||||
|
||||
});
|
||||
|
||||
Se você quer modificar o seu bake apartir de outro pugin, coloque o bake do seu plugin dentro do arquivo do seu próprio plugin ``config/bootstrap.php`` será uma boa ideia.
|
||||
|
||||
Os eventos do Bake podem ser úteis para fazer pequenas alterações nos modelos existentes.
|
||||
Por exemplo, para alterar os nomes das variáveis usados quando o controlador / modelo de baking
|
||||
arquivos podem usar uma função ouvindo ``Bake.beforeRender`` para modificar as variaveis usadas no bake templates::
|
||||
|
||||
<?php
|
||||
// config/bootstrap_cli.php
|
||||
|
||||
use Cake\Event\Event;
|
||||
use Cake\Event\EventManager;
|
||||
|
||||
EventManager::instance()->on('Bake.beforeRender', function (Event $event) {
|
||||
$view = $event->getSubject();
|
||||
|
||||
// Use $ rows para a variável de dados principal em índices
|
||||
if ($view->get('pluralName')) {
|
||||
$view->set('pluralName', 'rows');
|
||||
}
|
||||
if ($view->get('pluralVar')) {
|
||||
$view->set('pluralVar', 'rows');
|
||||
}
|
||||
|
||||
// Use $ theOne para a variável de dados principal em exibição / edição
|
||||
if ($view->get('singularName')) {
|
||||
$view->set('singularName', 'theOne');
|
||||
}
|
||||
if ($view->get('singularVar')) {
|
||||
$view->set('singularVar', 'theOne');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Você também pode abranger o ``Bake.beforeRender`` e ``Bake.afterRender`` eventos para um arquivo gerado específico. Por exemplo, se você quiser adicionar ações específicas para seu UsersController ao gerar a partir de um arquivo **Controller/controller.twig**,
|
||||
você pode usar o seguinte evento::
|
||||
|
||||
<?php
|
||||
// config/bootstrap_cli.php
|
||||
|
||||
use Cake\Event\Event;
|
||||
use Cake\Event\EventManager;
|
||||
use Cake\Utility\Hash;
|
||||
|
||||
EventManager::instance()->on(
|
||||
'Bake.beforeRender.Controller.controller',
|
||||
function (Event $event) {
|
||||
$view = $event->getSubject();
|
||||
if ($view->viewVars['name'] == 'Users') {
|
||||
// adicionar ações de login e logout ao Users controller
|
||||
$view->viewVars['actions'] = [
|
||||
'login',
|
||||
'logout',
|
||||
'index',
|
||||
'view',
|
||||
'add',
|
||||
'edit',
|
||||
'delete'
|
||||
];
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
Ao adicionar eventos que escutam o seu bake de templates, você pode simplesmente relacionar a sua logica de eventos com o bake e fornecer callbacks que são facilmente testáveis.
|
||||
|
||||
Sintaxe de Templates do Bake
|
||||
============================
|
||||
|
||||
Bake arquivos de template usa a sintaxe `Twig <https://twig.symfony.com/doc/2.x/>`__ de templates .
|
||||
|
||||
Uma forma de ver/entender como o bake de templates funciona, especialmente quando tentamos modificar os arquivos de templates, é executar o bake de uma classe que compara o template usado com o template pré processado deixado anteriormente pela aplicação
|
||||
|
||||
**tmp/bake** folder.
|
||||
|
||||
Então, por exemplo, quando baking a shell é como?
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
bin/cake bake shell Foo
|
||||
|
||||
O template usado (**vendor/cakephp/bake/src/Template/Bake/Shell/shell.twig**)
|
||||
parece com algo assim::
|
||||
|
||||
<?php
|
||||
namespace {{ namespace }}\Shell;
|
||||
|
||||
use Cake\Console\Shell;
|
||||
|
||||
/**
|
||||
* {{ name }} shell command.
|
||||
*/
|
||||
class {{ name }}Shell extends Shell
|
||||
{
|
||||
/**
|
||||
* main() method.
|
||||
*
|
||||
* @return bool|int Success or error code.
|
||||
*/
|
||||
public function main()
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
E o resultado baked é uma classe (**src/Shell/FooShell.php**) que parece algo assim::
|
||||
|
||||
<?php
|
||||
namespace App\Shell;
|
||||
|
||||
use Cake\Console\Shell;
|
||||
|
||||
/**
|
||||
* Foo shell command.
|
||||
*/
|
||||
class FooShell extends Shell
|
||||
{
|
||||
/**
|
||||
* main() method.
|
||||
*
|
||||
* @return bool|int Success or error code.
|
||||
*/
|
||||
public function main()
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.. note::
|
||||
|
||||
A priori a versão 1.5.0 bake usava um erb style tag dentro dos arquivos .ctp
|
||||
|
||||
* ``<%`` Um template bake php abre a tag
|
||||
* ``%>`` Um template bake php fecha a tag
|
||||
* ``<%=`` Um template bake php short-echo tag
|
||||
* ``<%-`` Um template bake php abre a tag, revirando qualquer espaço em branco antes da tag
|
||||
* ``-%>`` Um template bake php fecha a tag, revirando qualqualquer espaço em branco após a tag
|
||||
|
||||
.. _creating-a-bake-theme:
|
||||
|
||||
Criando um Tema Bake
|
||||
=====================
|
||||
|
||||
Se você deseja modificar a saída produzida com o comando bake, você pode criar o seu próprio tema para o bake, aos quais permitirá a você subsituir algum ou todos os tempaltes que o bake usa. o mmelhor jeito de fazer isto é:
|
||||
|
||||
#. Bake um novo plugin. O nome do plugin é o bake 'nome do tema'
|
||||
#. Crie uma nova pasta em **plugins/[name]/src/Template/Bake/Template/**.
|
||||
#. Copie qualquer template que você queira para sobrescrer de
|
||||
**vendor/cakephp/bake/src/Template/Bake/Template** que feche com os arquivos no seu plugin.
|
||||
#. Quando executando o bake use a opção ``--theme`` para especificar qual o tema que o bake deve usar
|
||||
. Para evitar problemas com esta opção, em cada chamada, você tambem pode definir o seu template customizado para ser usado como o template padrão::
|
||||
|
||||
<?php
|
||||
// no config/bootstrap.php ou no config/bootstrap_cli.php
|
||||
Configure::write('Bake.theme', 'MyTheme');
|
||||
|
||||
Customizando templates do bake
|
||||
==============================
|
||||
|
||||
Se você deseja modificar a saida produzida pelo comando "bake", você pode
|
||||
criar o seu próprio tema na sua aplicação. Esta forma não usa a opção
|
||||
``--theme`` no na linha de comando quando baking. A melhor forma de fazer isto é:
|
||||
|
||||
#. Criar um novo diretório **/src/Template/Bake/**.
|
||||
#. Copiar qualquer arquivo que você queira sobrescrever de
|
||||
**vendor/cakephp/bake/src/Template/Bake/** para fechar com os arquivos da sua aplicação.
|
||||
|
||||
Criando novos comando bake
|
||||
=================================
|
||||
|
||||
É possivel adicionar novas opções de comandos, ou sobrescrever alguns providos
|
||||
pelo CakePHP, criando tarefas na sua aplicação ou no seu plugin. Extendendo
|
||||
``Bake\Shell\Task\BakeTask``, bake encontrará a nova tarefa e incluirá isto como
|
||||
parte de sí mesmo.
|
||||
|
||||
Como um exemplo, nós vamos criar uma tarefa que cria uma classe foo. Primeiro,
|
||||
crie um arquivo de tarefa **src/Shell/Task/FooTask.php**. Vamos extender de
|
||||
``SimpleBakeTask`` por agora como nossa nova shell task será simples.
|
||||
``SimpleBakeTask`` é abstrata e requer que nós definirmos 3 metodos, que conta
|
||||
ao nosso bake que a tarefa é chamada, onde os arquivos são deverão ser gerados,
|
||||
e o qual template usar. Nosso arquivo FooTask.php deve parecer com ::
|
||||
|
||||
<?php
|
||||
namespace App\Shell\Task;
|
||||
|
||||
use Bake\Shell\Task\SimpleBakeTask;
|
||||
|
||||
class FooTask extends SimpleBakeTask
|
||||
{
|
||||
public $pathFragment = 'Foo/';
|
||||
|
||||
public function name()
|
||||
{
|
||||
return 'foo';
|
||||
}
|
||||
|
||||
public function fileName($name)
|
||||
{
|
||||
return $name . 'Foo.php';
|
||||
}
|
||||
|
||||
public function template()
|
||||
{
|
||||
return 'foo';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Uma vez que o arquivo foi criado, nós precisamos criar um templarte que o bake
|
||||
pdoe usar quando gerar código. Crie **src/Template/Bake/foo.twig**. e neste
|
||||
arquivo nós vamos adicionar o seguinte conteúdo::
|
||||
|
||||
<?php
|
||||
namespace {{ namespace }}\Foo;
|
||||
|
||||
/**
|
||||
* {{ $name }} foo
|
||||
*/
|
||||
class {{ name }}Foo
|
||||
{
|
||||
// Adicione código.
|
||||
}
|
||||
|
||||
Você deve agora poder ver esta nova tarefa na saida de ``bin/cake bake``. Você pode executar a sua nova tarefa executando ``bin/cake bake foo Example``.
|
||||
Isto gerará uma nova classe ``ExampleFoo`` em **src/Foo/ExampleFoo.php**
|
||||
for your application to use.
|
||||
|
||||
Se você quer ``bake`` chame para também criar um arquivo de teste para o sua classe ``ExampleFoo``, você rpecisará sobrescrever o metodo ``bakeTest()`` na classe ``FooTask`` para registrar a classe sufixo e namespace para o seu comando customizado ::
|
||||
|
||||
public function bakeTest($className)
|
||||
{
|
||||
if (!isset($this->Test->classSuffixes[$this->name()])) {
|
||||
$this->Test->classSuffixes[$this->name()] = 'Foo';
|
||||
}
|
||||
|
||||
$name = ucfirst($this->name());
|
||||
if (!isset($this->Test->classTypes[$name])) {
|
||||
$this->Test->classTypes[$name] = 'Foo';
|
||||
}
|
||||
|
||||
return parent::bakeTest($className);
|
||||
}
|
||||
|
||||
* A **class suffix** vai se indexado ao mesmo nome providenciado por você na sua chamada de ``bake``
|
||||
. No exemplo anterior, isto criaria o arquivo ``ExampleFooTest.php`` .
|
||||
* O **class type** vai ser o sub namespace usado para o seu arquivo (relativo ao aplicativo ou plugin que vocês está baking). No exemplo anterior, isto poderia criar o seu teste com o namespace ``App\Test\TestCase\Foo``
|
||||
|
||||
.. meta::
|
||||
:title lang=en: Extending Bake
|
||||
:keywords lang=en: command line interface,development,bake view, bake template syntax,twig,erb tags,percent tags
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
Bake Console
|
||||
############
|
||||
|
||||
O bake console do CakePHP é outro empenho para você ter o CakePHP configurado
|
||||
e funcionando rápido. O bake console pode criar qualquer ingrediente básico do
|
||||
CakePHP: models, behaviors, views, helpers, components, test cases, fixtures e
|
||||
plugins. E nós não estamos apenas falando de classes esqueleto: O Bake pode
|
||||
criar uma aplicação totalmente funcional em questão de minutos. De fato, o Bake
|
||||
é um passo natural a se dar uma vez que a aplicação tem seu alicerce construído.
|
||||
|
||||
Instalação
|
||||
==========
|
||||
|
||||
Antes de tentar usar ou extender o bake, tenha certeza que ele está instalado em
|
||||
sua aplicação. O bake é distribuído como um plugin que você pode instalar com o
|
||||
Composer::
|
||||
|
||||
composer require --dev cakephp/bake:~1.0
|
||||
|
||||
Isto irá instalar o bake como uma dependência de desenvolvimento, sendo assim,
|
||||
não instalado quando em um ambiente de produção.
|
||||
|
||||
.. meta::
|
||||
:title lang=pt: Bake Console
|
||||
:keywords lang=pt: cli,linha de comando,command line,dev,desenvolvimento,bake view, bake syntax,erb tags,asp tags,percent tags
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
Geração de código com bake
|
||||
##########################
|
||||
|
||||
O console do cake é executado usando a CLI do PHP (interface da linha de comando).
|
||||
Se você tiver problemas para executar o script, assegure-se de que:
|
||||
|
||||
#. Você instalou a CLI do PHP e possui os módulos apropriados habilitados (por
|
||||
exemplo: MySQL, intl).
|
||||
#. Os usuários também podem ter problemas se o host do banco de dados for
|
||||
'localhost' e deve tentar '127.0.0.1', em vez disso, como localhost pode
|
||||
causar problemas com CLI PHP.
|
||||
#. Dependendo de como o seu computador está configurado, você pode ter que
|
||||
definir direitos de execução no script cake bash para chamá-lo usando
|
||||
``bin/cake bake``.
|
||||
|
||||
Antes de executar o Bake você deve certificar-se de ter pelo menos um banco de dados
|
||||
conexão configurada.
|
||||
|
||||
Quando executado sem argumentos ``bin/cake bake`` irá exibir uma lista de
|
||||
tarefas. Você deve ver algo como::
|
||||
|
||||
$ bin/cake bake
|
||||
|
||||
Welcome to CakePHP v3.4.6 Console
|
||||
---------------------------------------------------------------
|
||||
App : src
|
||||
Path: /var/www/cakephp.dev/src/
|
||||
PHP : 5.6.20
|
||||
---------------------------------------------------------------
|
||||
The following commands can be used to generate skeleton code for your application.
|
||||
|
||||
Available bake commands:
|
||||
|
||||
- all
|
||||
- behavior
|
||||
- cell
|
||||
- component
|
||||
- controller
|
||||
- fixture
|
||||
- form
|
||||
- helper
|
||||
- mailer
|
||||
- migration
|
||||
- migration_diff
|
||||
- migration_snapshot
|
||||
- model
|
||||
- plugin
|
||||
- seed
|
||||
- shell
|
||||
- shell_helper
|
||||
- task
|
||||
- template
|
||||
- test
|
||||
|
||||
By using `cake bake [name]` you can invoke a specific bake task.
|
||||
|
||||
Você pode obter mais informações sobre o que cada tarefa faz e quais são as opções
|
||||
disponível usando o ``--help`` option::
|
||||
|
||||
$ bin/cake bake --help
|
||||
|
||||
Welcome to CakePHP v3.4.6 Console
|
||||
---------------------------------------------------------------
|
||||
App : src
|
||||
Path: /var/www/cakephp.dev/src/
|
||||
PHP : 5.6.20
|
||||
---------------------------------------------------------------
|
||||
The Bake script generates controllers, models and template files for
|
||||
your application. If run with no command line arguments, Bake guides the
|
||||
user through the class creation process. You can customize the
|
||||
generation process by telling Bake where different parts of your
|
||||
application are using command line arguments.
|
||||
|
||||
Usage:
|
||||
cake bake.bake [subcommand] [options]
|
||||
|
||||
Subcommands:
|
||||
|
||||
all Bake a complete MVC skeleton.
|
||||
behavior Bake a behavior class file.
|
||||
cell Bake a cell class file.
|
||||
component Bake a component class file.
|
||||
controller Bake a controller skeleton.
|
||||
fixture Generate fixtures for use with the test suite. You
|
||||
can use `bake fixture all` to bake all fixtures.
|
||||
form Bake a form class file.
|
||||
helper Bake a helper class file.
|
||||
mailer Bake a mailer class file.
|
||||
migration Bake migration class.
|
||||
migration_diff Bake migration class.
|
||||
migration_snapshot Bake migration snapshot class.
|
||||
model Bake table and entity classes.
|
||||
plugin Create the directory structure, AppController class
|
||||
and testing setup for a new plugin. Can create
|
||||
plugins in any of your bootstrapped plugin paths.
|
||||
seed Bake seed class.
|
||||
shell Bake a shell class file.
|
||||
shell_helper Bake a shell_helper class file.
|
||||
task Bake a task class file.
|
||||
template Bake views for a controller, using built-in or
|
||||
custom templates.
|
||||
test Bake test case skeletons for classes.
|
||||
|
||||
To see help on a subcommand use `cake bake.bake [subcommand] --help`
|
||||
|
||||
Options:
|
||||
|
||||
--connection, -c Database connection to use in conjunction with `bake
|
||||
all`. (default: default)
|
||||
--everything Bake a complete MVC skeleton, using all the available
|
||||
tables. Usage: "bake all --everything"
|
||||
--force, -f Force overwriting existing files without prompting.
|
||||
--help, -h Display this help.
|
||||
--plugin, -p Plugin to bake into.
|
||||
--prefix Prefix to bake controllers and templates into.
|
||||
--quiet, -q Enable quiet output.
|
||||
--tablePrefix Table prefix to be used in models.
|
||||
--theme, -t The theme to use when baking code. (choices:
|
||||
Bake|Migrations)
|
||||
--verbose, -v Enable verbose output.
|
||||
|
||||
Temas para o Bake
|
||||
=================
|
||||
|
||||
A opção de tema é comum a todos os comandos do bake, e permite mudar os arquivos de modelo usados no bake. Para criar seus próprios modelos, veja a
|
||||
:ref:`documentação de criação de themes para o bake <creating-a-bake-theme>`.
|
||||
|
||||
.. meta::
|
||||
:title lang=pt: Geração de código com bake
|
||||
:keywords lang=pt: command line interface,functional application,database,database configuration,bash script,basic ingredients,project,model,path path,code generation,scaffolding,windows users,configuration file,few minutes,config,iew,shell,models,running,mysql
|
||||
Reference in new issue
Block a user