Skip to content

Commit

Permalink
Update guide: Object -> BaseObject
Browse files Browse the repository at this point in the history
issue #7936
  • Loading branch information
rob006 authored and cebe committed Jul 19, 2017
1 parent d4e584f commit 5b2101f
Show file tree
Hide file tree
Showing 69 changed files with 274 additions and 274 deletions.
2 changes: 1 addition & 1 deletion docs/guide-es/concept-behaviors.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class MyBehavior extends Behavior
```
El código anterior define la clase de comportamiento (behavior) app\components\MyBehavior`, con dos propiedades --
`prop1` y `prop2`--y un método `foo()`. Tenga en cuenta que la propiedad `prop2`
se define a través de la getter `getProp2()` y el setter `setProp2()`. Este caso es porque [[yii\base\Behavior]] extiende [[yii\base\Object]] y por lo tanto se apoya en la definición de [propiedades](concept-properties.md) via getters y setters.
se define a través de la getter `getProp2()` y el setter `setProp2()`. Este caso es porque [[yii\base\Behavior]] extiende [[yii\base\BaseObject]] y por lo tanto se apoya en la definición de [propiedades](concept-properties.md) via getters y setters.

Debido a que esta clase es un comportamiento, cuando está unido a un componente, el componente también tienen la propiedad `prop1` y `prop2` y el método `foo()`.

