Initial commit: apps.prometeysev.ru

This commit is contained in:
root committed 2026-10-22 00:22:57 +03:00
commit 96ccabcd8b
6561 files changed
+1270349

No files matched your search

+9
View File
@@ -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
View File
@@ -0,0 +1,7 @@
.. toctree::
:maxdepth: 2
:caption: CakePHP Bake
/index
/usage
/development
+280
View File
@@ -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
View File
@@ -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
View File
@@ -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