From 5856508976309d3dfc614611f015f168659cfefb Mon Sep 17 00:00:00 2001 From: Luiz Marin <67489841+luizcmarin@users.noreply.github.com> Date: Mon, 8 Apr 2024 14:23:16 -0300 Subject: [PATCH 1/3] translation into brazilian portuguese --- docs/guide/en/installation.md | 1 - docs/guide/en/reading-schema.md | 11 +-- docs/guide/pt-BR/README.md | 17 ++++ docs/guide/pt-BR/console-commands.md | 15 +++ docs/guide/pt-BR/installation.md | 80 +++++++++++++++ docs/guide/pt-BR/reading-schema.md | 142 +++++++++++++++++++++++++++ 6 files changed, 259 insertions(+), 7 deletions(-) create mode 100644 docs/guide/pt-BR/README.md create mode 100644 docs/guide/pt-BR/console-commands.md create mode 100644 docs/guide/pt-BR/installation.md create mode 100644 docs/guide/pt-BR/reading-schema.md diff --git a/docs/guide/en/installation.md b/docs/guide/en/installation.md index 40bc774..49c9bbd 100644 --- a/docs/guide/en/installation.md +++ b/docs/guide/en/installation.md @@ -11,7 +11,6 @@ composer require yiisoft/yii-cycle If you use Yii with `composer-config-plugin`, Yii-Cycle settings could be specified in `config/params.php`: ```php -` - Crie o arquivo `` de migração vazia +- `migrate/generate` - Gera arquivo de migração com base na diferença entre o esquema baseado em notação de entidade e a estrutura do banco de dados +- `migrate/up` - Aplicar todas as migrações ainda não aplicadas +- `migrate/down` - Reverter a última migração diff --git a/docs/guide/pt-BR/installation.md b/docs/guide/pt-BR/installation.md new file mode 100644 index 0000000..c9cc04b --- /dev/null +++ b/docs/guide/pt-BR/installation.md @@ -0,0 +1,80 @@ +# Instalação + +A forma preferida de instalar este pacote é através do [Composer](https://getcomposer.org/download/): + +```bash +compositor requer yiisoft/yii-cycle +``` + +## Configurando o pacote + +Se você usa Yii com `composer-config-plugin`, as configurações do Yii-Cycle podem ser especificadas em `config/params.php`: + +```php +use Cycle\Schema\Generator; +use Cycle\Schema\Provider\FromFilesSchemaProvider; +use Cycle\Schema\Provider\SimpleCacheSchemaProvider; +use Yiisoft\Yii\Cycle\Schema\Provider\FromConveyorSchemaProvider; + +return [ + // Common Cycle config + 'yiisoft/yii-cycle' => [ + // Cycle DBAL config + 'dbal' => [ + // PSR-3 compatible SQL query logger + 'query-logger' => null, + // Default database (from 'databases' list) + 'default' => 'default', + 'aliases' => [], + 'databases' => [ + 'default' => ['connection' => 'sqlite'] + ], + 'connections' => [ + // Example SQLite connection: + 'sqlite' => new \Cycle\Database\Config\SQLiteDriverConfig( + connection: new \Cycle\Database\Config\SQLite\DsnConnectionConfig( + // see https://www.php.net/manual/pdo.construct.php, DSN for connection syntax + dsn: 'sqlite:runtime/database.db' + ) + ), + ], + ], + + // Migrations config + 'migrations' => [ + 'directory' => '@root/migrations', + 'namespace' => 'App\\Migration', + 'table' => 'migration', + 'safe' => false, + ], + + /** + * A list of DB schema providers for {@see \Yiisoft\Yii\Cycle\Schema\Provider\Support\SchemaProviderPipeline} + * Providers are implementing {@see SchemaProviderInterface}. + * The configuration is an array of provider class names. Alternatively, you can specify provider class as key + * and its config as value: + */ + 'schema-providers' => [ + SimpleCacheSchemaProvider::class => SimpleCacheSchemaProvider::config( + key: 'my-custom-cache-key' + ), + FromFilesSchemaProvider::class => FromFilesSchemaProvider::config( + files: ['@runtime/cycle-schema.php'], + ), + FromConveyorSchemaProvider::class, + ], + + /** + * Option for {@see \Yiisoft\Yii\Cycle\Schema\Provider\FromConveyorSchemaProvider}. + * A list of entity directories. You can use {@see \Yiisoft\Aliases\Aliases} in paths. + */ + 'entity-paths' => [ + '@src/Entity' + ], + ], +]; +``` + +Leia mais na documentação do Cycle: + +- [Conectar ao banco de dados](https://cycle-orm.dev/docs/database-configuration/2.x/en#installation-declare-connection) diff --git a/docs/guide/pt-BR/reading-schema.md b/docs/guide/pt-BR/reading-schema.md new file mode 100644 index 0000000..34cda52 --- /dev/null +++ b/docs/guide/pt-BR/reading-schema.md @@ -0,0 +1,142 @@ +# Lendo o esquema do banco de dados + +O Cycle ORM depende do esquema do banco de dados - objeto, que implementa a interface `\Cycle\ORM\SchemaInterface`. + +Como um esquema é construído a partir de um array de uma determinada estrutura, podemos armazená-lo em cache ou em um arquivo de texto. + +Você pode exibir o esquema usado atualmente executando o comando `cycle/schema`. + +No `yii-cycle` o esquema do pacote pode ser construído a partir de múltiplas fontes representadas por múltiplos provedores implementando +`Cycle\Schema\Provider\SchemaProviderInterface`. + +Para usar vários provedores de esquema por sua vez, provedor `Cycle\Schema\Provider\Support\SchemaProviderPipeline` +é usado para agrupar. Você pode configurar este provedor na seção `schema-providers` de um arquivo `config/params.php`. +Organize os provedores de esquema em tal ordem que os provedores de cache fiquem no topo da lista, +e provedores de esquema de origem no final. + +## Esquema baseado em atributos de entidade + +Por padrão, o esquema é criado com base nos atributos que estão nas entidades do seu projeto. + +Ao construir um esquema, os geradores são executados sequencialmente. A sequência é determinada em uma instância de +`SchemaConveyorInterface`. Você pode inserir seus próprios geradores neste transportador definindo-os na +opção `entity-paths` do arquivo `config/params.php`. + +Para obter um esquema do transportador `FromConveyorSchemaProvider` é usado. + +O processo de construção de esquema a partir de atributos é relativamente pesado em termos de desempenho. Portanto, no caso de +usar atributos, é uma boa ideia usar o cache de esquema. + +## Cache de esquema + +A leitura e gravação de um esquema de e para o cache acontece em `Cycle\Schema\Provider\SimpleCacheSchemaProvider`. + +Coloque-o no início da lista de provedores para tornar o processo de obtenção de um esquema significativamente mais rápido. + +## Esquema baseado em arquivo + +Se quiser evitar atributos, você pode descrever um esquema em um arquivo PHP. +Use `Cycle\Schema\Provider\FromFilesSchemaProvider` para carregar um esquema: + +```php +# config/common.php +use Cycle\Schema\Provider\FromFilesSchemaProvider; + +return [ + // ... + 'yiisoft/yii-cycle' => [ + // ... + 'schema-providers' => [ + FromFilesSchemaProvider::class => FromFilesSchemaProvider::config(fiels: ['@runtime/schema.php']), + ], + ] +]; +``` + +```php +# runtime/schema.php +use Cycle\ORM\Schema; +return [ + 'user' => [ + Schema::MAPPER => \Cycle\ORM\Mapper\Mapper::class, + Schema::ENTITY => \App\Entity\User::class, + Schema::DATABASE => 'default', + Schema::TABLE => 'users', + Schema::PRIMARY_KEY => 'id', + Schema::COLUMNS => [ + 'id' => 'id', + 'name' => 'name' + ], + Schema::TYPECAST => [ + 'id' => 'int' + ], + Schema::RELATIONS => [] + ] +]; +``` + +Observe que: + +1. `FromFilesSchemaProvider` carrega um esquema de arquivos PHP via `include`. Isso requer precauções de segurança. + Certifique-se de armazenar o arquivo de esquema em um caminho seguro e restrito aos usuários. +2. Você pode especificar vários arquivos de esquema, que serão mesclados em um esquema. +Uma exceção será lançada em caso de colisão de funções. + +3. Graças ao cache interno, carregar o esquema de um arquivo PHP é tão rápido que você pode pular um cache externo. +Mas no caso de carregar vários arquivos, pode levar mais tempo para mesclá-los. +4. Você não pode gerar migrações com base no esquema de arquivo PHP. [Veja a edição #25](https://github.com/yiisoft/yii-cycle/issues/25) +5. O provedor apenas lê o esquema. Ele não pode atualizar o arquivo após a migração ser aplicada, como faz `SimpleCacheSchemaProvider`. + +## Construindo esquema de banco de dados de diferentes provedores + +Para mesclar partes do esquema obtidas de diferentes provedores, use `Cycle\Schema\Provider\MergeSchemaProvider`. + +```php +# runtime/schema.php +return [ + // ... + 'yiisoft/yii-cycle' => [ + // ... + 'schema-providers' => [ + \Cycle\Schema\Provider\MergeSchemaProvider::class => [ + // You can specify the provider class as the key and the configuration as the value. + // To generate a configuration array, you can use the static method `config()` of the + // provider class. In this case, autocomplete will be available. + \Cycle\Schema\Provider\FromFilesSchemaProvider::class => ['files' => ['@src/schema.php']], + // If you need to use multiple identically named schema providers, + // the provider and its configuration can be passed as an array of two elements. + [\Cycle\Schema\Provider\SimpleCacheSchemaProvider::class, ['key' => 'cycle-schema']], + // When defining the dependency as a string, make sure the container provides + // the already configured provider. + \Yiisoft\Yii\Cycle\Schema\Provider\FromConveyorSchemaProvider::class, + ] + ], + ] +]; +``` + +## Mudando de atributos para arquivo + +### Comando do console + +Para exportar o esquema como arquivo PHP, o comando `cycle/schema/php` pode ser usado. +Especifique um nome de arquivo como argumento e o esquema será gravado nele: + +```bash +cycle/schema/php @runtime/schema.php +``` + +O alias `@runtime` é substituído automaticamente. O esquema será exportado para o arquivo `schema.php`. + +Certifique-se de que o esquema exportado esteja correto e passe a usá-lo por meio de `FromFilesSchemaProvider`. + +Você pode combinar as duas maneiras para descrever um esquema. Durante o desenvolvimento do projeto é útil usar anotações. Você pode gerar +migrações baseadas neles. Para uso em produção, o esquema pode ser movido para um arquivo. + +### Provedor `PhpFileSchemaProvider` + +Ao contrário de `FromFilesSchemaProvider`, o `Cycle\Schema\Provider\PhpFileSchemaProvider` funciona com apenas um arquivo. Mas, +`PhpFileSchemaProvider` pode não apenas ler o esquema, mas também salvá-lo. + +No modo de leitura e gravação de um arquivo de esquema, o provedor `PhpFileSchemaProvider` funciona de forma semelhante ao cache, com +a única diferença é que o resultado salvo (arquivo de esquema) pode ser salvo na base de código. From 7cc67ec0e5ad3af68cf54b17a30927096695df92 Mon Sep 17 00:00:00 2001 From: Luiz Marin <67489841+luizcmarin@users.noreply.github.com> Date: Thu, 11 Apr 2024 12:54:42 -0300 Subject: [PATCH 2/3] Update composer.json Correction of "http://www.yiifram..." to "https://www.yiifram..." --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 9fff1d0..de80628 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,7 @@ "orm", "migrations" ], - "homepage": "http://www.yiiframework.com/", + "homepage": "https://www.yiiframework.com/", "license": "BSD-3-Clause", "support": { "issues": "https://github.com/yiisoft/yii-cycle/issues?state=open", From 9a6aa005a36eb562d3a8edc53bca1df55120320c Mon Sep 17 00:00:00 2001 From: Luiz Marin <67489841+luizcmarin@users.noreply.github.com> Date: Mon, 22 Apr 2024 06:22:42 -0300 Subject: [PATCH 3/3] Docs folder standardization and other fixes --- LICENSE.md | 8 ++++---- composer.json | 2 +- docs/guide/en/installation.md | 2 +- docs/guide/en/reading-schema.md | 2 +- docs/guide/es/installation.md | 2 +- docs/guide/es/reading-schema.md | 4 +--- docs/guide/pt-BR/installation.md | 4 ++-- docs/guide/pt-BR/reading-schema.md | 2 +- docs/guide/ru/installation.md | 2 +- docs/guide/ru/reading-schema.md | 4 ++-- 10 files changed, 15 insertions(+), 17 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index bc5674f..6a920d6 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,17 +1,17 @@ -Copyright © 2008 by Yii Software (https://www.yiiframework.com/) +Copyright © 2008 by Yii Software () All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Yii Software nor the names of its +* Neither the name of Yii Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/composer.json b/composer.json index de80628..4985541 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,7 @@ "issues": "https://github.com/yiisoft/yii-cycle/issues?state=open", "forum": "https://www.yiiframework.com/forum/", "wiki": "https://www.yiiframework.com/wiki/", - "irc": "irc://irc.freenode.net/yii", + "irc": "ircs://irc.libera.chat:6697/yii", "source": "https://github.com/yiisoft/yii-cycle" }, "require": { diff --git a/docs/guide/en/installation.md b/docs/guide/en/installation.md index 49c9bbd..372f307 100644 --- a/docs/guide/en/installation.md +++ b/docs/guide/en/installation.md @@ -2,7 +2,7 @@ The preferred way to install this package is through [Composer](https://getcomposer.org/download/): -```bash +```shell composer require yiisoft/yii-cycle ``` diff --git a/docs/guide/en/reading-schema.md b/docs/guide/en/reading-schema.md index bfc7af2..f7afe12 100644 --- a/docs/guide/en/reading-schema.md +++ b/docs/guide/en/reading-schema.md @@ -122,7 +122,7 @@ return [ In order to export schema as PHP file `cycle/schema/php` command could be used. Specify a file name as an argument and schema will be written into it: -```bash +```shell cycle/schema/php @runtime/schema.php ``` diff --git a/docs/guide/es/installation.md b/docs/guide/es/installation.md index c5de289..92e7ff0 100644 --- a/docs/guide/es/installation.md +++ b/docs/guide/es/installation.md @@ -2,7 +2,7 @@ La forma preferida de instalar este paquete es a través de [Composer](https://getcomposer.org/download/): -```bash +```shell composer require yiisoft/yii-cycle ``` diff --git a/docs/guide/es/reading-schema.md b/docs/guide/es/reading-schema.md index a933e70..e7e71e0 100644 --- a/docs/guide/es/reading-schema.md +++ b/docs/guide/es/reading-schema.md @@ -13,7 +13,6 @@ Para utilizar varios proveedores de esquemas, se utiliza el proveedor `Cycle\Sch de agrupación. Puede configurar este proveedor en la sección `schema-providers` en el archivo `config/params.php`. Los proveedores de esquemas deben estar organizados de la siguiente manera, los proveedores de caché deben estar al principio de la lista y los proveedores de esquemas de origen al final. - ## Esquema basado en atributos de entidades Por defecto, el esquema se construye basado en los atributos que están en las entidades de su proyecto. @@ -27,7 +26,6 @@ Para obtener un esquema del transportador se usa la clase `FromConveyorSchemaPro El proceso de construcción de esquemas a partir de atributos es relativamente pesado en términos de rendimiento. Por lo tanto, en caso de usar atributos es una buena idea usar el caché de esquemas. - ## Esquemas desde caché La lectura y escritura de un esquema desde y hacia la caché ocurre en `Cycle\Schema\Provider\SimpleCacheSchemaProvider`. @@ -123,7 +121,7 @@ return [ Para exportar el esquema como archivo `PHP` se puede utilizar el comando `cycle/schema/php`. Especifique el nombre del archivo como argumento y el esquema se escribirá en él: -```bash +```shell cycle/schema/php @runtime/schema.php ``` diff --git a/docs/guide/pt-BR/installation.md b/docs/guide/pt-BR/installation.md index c9cc04b..acb8d3e 100644 --- a/docs/guide/pt-BR/installation.md +++ b/docs/guide/pt-BR/installation.md @@ -2,8 +2,8 @@ A forma preferida de instalar este pacote é através do [Composer](https://getcomposer.org/download/): -```bash -compositor requer yiisoft/yii-cycle +```shell +composer require yiisoft/yii-cycle ``` ## Configurando o pacote diff --git a/docs/guide/pt-BR/reading-schema.md b/docs/guide/pt-BR/reading-schema.md index 34cda52..fe7fb18 100644 --- a/docs/guide/pt-BR/reading-schema.md +++ b/docs/guide/pt-BR/reading-schema.md @@ -122,7 +122,7 @@ return [ Para exportar o esquema como arquivo PHP, o comando `cycle/schema/php` pode ser usado. Especifique um nome de arquivo como argumento e o esquema será gravado nele: -```bash +```shell cycle/schema/php @runtime/schema.php ``` diff --git a/docs/guide/ru/installation.md b/docs/guide/ru/installation.md index b4641a9..21615a6 100644 --- a/docs/guide/ru/installation.md +++ b/docs/guide/ru/installation.md @@ -2,7 +2,7 @@ Предпочтительнее установить этот пакет через [Composer](https://getcomposer.org/download/): -```bash +```shell composer require yiisoft/yii-cycle ``` diff --git a/docs/guide/ru/reading-schema.md b/docs/guide/ru/reading-schema.md index 0093b7b..b40ec0b 100644 --- a/docs/guide/ru/reading-schema.md +++ b/docs/guide/ru/reading-schema.md @@ -8,7 +8,7 @@ Cycle ORM в своей работе полагается на схему — о Посмотреть используемую в вашем проекте схему вы можете с помощью консольной команды `cycle/schema`. В пакете `yii-cycle` схему из разных источников предоставляют разные поставщики, реализующие интерфейс -`Cycle\Schema\Provider\SchemaProviderInterface`. +`Cycle\Schema\Provider\SchemaProviderInterface`. Для того, чтобы последовательно использовать несколько поставщиков схемы, используется группирующий поставщик `Cycle\Schema\Provider\Support\SchemaProviderPipeline`, который можно сконфигурировать в секции `schema-providers` @@ -124,7 +124,7 @@ return [ Для экспорта схемы в виде PHP можно воспользоваться консольной командой `cycle/schema/php`. Укажите первым параметром имя файла и схема запишется в него: -```bash +```shell cycle/schema/php @runtime/schema.php ```