Expand Down
14 changes: 7 additions & 7 deletions docs/guide-es/concept-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,22 @@ echo DatePicker::widget([
Las propiedades del widget son fácilmente modificables porque la clase se extiende de [[yii\base\Component]].

Mientras que los componentes son muy potentes, son un poco más pesados que los objetos normales, debido al hecho de que necesitan más memoria y tiempo de CPU para poder soportar [eventos](concept-events.md) y [comportamientos](concept-behaviors.md) en particular.
Si tus componentes no necesitan estas dos características, deberías considerar extender tu componente directamente de [[yii\base\Object]] en vez de [[yii\base\Component]]. De esta manera harás que tus componentes sean mucho más eficientes que objetos PHP normales, pero con el añadido soporte para [propiedades](concept-properties.md).
Si tus componentes no necesitan estas dos características, deberías considerar extender tu componente directamente de [[yii\base\BaseObject]] en vez de [[yii\base\Component]]. De esta manera harás que tus componentes sean mucho más eficientes que objetos PHP normales, pero con el añadido soporte para [propiedades](concept-properties.md).

Cuando extiendes tu clase de [[yii\base\Component]] o [[yii\base\Object]], se recomienda que sigas las siguientes convenciones:
Cuando extiendes tu clase de [[yii\base\Component]] o [[yii\base\BaseObject]], se recomienda que sigas las siguientes convenciones:

- Si sobrescribes el constructor, especifica un parámetro `$config` como el *último* parámetro del constructor, y después pasa este parámetro al constructor padre.
- Siempre llama al constructor padre al *final* de su propio constructor.
- Si sobrescribes el método [[yii\base\Object::init()]], asegúrese de llamar la implementación padre de `init` * al principio * de su método` init`.
- Si sobrescribes el método [[yii\base\BaseObject::init()]], asegúrese de llamar la implementación padre de `init` * al principio * de su método` init`.

Por ejemplo:

```php
namespace yii\components\MyClass;

use yii\base\Object;
use yii\base\BaseObject;

class MyClass extends Object
class MyClass extends BaseObject
{
public $prop1;
public $prop2;
Expand Down Expand Up @@ -76,11 +76,11 @@ $component = \Yii::createObject([
> Info: Mientras que el enfoque de llamar [[Yii::createObject()]] parece mucho más complicado, es mucho más potente debido al hecho de que se implementa en la parte superior de un [contenedor de inyección de dependencia](concept-di-container.md).

La clase [[yii\base\Object]] hace cumplir el siguiente ciclo de vida del objeto:
La clase [[yii\base\BaseObject]] hace cumplir el siguiente ciclo de vida del objeto:

1. Pre-inicialización en el constructor. Puedes establecer los valores predeterminados de propiedades aquí.
2. Configuración del objeto a través de `$config`. La configuración puede sobrescribir los valores prdeterminados dentro del constructor.
3. Post-inicialización dentro de [[yii\base\Object::init()|init()]]. Puedes sobrescribir este método para realizar comprobaciones de validez y normalización de las propiedades.
3. Post-inicialización dentro de [[yii\base\BaseObject::init()|init()]]. Puedes sobrescribir este método para realizar comprobaciones de validez y normalización de las propiedades.
4. Llamadas a métodos del objeto.

Los tres primeros pasos ocurren dentro del constructor del objeto. Esto significa que una vez obtengas la instancia de un objeto, ésta ha sido inicializada para que puedas utilizarla adecuadamente.
2 changes: 1 addition & 1 deletion docs/guide-es/concept-configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ A continuación se muestra un ejemplo de una configuración con los valores de p

## Usando Configuraciones <span id="using-configurations"></span>

Las configuraciones se utilizan en muchos lugares en Yii. Al comienzo de esta sección, hemos demostrado cómo crear un objeto según una configuración mediante el uso de [[Yii::CreateObject()]]. En este apartado, vamos a describir configuraciones de aplicaciones y configuraciones widget - dos principales usos de configuraciones.
Las configuraciones se utilizan en muchos lugares en Yii. Al comienzo de esta sección, hemos demostrado cómo crear un objeto según una configuración mediante el uso de [[Yii::createObject()]]. En este apartado, vamos a describir configuraciones de aplicaciones y configuraciones widget - dos principales usos de configuraciones.


### Configuraciones de aplicación <span id="application-configurations"></span>
Expand Down
10 changes: 5 additions & 5 deletions docs/guide-es/concept-di-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ registra una dependencia o se crea un nuevo objeto, se puede proporcionar una co
para inyectar las dependencias a través de sus correspondientes setters y propiedades. Por ejemplo,

```php
use yii\base\Object;
use yii\base\BaseObject;

class Foo extends Object
class Foo extends BaseObject
{
public $bar;

Expand Down Expand Up @@ -185,7 +185,7 @@ una nueva instancia de `UserLister` con una simple llamada a `get('userLister')`
```php
namespace app\models;

use yii\base\Object;
use yii\base\BaseObject;
use yii\db\Connection;
use yii\di\Container;

Expand All @@ -194,7 +194,7 @@ interface UserFinderInterface
function findUser();
}

class UserFinder extends Object implements UserFinderInterface
class UserFinder extends BaseObject implements UserFinderInterface
{
public $db;

Expand All @@ -209,7 +209,7 @@ class UserFinder extends Object implements UserFinderInterface
}
}

class UserLister extends Object
class UserLister extends BaseObject
{
public $finder;

Expand Down
2 changes: 1 addition & 1 deletion docs/guide-es/concept-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ lugar de a la instancia del objeto.

> Note: Debido a que los gestores a nivel de clase responderán a los eventos lanzados por cualquier instancia de la
clase, o cualquier clase hija, se debe usar con cuidado, especialmente en las clases de bajo nivel (low-level), tales
como [[yii\base\Object]].
como [[yii\base\BaseObject]].

Para desadjuntar un gestor de eventos a nivel de clase, se tiene que llamar a [[yii\base\Event::off()]]. Por ejemplo:

Expand Down
10 changes: 5 additions & 5 deletions docs/guide-es/concept-properties.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ ejemplo que la primera letra tiene que estar en mayúsculas, se tendrán que mod
asignen el valor a la propiedad `label`. La repetición de código conlleva a bugs, y es una practica que se tiene que
evitar en la medida de lo posible.

Para solventar este problema, Yii introduce la clase base llamada [[yii\base\Object]] que da soporte a la definición
Para solventar este problema, Yii introduce la clase base llamada [[yii\base\BaseObject]] que da soporte a la definición
de propiedades basada en los métodos de clase *getter* y *setter*. Si una clase necesita más funcionalidad, debe
extender a la clase [[yii\base\Object]] o a alguna de sus hijas.
extender a la clase [[yii\base\BaseObject]] o a alguna de sus hijas.

> Info: Casi todas las clases del núcleo (core) en el framework Yii extienden a [[yii\base\Object]] o a una de
> Info: Casi todas las clases del núcleo (core) en el framework Yii extienden a [[yii\base\BaseObject]] o a una de
sus clases hijas. Esto significa que siempre que se encuentre un getter o un setter en una clase del núcleo, se
puede utilizar como una propiedad.

Expand All @@ -32,9 +32,9 @@ setter `setLabel()` definen la propiedad `label`, como se muestra a continuació
```php
namespace app\components;

use yii\base\Object;
use yii\base\BaseObject;

class Foo extends Object
class Foo extends BaseObject
{
private $_label;

Expand Down
16 changes: 8 additions & 8 deletions docs/guide-es/intro-upgrade-from-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,25 @@ al autoloader de Yii.)
Componentes y Objetos
----------------------

Yii 2.0 parte la clase `CComponent` de 1.1 en dos clases: [[yii\base\Object]] y [[yii\base\Component]].
La clase [[yii\base\Object|Object]] es una clase base que permite definir [propiedades de object](concept-properties.md)
a través de getters y setters. La clase [[yii\base\Component|Component]] extiende de [[yii\base\Object|Object]] y soporta
Yii 2.0 parte la clase `CComponent` de 1.1 en dos clases: [[yii\base\BaseObject]] y [[yii\base\Component]].
La clase [[yii\base\BaseObject|BaseObject]] es una clase base que permite definir [propiedades de object](concept-properties.md)
a través de getters y setters. La clase [[yii\base\Component|Component]] extiende de [[yii\base\BaseObject|BaseObject]] y soporta
[eventos](concept-events.md) y [comportamientos](concept-behaviors.md).

Si tu clase no necesita utilizar las características de eventos o comportamientos, puedes considerar usar
[[yii\base\Object|Object]] como clase base. Esto es frecuente en el caso de que las clases que representan sean
[[yii\base\BaseObject|BaseObject]] como clase base. Esto es frecuente en el caso de que las clases que representan sean
estructuras de datos básicas.


Configuración de objetos
------------------------

La clase [[yii\base\Object|Object]] introduce una manera uniforme de configurar objetos. Cualquier clase descendiente
de [[yii\base\Object|Object]] debería declarar su constructor (si fuera necesario) de la siguiente manera para que
La clase [[yii\base\BaseObject|BaseObject]] introduce una manera uniforme de configurar objetos. Cualquier clase descendiente
de [[yii\base\BaseObject|BaseObject]] debería declarar su constructor (si fuera necesario) de la siguiente manera para que
puede ser adecuadamente configurado:

```php
class MyClass extends \yii\base\Object
class MyClass extends \yii\base\BaseObject
{
public function __construct($param1, $param2, $config = [])
{
Expand All @@ -94,7 +94,7 @@ class MyClass extends \yii\base\Object

En el ejemplo de arriba, el último parámetro del constructor debe tomar un array de configuración que
contiene pares clave-valor para la inicialización de las propiedades al final del mismo.
Puedes sobrescribir el método [[yii\base\Object::init()|init()]] para realizar el trabajo de inicialización
Puedes sobrescribir el método [[yii\base\BaseObject::init()|init()]] para realizar el trabajo de inicialización
que debe ser hecho después de que la configuración haya sido aplicada.

Siguiendo esa convención, podrás crear y configurar nuevos objetos utilizando
Expand Down
4 changes: 2 additions & 2 deletions docs/guide-es/runtime-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -598,9 +598,9 @@ Podemos crear la siguiente clase de reglas de URL para solucionar el problema.
namespace app\components;

use yii\web\UrlRuleInterface;
use yii\base\Object;
use yii\base\BaseObject;

class CarUrlRule extends Object implements UrlRuleInterface
class CarUrlRule extends BaseObject implements UrlRuleInterface
{

public function createUrl($manager, $route, $params)
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-es/structure-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ mencionados a continuación para facilitar a otra gente el uso de nuestra extens
características que no pueden ser detalladas completamente en el archivo `readme`.
* Documentación de API: el código debe documentarse debidamente para que otras personas puedan leerlo y entenderlo
fácilmente. Más información acerca de documentación de código en
[archivo de Objetos de clase](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php)
[archivo de Objetos de clase](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php)

> Info: Los comentarios de código pueden ser escritos en formato Markdown. La extensión `yiisoft/yii2-apidoc`
proporciona una herramienta para generar buena documentación de API basándose en los comentarios del código.
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-fr/concept-behaviors.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class MyBehavior extends Behavior
}
```

Le code ci-dessus définit la classe de comportement `app\components\MyBehavior` avec deux propriété — `prop1` et `prop2` — et une méthode `foo()`. Notez que la propriété `prop2` est définie via la méthode d'obtention `getProp2` et la méthode d'assignation `setProp2`. Cela est le cas parce que la classe [[yii\base\Behavior]] étend la classe [[yii\base\Object]] et, par conséquent, prend en charge la définition des [propriétés](concept-properties.md) via les méthodes d'obtention et d'assignation.
Le code ci-dessus définit la classe de comportement `app\components\MyBehavior` avec deux propriété — `prop1` et `prop2` — et une méthode `foo()`. Notez que la propriété `prop2` est définie via la méthode d'obtention `getProp2` et la méthode d'assignation `setProp2`. Cela est le cas parce que la classe [[yii\base\Behavior]] étend la classe [[yii\base\BaseObject]] et, par conséquent, prend en charge la définition des [propriétés](concept-properties.md) via les méthodes d'obtention et d'assignation.

Comme cette classe est un comportement, lorsqu'elle est attachée à un composant, ce composant acquiert alors les propriétés `prop1` et `prop2`, ainsi que la méthode `foo()`.

Expand Down
4 changes: 2 additions & 2 deletions docs/guide-fr/concept-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Les propriétés de l'objet graphique sont faciles à écrire car la classe éte

Tandis que les composants sont très puissants, ils sont un peu plus lourds que les objets normaux. Cela est dû au fait que, en particulier, la prise en charge des fonctionnalités [event](concept-events.md) et [behavior](concept-behaviors.md) requiert un peu plus de mémoire et de temps du processeur. Si vos composants n'ont pas besoin de ces deux fonctionnalités, vous devriez envisager d'étendre la classe [[yii\base\Object]] au lieu de la classe [[yii\base\Component]]. Ce faisant, votre composant sera aussi efficace que les objets PHP normaux, mais avec la prise en charge des [propriétés](concept-properties.md).

Lorsque votre classe étend la classe [[yii\base\Component]] ou [[yii\base\Object]], il est recommandé que suiviez ces conventions :
Lorsque votre classe étend la classe [[yii\base\Component]] ou [[yii\base\BaseObject]], il est recommandé que suiviez ces conventions :

- Si vous redéfinissez le constructeur, spécifiez un paramètre `$config` en tant que *dernier* paramètre du constructeur est passez le au constructeur du parent.
- Appelez toujours le constructeur du parent *à la fin* de votre constructeur redéfini.
Expand Down Expand Up @@ -76,7 +76,7 @@ $component = \Yii::createObject([
> Info: bien que l'approche qui consiste à appeler la méthode [[Yii::createObject()]] semble plus compliquée, elle est plus puissante car elle est mise en œuvre sur un [conteneur d'injection de dépendances](concept-di-container.md).

La classe [[yii\base\Object]] fait appliquer le cycle de vie suivant de l'objet :
La classe [[yii\base\BaseObject]] fait appliquer le cycle de vie suivant de l'objet :

1. Pré-initialisation dans le constructeur. Vous pouvez définir les propriétés par défaut à cet endroit.
2. Configuration de l'objet via `$config`. La configuration peut écraser les valeurs par défaut définies dans le constructeur.
Expand Down
12 changes: 6 additions & 6 deletions docs/guide-fr/concept-di-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ Yii::$container->invoke([$obj, 'doSomething'], ['param1' => 42]); // $something
L'injection par les méthodes d'assignation et les propriétés est prise en charge via les [configurations](concept-configurations.md). Lors de l'enregistrement d'une dépendance ou lors de la création d'un nouvel objet, vous pouvez fournir une configuration qui est utilisée par le conteneur pour injecter les dépendances via les méthodes d'assignation ou les propriétés correspondantes. Par exemple :

```php
use yii\base\Object;
use yii\base\BaseObject;

class Foo extends Object
class Foo extends BaseObject
{
public $bar;

Expand All @@ -92,7 +92,7 @@ $container->get('Foo', [], [
]);
```

> Info: la méthode [[yii\di\Container::get()]] accepte un tableau de configuration qui peut être appliqué à l'objet en création comme troisième paramètre. Si la classe implémente l'interface [[yii\base\Configurable]] (p. ex. [[yii\base\Object]]), le tableau de configuration est passé en tant que dernier paramètre du constructeur de la classe ; autrement le tableau de configuration serait appliqué *après* la création de l'objet.
> Info: la méthode [[yii\di\Container::get()]] accepte un tableau de configuration qui peut être appliqué à l'objet en création comme troisième paramètre. Si la classe implémente l'interface [[yii\base\Configurable]] (p. ex. [[yii\base\BaseObject]]), le tableau de configuration est passé en tant que dernier paramètre du constructeur de la classe ; autrement le tableau de configuration serait appliqué *après* la création de l'objet.
### Injection par une méthode de rappel PHP <span id="php-callable-injection"></span>

Expand Down Expand Up @@ -215,7 +215,7 @@ Le code suivant montre un exemple plus sophistiqué. La classe `UserLister` dép
```php
namespace app\models;

use yii\base\Object;
use yii\base\BaseObject;
use yii\db\Connection;
use yii\di\Container;

Expand All @@ -224,7 +224,7 @@ interface UserFinderInterface
function findUser();
}

class UserFinder extends Object implements UserFinderInterface
class UserFinder extends BaseObject implements UserFinderInterface
{
public $db;

Expand All @@ -239,7 +239,7 @@ class UserFinder extends Object implements UserFinderInterface
}
}

class UserLister extends Object
class UserLister extends BaseObject
{
public $finder;

Expand Down
2 changes: 1 addition & 1 deletion docs/guide-fr/concept-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);

Notez que, dans ce cas, `$event->sender` fait référence au nom de la classe qui a déclenché l'événement plutôt qu'à une instance de classe.

> Note: comme les gestionnaires attachés au niveau de la classe répondent aux événements déclenchés par n'importe quelle instance de cette classe, ou de ses classes filles, vous devez utiliser cette fonctionnalité avec précaution, en particulier si la classe est une classe de bas niveau comme la classe [[yii\base\Object]].
> Note: comme les gestionnaires attachés au niveau de la classe répondent aux événements déclenchés par n'importe quelle instance de cette classe, ou de ses classes filles, vous devez utiliser cette fonctionnalité avec précaution, en particulier si la classe est une classe de bas niveau comme la classe [[yii\base\BaseObject]].
Pour détacher un gestionnaire attaché au niveau de la classe, appelez [[yii\base\Event::off()]]. Par exemple :

Expand Down
Loading

0 comments on commit 5b2101f

Please sign in to comment.