Browse Source

Update guide: Object -> BaseObject

issue #7936
tags/2.0.13
Robert Korulczyk 7 years ago committed by Carsten Brandt
parent
commit
5b2101f14c
  1. 2
      docs/guide-es/concept-behaviors.md
  2. 14
      docs/guide-es/concept-components.md
  3. 2
      docs/guide-es/concept-configurations.md
  4. 10
      docs/guide-es/concept-di-container.md
  5. 2
      docs/guide-es/concept-events.md
  6. 10
      docs/guide-es/concept-properties.md
  7. 16
      docs/guide-es/intro-upgrade-from-v1.md
  8. 4
      docs/guide-es/runtime-routing.md
  9. 2
      docs/guide-es/structure-extensions.md
  10. 2
      docs/guide-fr/concept-behaviors.md
  11. 4
      docs/guide-fr/concept-components.md
  12. 12
      docs/guide-fr/concept-di-container.md
  13. 2
      docs/guide-fr/concept-events.md
  14. 10
      docs/guide-fr/concept-properties.md
  15. 16
      docs/guide-fr/intro-upgrade-from-v1.md
  16. 4
      docs/guide-fr/runtime-routing.md
  17. 2
      docs/guide-fr/structure-extensions.md
  18. 16
      docs/guide-id/intro-upgrade-from-v1.md
  19. 16
      docs/guide-it/intro-upgrade-from-v1.md
  20. 2
      docs/guide-ja/concept-behaviors.md
  21. 14
      docs/guide-ja/concept-components.md
  22. 2
      docs/guide-ja/concept-configurations.md
  23. 12
      docs/guide-ja/concept-di-container.md
  24. 2
      docs/guide-ja/concept-events.md
  25. 12
      docs/guide-ja/concept-properties.md
  26. 16
      docs/guide-ja/intro-upgrade-from-v1.md
  27. 4
      docs/guide-ja/runtime-routing.md
  28. 2
      docs/guide-ja/structure-extensions.md
  29. 14
      docs/guide-pl/concept-components.md
  30. 14
      docs/guide-pl/intro-upgrade-from-v1.md
  31. 2
      docs/guide-pt-BR/concept-behaviors.md
  32. 14
      docs/guide-pt-BR/concept-components.md
  33. 12
      docs/guide-pt-BR/concept-di-container.md
  34. 2
      docs/guide-pt-BR/concept-events.md
  35. 8
      docs/guide-pt-BR/concept-properties.md
  36. 16
      docs/guide-pt-BR/intro-upgrade-from-v1.md
  37. 4
      docs/guide-pt-BR/runtime-routing.md
  38. 4
      docs/guide-pt-BR/structure-extensions.md
  39. 2
      docs/guide-ru/concept-behaviors.md
  40. 14
      docs/guide-ru/concept-components.md
  41. 12
      docs/guide-ru/concept-di-container.md
  42. 2
      docs/guide-ru/concept-events.md
  43. 12
      docs/guide-ru/concept-properties.md
  44. 16
      docs/guide-ru/intro-upgrade-from-v1.md
  45. 4
      docs/guide-ru/runtime-routing.md
  46. 2
      docs/guide-ru/structure-extensions.md
  47. 16
      docs/guide-uk/intro-upgrade-from-v1.md
  48. 14
      docs/guide-uz/intro-upgrade-from-v1.md
  49. 2
      docs/guide-zh-CN/concept-behaviors.md
  50. 14
      docs/guide-zh-CN/concept-components.md
  51. 4
      docs/guide-zh-CN/concept-configurations.md
  52. 10
      docs/guide-zh-CN/concept-di-container.md
  53. 2
      docs/guide-zh-CN/concept-events.md
  54. 10
      docs/guide-zh-CN/concept-properties.md
  55. 12
      docs/guide-zh-CN/intro-upgrade-from-v1.md
  56. 2
      docs/guide-zh-CN/structure-extensions.md
  57. 2
      docs/guide/concept-behaviors.md
  58. 14
      docs/guide/concept-components.md
  59. 12
      docs/guide/concept-di-container.md
  60. 2
      docs/guide/concept-events.md
  61. 14
      docs/guide/concept-properties.md
  62. 16
      docs/guide/intro-upgrade-from-v1.md
  63. 4
      docs/guide/runtime-routing.md
  64. 2
      docs/guide/structure-extensions.md
  65. 6
      docs/internals-ja/core-code-style.md
  66. 6
      docs/internals-pl/core-code-style.md
  67. 6
      docs/internals-ru/core-code-style.md
  68. 6
      docs/internals-uk/core-code-style.md
  69. 6
      docs/internals/core-code-style.md

2
docs/guide-es/concept-behaviors.md

@ -44,7 +44,7 @@ class MyBehavior extends Behavior
``` ```
El código anterior define la clase de comportamiento (behavior) app\components\MyBehavior`, con dos propiedades -- 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` `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()`. 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()`.

14
docs/guide-es/concept-components.md

@ -25,22 +25,22 @@ echo DatePicker::widget([
Las propiedades del widget son fácilmente modificables porque la clase se extiende de [[yii\base\Component]]. 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. 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. - 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. - 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: Por ejemplo:
```php ```php
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -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). > 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í. 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. 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. 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. 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
docs/guide-es/concept-configurations.md

@ -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> ## 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> ### Configuraciones de aplicación <span id="application-configurations"></span>

10
docs/guide-es/concept-di-container.md

@ -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, para inyectar las dependencias a través de sus correspondientes setters y propiedades. Por ejemplo,
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -185,7 +185,7 @@ una nueva instancia de `UserLister` con una simple llamada a `get('userLister')`
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -194,7 +194,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -209,7 +209,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-es/concept-events.md

@ -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 > 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 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: Para desadjuntar un gestor de eventos a nivel de clase, se tiene que llamar a [[yii\base\Event::off()]]. Por ejemplo:

10
docs/guide-es/concept-properties.md

@ -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 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. 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 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 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. puede utilizar como una propiedad.
@ -32,9 +32,9 @@ setter `setLabel()` definen la propiedad `label`, como se muestra a continuació
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;

16
docs/guide-es/intro-upgrade-from-v1.md

@ -56,25 +56,25 @@ al autoloader de Yii.)
Componentes y Objetos Componentes y Objetos
---------------------- ----------------------
Yii 2.0 parte la clase `CComponent` de 1.1 en dos clases: [[yii\base\Object]] y [[yii\base\Component]]. Yii 2.0 parte la clase `CComponent` de 1.1 en dos clases: [[yii\base\BaseObject]] y [[yii\base\Component]].
La clase [[yii\base\Object|Object]] es una clase base que permite definir [propiedades de object](concept-properties.md) 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\Object|Object]] y soporta 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). [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 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. estructuras de datos básicas.
Configuración de objetos Configuración de objetos
------------------------ ------------------------
La clase [[yii\base\Object|Object]] introduce una manera uniforme de configurar objetos. Cualquier clase descendiente La clase [[yii\base\BaseObject|BaseObject]] 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 de [[yii\base\BaseObject|BaseObject]] debería declarar su constructor (si fuera necesario) de la siguiente manera para que
puede ser adecuadamente configurado: puede ser adecuadamente configurado:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -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 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. 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. 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 Siguiendo esa convención, podrás crear y configurar nuevos objetos utilizando

4
docs/guide-es/runtime-routing.md

@ -598,9 +598,9 @@ Podemos crear la siguiente clase de reglas de URL para solucionar el problema.
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)

2
docs/guide-es/structure-extensions.md

@ -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`. 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 * 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 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` > 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. proporciona una herramienta para generar buena documentación de API basándose en los comentarios del código.

2
docs/guide-fr/concept-behaviors.md

@ -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()`. 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()`.

4
docs/guide-fr/concept-components.md

@ -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). 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. - 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. - Appelez toujours le constructeur du parent *à la fin* de votre constructeur redéfini.
@ -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). > 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. 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. 2. Configuration de l'objet via `$config`. La configuration peut écraser les valeurs par défaut définies dans le constructeur.

12
docs/guide-fr/concept-di-container.md

@ -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 : 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 ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -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> ### Injection par une méthode de rappel PHP <span id="php-callable-injection"></span>
@ -215,7 +215,7 @@ Le code suivant montre un exemple plus sophistiqué. La classe `UserLister` dép
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -224,7 +224,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -239,7 +239,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-fr/concept-events.md

@ -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. 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 : Pour détacher un gestionnaire attaché au niveau de la classe, appelez [[yii\base\Event::off()]]. Par exemple :

10
docs/guide-fr/concept-properties.md

@ -9,18 +9,18 @@ $object->label = trim($label);
Le revers du code ci-dessus est que vous devez appeler `trim()` partout ou vous voulez définir la propriété `label`. Si, plus tard, la propriété `label` devient sujette à de nouvelles exigences, telles que la première lettre doit être une capitale, vous auriez à modifier toutes les parties de code qui assigne une valeur à la propriété `label`. La répétition de code conduit à des bogues, et c'est une pratique courant de l'éviter autant que faire se peut. Le revers du code ci-dessus est que vous devez appeler `trim()` partout ou vous voulez définir la propriété `label`. Si, plus tard, la propriété `label` devient sujette à de nouvelles exigences, telles que la première lettre doit être une capitale, vous auriez à modifier toutes les parties de code qui assigne une valeur à la propriété `label`. La répétition de code conduit à des bogues, et c'est une pratique courant de l'éviter autant que faire se peut.
Pour résoudre ce problème, Yii introduit une classe de base nommée [[yii\base\Object]] qui prend en charge la définition de propriétés sur la base de méthodes d'obtention (*getter*) et de méthode d'assignation (*setters*). Si une classe a besoin de cette fonctionnalité, il suffit qu'elle étende la classe[[yii\base\Object]], ou une de ses classes filles. Pour résoudre ce problème, Yii introduit une classe de base nommée [[yii\base\BaseObject]] qui prend en charge la définition de propriétés sur la base de méthodes d'obtention (*getter*) et de méthode d'assignation (*setters*). Si une classe a besoin de cette fonctionnalité, il suffit qu'elle étende la classe[[yii\base\BaseObject]], ou une de ses classes filles.
> Info: presque toutes les classes du noyau du framework Yii étendent la classe [[yii\base\Object]] ou une de ses classes filles. Cela veut dire, que chaque fois que vous trouvez une méthode d'obtention ou d'assignation dans une classe du noyau, vous pouvez l'utiliser comme une propriété. > Info: presque toutes les classes du noyau du framework Yii étendent la classe [[yii\base\BaseObject]] ou une de ses classes filles. Cela veut dire, que chaque fois que vous trouvez une méthode d'obtention ou d'assignation dans une classe du noyau, vous pouvez l'utiliser comme une propriété.
Une méthode d'obtention est une méthode dont le nom commence par le mot `get` (obtenir) et une méthode d'assignation est une méthode dont le nom commence par le mot `set` (assigner, définir). Le nom après les mots préfixes `get` ou `set` définit le nom d'une propriété. Par exemple, une méthode d'obtention `getLabel` et/ou une méthode d'assignation `setLabel` obtient et assigne, respectivement, une propriété nommée `label`, comme le montre le code suivant : Une méthode d'obtention est une méthode dont le nom commence par le mot `get` (obtenir) et une méthode d'assignation est une méthode dont le nom commence par le mot `set` (assigner, définir). Le nom après les mots préfixes `get` ou `set` définit le nom d'une propriété. Par exemple, une méthode d'obtention `getLabel` et/ou une méthode d'assignation `setLabel` obtient et assigne, respectivement, une propriété nommée `label`, comme le montre le code suivant :
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;
@ -56,6 +56,6 @@ Il existe plusieurs règles spéciales pour les propriétés définies via des m
* Si le nom d'uen telle propriété est identique à celui d'une variable membre de la classe, la dernier prévaut. Par exemple, si la classe ci-dessus `Foo` possède une variable mommée `label`, alors l'assignation `$object->label = 'abc'` affecte la *variable membre* `label` ; cette ligne ne fait pas appel à la méthode d'assignation `setLabel()`. * Si le nom d'uen telle propriété est identique à celui d'une variable membre de la classe, la dernier prévaut. Par exemple, si la classe ci-dessus `Foo` possède une variable mommée `label`, alors l'assignation `$object->label = 'abc'` affecte la *variable membre* `label` ; cette ligne ne fait pas appel à la méthode d'assignation `setLabel()`.
* Ces propriétés en prennent pas en charge la visibilité. Cela ne fait aucune différence pour les méthodes d'obtention et d'assignation qui définissent une propriété, que cette propriété soit publique, protégée ou privée. * Ces propriétés en prennent pas en charge la visibilité. Cela ne fait aucune différence pour les méthodes d'obtention et d'assignation qui définissent une propriété, que cette propriété soit publique, protégée ou privée.
* Les propriétés peuvent uniquement être définies par des méthodes d'obtention et d'assignation *non-statiques*. Les méthodes statiques ne sont pas traitées de la même manière. * Les propriétés peuvent uniquement être définies par des méthodes d'obtention et d'assignation *non-statiques*. Les méthodes statiques ne sont pas traitées de la même manière.
* Un appel normal à la méthode `property_exists()` ne fonctionne pas pour déterminer des propriétés magiques. Vous devez appeler [[yii\base\Object::canGetProperty()|canGetProperty()]] ou [[yii\base\Object::canSetProperty()|canSetProperty()]] respectivement. * Un appel normal à la méthode `property_exists()` ne fonctionne pas pour déterminer des propriétés magiques. Vous devez appeler [[yii\base\BaseObject::canGetProperty()|canGetProperty()]] ou [[yii\base\BaseObject::canSetProperty()|canSetProperty()]] respectivement.
En revenant au problème évoqué au début de ce guide, au lieu d'appeler `trim()` partout où une valeur est assignée à `label`, vous pouvez vous contenter d'appeler `trim()` dans la méthode d'assignation `setLabel()`. Et si une nouvelle exigence apparaît – comme celle de mettre la première lettre en capitale – la méthode `setLabel()` peut être rapidement modifiée sans avoir à toucher à d'autres parties du code. Cet unique modification affecte l'ensemble des assignation de `label`. En revenant au problème évoqué au début de ce guide, au lieu d'appeler `trim()` partout où une valeur est assignée à `label`, vous pouvez vous contenter d'appeler `trim()` dans la méthode d'assignation `setLabel()`. Et si une nouvelle exigence apparaît – comme celle de mettre la première lettre en capitale – la méthode `setLabel()` peut être rapidement modifiée sans avoir à toucher à d'autres parties du code. Cet unique modification affecte l'ensemble des assignation de `label`.

16
docs/guide-fr/intro-upgrade-from-v1.md

@ -58,26 +58,26 @@ chargeur de classe de Yii.)
Composants et objets Composants et objets
-------------------- --------------------
Yii 2.0 décompose la classe `CComponent` 1.1 en deux classes: [[yii\base\Object]] et [[yii\base\Component]]. Yii 2.0 décompose la classe `CComponent` 1.1 en deux classes: [[yii\base\BaseObject]] et [[yii\base\Component]].
Le classe [[yii\base\Object|Object]] est une classe de base légère qui permet de définir les Le classe [[yii\base\BaseObject|BaseObject]] est une classe de base légère qui permet de définir les
[Propriétés de l'objet](concept-properties.md) via des accesseurs. La classe [[yii\base\Component|Component]] est une [Propriétés de l'objet](concept-properties.md) via des accesseurs. La classe [[yii\base\Component|Component]] est une
sous classe de [[yii\base\Object|Object]] et prend en charge les [Evénements](concept events.md) et les sous classe de [[yii\base\BaseObject|BaseObject]] et prend en charge les [Evénements](concept events.md) et les
[Comportements](concept-behaviors.md). [Comportements](concept-behaviors.md).
Si votre classe n'a pas besoin des événements et des comportements, vous devriez envisager d'utiliser Si votre classe n'a pas besoin des événements et des comportements, vous devriez envisager d'utiliser
[[yii\base\Object|Object]] comme classe de base. C'est généralement le cas pour les classes qui représentent [[yii\base\BaseObject|BaseObject]] comme classe de base. C'est généralement le cas pour les classes qui représentent
une structure de données basique. une structure de données basique.
Configuration d'objets Configuration d'objets
--------------------- ---------------------
La classe [[yii\base\Object|Object]] introduit une manière uniforme de configurer les objets. Toute sous-classe La classe [[yii\base\BaseObject|BaseObject]] introduit une manière uniforme de configurer les objets. Toute sous-classe
de [[yii\base\Object|Object]] doit déclarer son constructeur (si besoin) de la manière suivante afin qu'elle de [[yii\base\BaseObject|BaseObject]] doit déclarer son constructeur (si besoin) de la manière suivante afin qu'elle
puisse être configurée correctement : puisse être configurée correctement :
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -97,7 +97,7 @@ class MyClass extends \yii\base\Object
Dans ce qui précède, le dernier paramètre du constructeur doit être un tableau de configuration Dans ce qui précède, le dernier paramètre du constructeur doit être un tableau de configuration
qui contient des entrées nom-valeur pour initialiser les propriétés à la fin du constructeur. qui contient des entrées nom-valeur pour initialiser les propriétés à la fin du constructeur.
Vous pouvez remplacer la méthode [[yii\base\Object::init()|init()]] pour le travail d'initialisation qui doit être fait Vous pouvez remplacer la méthode [[yii\base\BaseObject::init()|init()]] pour le travail d'initialisation qui doit être fait
après que la configuration a été appliquée. après que la configuration a été appliquée.
En suivant cette convention, vous serez en mesure de créer et de configurer de nouveaux objets en utilisant un tableau En suivant cette convention, vous serez en mesure de créer et de configurer de nouveaux objets en utilisant un tableau

4
docs/guide-fr/runtime-routing.md

@ -452,9 +452,9 @@ Vous pouvez créer les classes de règle d'URL suivantes pour résoudre ce probl
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)

2
docs/guide-fr/structure-extensions.md

@ -290,7 +290,7 @@ Dans les versions de votre extension, en plus des fichiers de code, vous devez e
* Un fichier *changelog* (journal des modifications) dans le dossier racine du paquet : il liste les changements apportés dans chacune des versions. Ce fichier peut être écrit dans le format Markdown et nommé `changelog.md`. * Un fichier *changelog* (journal des modifications) dans le dossier racine du paquet : il liste les changements apportés dans chacune des versions. Ce fichier peut être écrit dans le format Markdown et nommé `changelog.md`.
* Un fichier *upgrade* (mise à jour) dans le dossier racine du paquet : il donne les instructions sur la manière de mettre l'extension à jour en partant d'une version précédente. Ce fichier peut être écrit dans le format Markdown et nommé `upgrade.md`. * Un fichier *upgrade* (mise à jour) dans le dossier racine du paquet : il donne les instructions sur la manière de mettre l'extension à jour en partant d'une version précédente. Ce fichier peut être écrit dans le format Markdown et nommé `upgrade.md`.
* Tutorials, demos, screenshots, etc.: ces derniers sont nécessaires si votre extension fournit de nombreuses fonctionnalités qui ne peuvent être couvertes dans le fichier readme. * Tutorials, demos, screenshots, etc.: ces derniers sont nécessaires si votre extension fournit de nombreuses fonctionnalités qui ne peuvent être couvertes dans le fichier readme.
* Une documentation de l'API : votre code doit être bien documenté pour permettre aux autres personnes de le lire plus facilement et de le comprendre. Vous pouvez faire référence au [fichier de la classe Object](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php) pour savoir comment documenter votre code. * Une documentation de l'API : votre code doit être bien documenté pour permettre aux autres personnes de le lire plus facilement et de le comprendre. Vous pouvez faire référence au [fichier de la classe BaseObject](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php) pour savoir comment documenter votre code.
> Info: les commentaires de votre code peuvent être écrits dans le format Markdown. L'extension `yiisoft/yii2-apidoc` vous fournit un outil pour générer une documentation d'API agréable et basée sur les commentaires de votre code. > Info: les commentaires de votre code peuvent être écrits dans le format Markdown. L'extension `yiisoft/yii2-apidoc` vous fournit un outil pour générer une documentation d'API agréable et basée sur les commentaires de votre code.

16
docs/guide-id/intro-upgrade-from-v1.md

@ -55,25 +55,25 @@ menunjukkan bahwa file kelas yang sesuai adalah `web/Request.php` bawah folder f
Komponen dan Object Komponen dan Object
-------------------- --------------------
Yii 2.0 membagi kelas `CComponent` di 1.1 menjadi dua kelas: [[yii\base\Object]] dan [[yii\base\Component]]. Yii 2.0 membagi kelas `CComponent` di 1.1 menjadi dua kelas: [[yii\base\BaseObject]] dan [[yii\base\Component]].
Class [[yii\base\Object|Object]] adalah class dasar ringan yang memungkinkan mendefinisikan [objek properti](concept-properties.md) Class [[yii\base\BaseObject|BaseObject]] adalah class dasar ringan yang memungkinkan mendefinisikan [objek properti](concept-properties.md)
melalui getter dan setter. Class [[yii\base\Component|Component]] adalah perluasan dari [[yii\base\Object|Object]] dengan dukungan melalui getter dan setter. Class [[yii\base\Component|Component]] adalah perluasan dari [[yii\base\BaseObject|BaseObject]] dengan dukungan
[Event](concept-events.md) dan [behavior](concept-behaviors.md). [Event](concept-events.md) dan [behavior](concept-behaviors.md).
Jika class Anda tidak perlu fitur event atau behavior, Anda harus mempertimbangkan menggunakan Jika class Anda tidak perlu fitur event atau behavior, Anda harus mempertimbangkan menggunakan
[[yii\base\Object|Object]] sebagai class dasar. Hal ini biasanya terjadi untuk class yang mewakili [[yii\base\BaseObject|BaseObject]] sebagai class dasar. Hal ini biasanya terjadi untuk class yang mewakili
struktur data dasar. struktur data dasar.
Konfigurasi objek Konfigurasi objek
-------------------- --------------------
Class [[yii\base\Object|Object]] memperkenalkan cara seragam untuk mengkonfigurasi objek. Setiap class turunan Class [[yii\base\BaseObject|BaseObject]] memperkenalkan cara seragam untuk mengkonfigurasi objek. Setiap class turunan
dari [[yii\base\Object|Object]] harus menyatakan konstruktor (jika diperlukan) dengan cara berikut agar dari [[yii\base\BaseObject|BaseObject]] harus menyatakan konstruktor (jika diperlukan) dengan cara berikut agar
dapat dikonfigurasi dengan benar: dapat dikonfigurasi dengan benar:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -93,7 +93,7 @@ class MyClass extends \yii\base\Object
Dalam contoh di atas, parameter terakhir dari konstruktor harus mengambil array konfigurasi Dalam contoh di atas, parameter terakhir dari konstruktor harus mengambil array konfigurasi
yang berisi pasangan nama-nilai untuk menginisialisasi properti pada akhir konstruktor. yang berisi pasangan nama-nilai untuk menginisialisasi properti pada akhir konstruktor.
Anda dapat menimpa method [[yii\base\Object::init()|init()]] untuk melakukan pekerjaan inisialisasi yang harus dilakukan setelah Anda dapat menimpa method [[yii\base\BaseObject::init()|init()]] untuk melakukan pekerjaan inisialisasi yang harus dilakukan setelah
konfigurasi telah diterapkan. konfigurasi telah diterapkan.
Dengan mengikuti konvensi ini, Anda akan dapat membuat dan mengkonfigurasi objek baru menggunakan array konfigurasi: Dengan mengikuti konvensi ini, Anda akan dapat membuat dan mengkonfigurasi objek baru menggunakan array konfigurasi:

16
docs/guide-it/intro-upgrade-from-v1.md

@ -54,24 +54,24 @@ classe si trova in `web/Request.php` nella directory principale del framework Yi
Componenti ed oggetti Componenti ed oggetti
--------------------- ---------------------
Yii 2 divide la classe `CComponent` della versione 1.1 in due classi: [[yii\base\Object]] and [[yii\base\Component]]. Yii 2 divide la classe `CComponent` della versione 1.1 in due classi: [[yii\base\BaseObject]] and [[yii\base\Component]].
La classe [[yii\base\Object|Object]] è una classe leggera da usare come base, che consente la definizione di La classe [[yii\base\BaseObject|BaseObject]] è una classe leggera da usare come base, che consente la definizione di
[proprietà dell'oggetto](concept-properties.md) tramite *geters* e *setters*. La classe [[yii\base\Component|Component]] estende [proprietà dell'oggetto](concept-properties.md) tramite *geters* e *setters*. La classe [[yii\base\Component|Component]] estende
[[yii\base\Object|Object]] e supporta [eventi](concept-events.md) e [behavior](concept-behaviors.md). [[yii\base\BaseObject|BaseObject]] e supporta [eventi](concept-events.md) e [behavior](concept-behaviors.md).
Se la tua classe non ha necessità di usare eventi o behavior conviene usare [[yii\base\Object|Object]] come classe base. Se la tua classe non ha necessità di usare eventi o behavior conviene usare [[yii\base\BaseObject|BaseObject]] come classe base.
Di solito viene impiegata per classi che rappresentano strutture di dati semplici. Di solito viene impiegata per classi che rappresentano strutture di dati semplici.
Configurazione oggetti Configurazione oggetti
---------------------- ----------------------
La classe [[yii\base\Object|Object]] introduce un metodo uniforme per la configurazione degli oggetti. La classe [[yii\base\BaseObject|BaseObject]] introduce un metodo uniforme per la configurazione degli oggetti.
Ogni classe figlia di [[yii\base\Object|Object]] dovrebbe dichiarare il suo costruttore (se necessario) in questo modo, così da essere Ogni classe figlia di [[yii\base\BaseObject|BaseObject]] dovrebbe dichiarare il suo costruttore (se necessario) in questo modo, così da essere
configurato correttamente: configurato correttamente:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -91,7 +91,7 @@ class MyClass extends \yii\base\Object
Nell'esempio sopra, l'ultimo parametro del costruttore riceve l'array di configurazione che contiene coppie di nome-valore per Nell'esempio sopra, l'ultimo parametro del costruttore riceve l'array di configurazione che contiene coppie di nome-valore per
inizializzare le proprietà alla fine del costruttore. inizializzare le proprietà alla fine del costruttore.
Puoi sovrascrivere il metodo [[yii\base\Object::init()|init()]] per eseguire operazioni dopo che la configurazione è stata applicata. Puoi sovrascrivere il metodo [[yii\base\BaseObject::init()|init()]] per eseguire operazioni dopo che la configurazione è stata applicata.
Seguendo questa convenzione potrai creare e configurare nuovi oggetti usando un array di configurazione: Seguendo questa convenzione potrai creare e configurare nuovi oggetti usando un array di configurazione:

2
docs/guide-ja/concept-behaviors.md

@ -45,7 +45,7 @@ class MyBehavior extends Behavior
上のコードは、 `app\components\MyBehavior` という、2つのプロパティ -- `prop1``prop2` -- と 上のコードは、 `app\components\MyBehavior` という、2つのプロパティ -- `prop1``prop2` -- と
`foo()` メソッドを持つビヘイビアクラスを定義します。`prop2` プロパティは、 `getProp2()` getter メソッドと `setProp2()` setter メソッドで定義されることに着目してください。 `foo()` メソッドを持つビヘイビアクラスを定義します。`prop2` プロパティは、 `getProp2()` getter メソッドと `setProp2()` setter メソッドで定義されることに着目してください。
[[yii\base\Behavior]] は [[yii\base\Object]] を継承しているので、getter と setter による [プロパティ](concept-properties.md) 定義をサポートします。 [[yii\base\Behavior]] は [[yii\base\BaseObject]] を継承しているので、getter と setter による [プロパティ](concept-properties.md) 定義をサポートします。
このクラスはビヘイビアなので、コンポーネントにアタッチされると、そのコンポーネントは `prop1``prop2` プロパティ、それと `foo()` メソッドを持つようになります。 このクラスはビヘイビアなので、コンポーネントにアタッチされると、そのコンポーネントは `prop1``prop2` プロパティ、それと `foo()` メソッドを持つようになります。

14
docs/guide-ja/concept-components.md

@ -27,14 +27,14 @@ echo DatePicker::widget([
コンポーネントは非常に強力ですが、 [イベント](concept-events.md) と [ビヘイビア](concept-behaviors.md) をサポートするため、 コンポーネントは非常に強力ですが、 [イベント](concept-events.md) と [ビヘイビア](concept-behaviors.md) をサポートするため、
余分にメモリとCPU時間を要し、通常のオブジェクトよりも少し重くなります。 余分にメモリとCPU時間を要し、通常のオブジェクトよりも少し重くなります。
あなたのコンポーネントがこれら2つの機能を必要としない場合、[[yii\base\Component]] の代わりに、 [[yii\base\Object]] からコンポーネントクラスを派生することを検討してもよいでしょう。 あなたのコンポーネントがこれら2つの機能を必要としない場合、[[yii\base\Component]] の代わりに、 [[yii\base\BaseObject]] からコンポーネントクラスを派生することを検討してもよいでしょう。
そうすることで、あなたのコンポーネントは、 [プロパティ](concept-properties.md) のサポートが維持されたまま、通常のPHPオブジェクトのように効率的になります。 そうすることで、あなたのコンポーネントは、 [プロパティ](concept-properties.md) のサポートが維持されたまま、通常のPHPオブジェクトのように効率的になります。
[[yii\base\Component]] または [[yii\base\Object]] からクラスを派生するときは、次の規約に従うことが推奨されます: [[yii\base\Component]] または [[yii\base\BaseObject]] からクラスを派生するときは、次の規約に従うことが推奨されます:
- コンストラクタをオーバーライドする場合は、コンストラクタの *最後の* パラメータとして `$config` パラメータを指定し、親のコンストラクタにこのパラメータを渡すこと。 - コンストラクタをオーバーライドする場合は、コンストラクタの *最後の* パラメータとして `$config` パラメータを指定し、親のコンストラクタにこのパラメータを渡すこと。
- 自分がオーバーライドしたコンストラクタの *最後で* 、必ず親クラスのコンストラクタを呼び出すこと。 - 自分がオーバーライドしたコンストラクタの *最後で* 、必ず親クラスのコンストラクタを呼び出すこと。
- [[yii\base\Object::init()]] メソッドをオーバーライドする場合は、自分の `init()` メソッドの *最初に* 、必ず `init()` の親実装を呼び出すようにすること。 - [[yii\base\BaseObject::init()]] メソッドをオーバーライドする場合は、自分の `init()` メソッドの *最初に* 、必ず `init()` の親実装を呼び出すようにすること。
例: 例:
@ -43,9 +43,9 @@ echo DatePicker::widget([
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -80,11 +80,11 @@ $component = \Yii::createObject([
> Note: [[Yii::createObject()]] を呼び出すアプローチは複雑に見えますが、より強力です。というのも、それが [依存性注入コンテナ](concept-di-container.md) 上に実装されているからです。 > Note: [[Yii::createObject()]] を呼び出すアプローチは複雑に見えますが、より強力です。というのも、それが [依存性注入コンテナ](concept-di-container.md) 上に実装されているからです。
[[yii\base\Object]] クラスには、次のオブジェクトライフサイクルが適用されます: [[yii\base\BaseObject]] クラスには、次のオブジェクトライフサイクルが適用されます:
1. コンストラクタ内の事前初期化。ここでデフォルトのプロパティ値を設定することができます。 1. コンストラクタ内の事前初期化。ここでデフォルトのプロパティ値を設定することができます。
2. `$config` によるオブジェクトの構成。構成情報は、コンストラクタ内で設定されたデフォルト値を上書きすることがあります。 2. `$config` によるオブジェクトの構成。構成情報は、コンストラクタ内で設定されたデフォルト値を上書きすることがあります。
3. [[yii\base\Object::init()|init()]] 内の事後初期化。サニティ・チェックやプロパティの正規化を行いたいときは、このメソッドをオーバーライドします。 3. [[yii\base\BaseObject::init()|init()]] 内の事後初期化。サニティ・チェックやプロパティの正規化を行いたいときは、このメソッドをオーバーライドします。
4. オブジェクトのメソッド呼び出し。 4. オブジェクトのメソッド呼び出し。
最初の 3 つのステップは、すべて、オブジェクトのコンストラクタ内で発生します。これは、あなたがクラスインスタンス (つまり、オブジェクト) を得たときには、 最初の 3 つのステップは、すべて、オブジェクトのコンストラクタ内で発生します。これは、あなたがクラスインスタンス (つまり、オブジェクト) を得たときには、

2
docs/guide-ja/concept-configurations.md

@ -19,7 +19,7 @@ $config = [
$db = Yii::createObject($config); $db = Yii::createObject($config);
``` ```
[[Yiiの::CreateObject()]] メソッドは引数に構成情報の配列を受け取り、構成情報で名前指定されたクラスをインスタンス化してオブジェクトを作成します。 [[Yii::createObject()]] メソッドは引数に構成情報の配列を受け取り、構成情報で名前指定されたクラスをインスタンス化してオブジェクトを作成します。
オブジェクトがインスタンス化されるとき、その他の設定は、 オブジェクトがインスタンス化されるとき、その他の設定は、
オブジェクトのプロパティ、イベントハンドラ、およびビヘイビアを初期化するのに使われます。 オブジェクトのプロパティ、イベントハンドラ、およびビヘイビアを初期化するのに使われます。

12
docs/guide-ja/concept-di-container.md

@ -77,9 +77,9 @@ Yii::$container->invoke([$obj, 'doSomething'], ['param1' => 42]); // $something
たとえば たとえば
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -103,7 +103,7 @@ $container->get('Foo', [], [
``` ```
> Info: [[yii\di\Container::get()]] メソッドは三番目のパラメータを、生成されるオブジェクトに適用されるべき構成情報配列として受け取ります。 > Info: [[yii\di\Container::get()]] メソッドは三番目のパラメータを、生成されるオブジェクトに適用されるべき構成情報配列として受け取ります。
クラスが [[yii\base\Configurable]] インタフェイスを実装している場合 (例えば、クラスが [[yii\base\Object]] である場合) には、この構成情報配列がクラスのコンストラクタの最後のパラメータとして渡されます。 クラスが [[yii\base\Configurable]] インタフェイスを実装している場合 (例えば、クラスが [[yii\base\BaseObject]] である場合) には、この構成情報配列がクラスのコンストラクタの最後のパラメータとして渡されます。
そうでない場合は、構成情報はオブジェクトが生成された *後で* 適用されることになります。 そうでない場合は、構成情報はオブジェクトが生成された *後で* 適用されることになります。
### PHP コーラブル・インジェクション <span id="php-callable-injection"></span> ### PHP コーラブル・インジェクション <span id="php-callable-injection"></span>
@ -249,7 +249,7 @@ $engine = $container->get('app\components\SearchEngine', [$apiKey, $apiSecret],
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -258,7 +258,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -273,7 +273,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-ja/concept-events.md

@ -236,7 +236,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);
この場合、`$event->sender` は、オブジェクトインスタンスではなく、イベントをトリガするクラスの名前を指すことに注意してください。 この場合、`$event->sender` は、オブジェクトインスタンスではなく、イベントをトリガするクラスの名前を指すことに注意してください。
> Note: クラスレベルのハンドラは、そのクラスのあらゆるインスタンス、またはあらゆる子クラスのインスタンスがトリガしたイベントに応答 > Note: クラスレベルのハンドラは、そのクラスのあらゆるインスタンス、またはあらゆる子クラスのインスタンスがトリガしたイベントに応答
してしまうため、よく注意して使わなければなりません。 [[yii\base\Object]] のように、クラスが低レベルの基底クラスの場合は特にそうです。 してしまうため、よく注意して使わなければなりません。 [[yii\base\BaseObject]] のように、クラスが低レベルの基底クラスの場合は特にそうです。
クラスレベルのイベントハンドラを取り外すときは、 [[yii\base\Event::off()]] を呼び出します。たとえば: クラスレベルのイベントハンドラを取り外すときは、 [[yii\base\Event::off()]] を呼び出します。たとえば:

12
docs/guide-ja/concept-properties.md

@ -14,10 +14,10 @@ $object->label = trim($label);
`label` プロパティに、最初の文字を大文字にしなければならない、といった新たな要件が発生したら、 `label` に値を代入するすべてのコードを変更しなければなりません。 `label` プロパティに、最初の文字を大文字にしなければならない、といった新たな要件が発生したら、 `label` に値を代入するすべてのコードを変更しなければなりません。
コードの繰り返しはバグを誘発するので、できれば避けたいところです。 コードの繰り返しはバグを誘発するので、できれば避けたいところです。
この問題を解決するために、Yii は *getter* メソッドと *setter* メソッドをベースにしたプロパティ定義をサポートする、 [[yii\base\Object]] 基底クラスを提供します。 この問題を解決するために、Yii は *getter* メソッドと *setter* メソッドをベースにしたプロパティ定義をサポートする、 [[yii\base\BaseObject]] 基底クラスを提供します。
クラスがその機能を必要とするなら、 [[yii\base\Object]] またはその子クラスを継承しましょう。 クラスがその機能を必要とするなら、 [[yii\base\BaseObject]] またはその子クラスを継承しましょう。
> Note: Yiiのフレームワークのほぼすべてのコアクラスは、 [[yii\base\Object]] またはその子クラスを継承しています。 > Note: Yiiのフレームワークのほぼすべてのコアクラスは、 [[yii\base\BaseObject]] またはその子クラスを継承しています。
これは、コアクラスに getter または setter があれば、それをプロパティのように使用できることを意味します。 これは、コアクラスに getter または setter があれば、それをプロパティのように使用できることを意味します。
getter メソッドは、名前が `get` で始まるメソッドで、setter メソッドは、`set` で始まるメソッドです。 getter メソッドは、名前が `get` で始まるメソッドで、setter メソッドは、`set` で始まるメソッドです。
@ -27,9 +27,9 @@ getter メソッドは、名前が `get` で始まるメソッドで、setter
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;
@ -73,7 +73,7 @@ getter と setter で定義されたプロパティには、いくつかの特
getter または setter メソッドの定義によって決めることは出来ません。 getter または setter メソッドの定義によって決めることは出来ません。
* プロパティは、 *静的でない* getter および setter によってのみ定義することが出来ます。静的なメソッドは同様には扱われません。 * プロパティは、 *静的でない* getter および setter によってのみ定義することが出来ます。静的なメソッドは同様には扱われません。
* 通常の `property_exists()` の呼び出しでは、マジック・プロパティが存在するかどうかを知ることは出来ません。 * 通常の `property_exists()` の呼び出しでは、マジック・プロパティが存在するかどうかを知ることは出来ません。
それぞれ、[[yii\base\Object::canGetProperty()|canGetProperty()]] または [[yii\base\Object::canSetProperty()|canSetProperty()]] を呼び出さなければなりません。 それぞれ、[[yii\base\BaseObject::canGetProperty()|canGetProperty()]] または [[yii\base\BaseObject::canSetProperty()|canSetProperty()]] を呼び出さなければなりません。
このガイドの冒頭で説明した問題に戻ると、 `label` に値が代入されているあらゆる箇所で `trim()` を呼ぶのではなく、もう `setLabel()` という setter の内部だけで `trim()` を呼べば済むのです。 このガイドの冒頭で説明した問題に戻ると、 `label` に値が代入されているあらゆる箇所で `trim()` を呼ぶのではなく、もう `setLabel()` という setter の内部だけで `trim()` を呼べば済むのです。
さらに、新しい要求でラベルの先頭を大文字にする必要が発生しても、他のいっさいのコードに触れることなく、すぐに `setLabel()` メソッドを変更することができます。一箇所の変更は、すべての `label` への代入に普遍的に作用します。 さらに、新しい要求でラベルの先頭を大文字にする必要が発生しても、他のいっさいのコードに触れることなく、すぐに `setLabel()` メソッドを変更することができます。一箇所の変更は、すべての `label` への代入に普遍的に作用します。

16
docs/guide-ja/intro-upgrade-from-v1.md

@ -55,22 +55,22 @@ Yii 2.0 での最も顕著な変更は名前空間の使用です。
コンポーネントとオブジェクト コンポーネントとオブジェクト
---------------------------- ----------------------------
Yii 2.0 は、1.1 の `CComponent` クラスを二つのクラス、すなわち、[[yii\base\Object]] と [[yii\base\Component]] に分割しました。 Yii 2.0 は、1.1 の `CComponent` クラスを二つのクラス、すなわち、[[yii\base\BaseObject]] と [[yii\base\Component]] に分割しました。
[[yii\base\Object|Object]] クラスは、ゲッターとセッターを通じて [オブジェクトプロパティ](concept-properties.md) を定義することを可能にする、軽量な基底クラスです。 [[yii\base\BaseObject|BaseObject]] クラスは、ゲッターとセッターを通じて [オブジェクトプロパティ](concept-properties.md) を定義することを可能にする、軽量な基底クラスです。
[[yii\base\Component|Component]] クラスは [[yii\base\Object|Object]] からの拡張であり、[イベント](concept-events.md) と [ビヘイビア](concept-behaviors.md) をサポートします。 [[yii\base\Component|Component]] クラスは [[yii\base\BaseObject|BaseObject]] からの拡張であり、[イベント](concept-events.md) と [ビヘイビア](concept-behaviors.md) をサポートします。
あなたのクラスがイベントやビヘイビアの機能を必要としない場合は、[[yii\base\Object|Object]] を基底クラスとして使うことを考慮すべきです。 あなたのクラスがイベントやビヘイビアの機能を必要としない場合は、[[yii\base\BaseObject|BaseObject]] を基底クラスとして使うことを考慮すべきです。
通常は、基本的なデータ構造を表すクラスに対して、このことが当てはまります。 通常は、基本的なデータ構造を表すクラスに対して、このことが当てはまります。
オブジェクトの構成 オブジェクトの構成
------------------ ------------------
[[yii\base\Object|Object]] クラスはオブジェクトを構成するための統一された方法を導入しています。 [[yii\base\BaseObject|BaseObject]] クラスはオブジェクトを構成するための統一された方法を導入しています。
[[yii\base\Object|Object]] の全ての派生クラスは、コンストラクタが必要な場合には、インスタンスが正しく構成されるように、コンストラクタを以下のようにして宣言しなければなりません。 [[yii\base\BaseObject|BaseObject]] の全ての派生クラスは、コンストラクタが必要な場合には、インスタンスが正しく構成されるように、コンストラクタを以下のようにして宣言しなければなりません。
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -90,7 +90,7 @@ class MyClass extends \yii\base\Object
上記のように、コンストラクタは最後のパラメータとして構成情報の配列を取らなければなりません。 上記のように、コンストラクタは最後のパラメータとして構成情報の配列を取らなければなりません。
構成情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを構成します。 構成情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを構成します。
[[yii\base\Object::init()|init()]] メソッドをオーバーライドして、構成情報が適用された後に行うべき初期化処理を行うことが出来ます。 [[yii\base\BaseObject::init()|init()]] メソッドをオーバーライドして、構成情報が適用された後に行うべき初期化処理を行うことが出来ます。
この規約に従うことによって、新しいオブジェクトを生成して構成するときに、構成情報配列を使うことが出来るようになります。 この規約に従うことによって、新しいオブジェクトを生成して構成するときに、構成情報配列を使うことが出来るようになります。

4
docs/guide-ja/runtime-routing.md

@ -545,9 +545,9 @@ public function bootstrap($app)
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)

2
docs/guide-ja/structure-extensions.md

@ -362,7 +362,7 @@ Yii はテストのサポートを提供しており、それよって、単体
このファイルは Markdown 形式で書いて `upgrade.md` と名付けることが出来ます。 このファイルは Markdown 形式で書いて `upgrade.md` と名付けることが出来ます。
* チュートリアル、デモ、スクリーンショットなど: あなたのエクステンションが readme ファイルでは十分にカバーできないほど多くの機能を提供するものである場合は、これらが必要になります。 * チュートリアル、デモ、スクリーンショットなど: あなたのエクステンションが readme ファイルでは十分にカバーできないほど多くの機能を提供するものである場合は、これらが必要になります。
* API ドキュメント: あなたのコードは、他の人々が読んで理解することがより一層容易に出来るように、十分な解説を含むべきです。 * API ドキュメント: あなたのコードは、他の人々が読んで理解することがより一層容易に出来るように、十分な解説を含むべきです。
[Object のクラスファイル](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php) を参照すると、コードに解説を加える方法を学ぶことが出来ます。 [BaseObject のクラスファイル](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php) を参照すると、コードに解説を加える方法を学ぶことが出来ます。
> Info: コードのコメントを Markdown 形式で書くことが出来ます。 > Info: コードのコメントを Markdown 形式で書くことが出来ます。
`yiisoft/yii2-apidoc` エクステンションが、コードのコメントに基づいて綺麗な API ドキュメントを生成するツールを提供しています。 `yiisoft/yii2-apidoc` エクステンションが、コードのコメントに基づいて綺麗な API ドキュメントを生成するツールを提供しています。

14
docs/guide-pl/concept-components.md

@ -28,14 +28,14 @@ Właściwości widżetu są w łatwy sposób konfigurowalne ponieważ jego klasa
Komponenty zapewniają duże możliwości, ale przez to są też bardziej zasobożerne od standardowych obiektów, ponieważ wymagają dodatkowej pamięci i czasu CPU dla wsparcia Komponenty zapewniają duże możliwości, ale przez to są też bardziej zasobożerne od standardowych obiektów, ponieważ wymagają dodatkowej pamięci i czasu CPU dla wsparcia
[eventów](concept-events.md) i [behaviorów](concept-behaviors.md) w szczególności. [eventów](concept-events.md) i [behaviorów](concept-behaviors.md) w szczególności.
Jeśli komponent nie wymaga tych dwóch funkcjonalności, należy rozważyć rozszerzenie jego klasy z [[yii\base\Object|Object]] zamiast [[yii\base\Component|Component]]. Jeśli komponent nie wymaga tych dwóch funkcjonalności, należy rozważyć rozszerzenie jego klasy z [[yii\base\BaseObject|BaseObject]] zamiast [[yii\base\Component|Component]].
Dzięki temu komponent będzie tak samo wydajny jak standardowy obiekt PHP, ale z dodatkowym wsparciem [właściwości](concept-properties.md). Dzięki temu komponent będzie tak samo wydajny jak standardowy obiekt PHP, ale z dodatkowym wsparciem [właściwości](concept-properties.md).
Rozszerzając klasę [[yii\base\Component|Component]] lub [[yii\base\Object|Object]], zalecane jest aby przestrzegać następującej konwencji: Rozszerzając klasę [[yii\base\Component|Component]] lub [[yii\base\BaseObject|BaseObject]], zalecane jest aby przestrzegać następującej konwencji:
- Przeciążając konstruktor, dodaj parametr `$config` jako *ostatni* na liście jego argumentów i przekaż go do konstruktora rodzica. - Przeciążając konstruktor, dodaj parametr `$config` jako *ostatni* na liście jego argumentów i przekaż go do konstruktora rodzica.
- Zawsze wywoływuj konstruktor rodzica *na końcu* przeciążanego konstruktora. - Zawsze wywoływuj konstruktor rodzica *na końcu* przeciążanego konstruktora.
- Przeciążając metodę [[yii\base\Object::init()|init()]], upewnij się, że wywołujesz metodę `init()` rodzica *na początku* własnej implementacji metody `init()`. - Przeciążając metodę [[yii\base\BaseObject::init()|init()]], upewnij się, że wywołujesz metodę `init()` rodzica *na początku* własnej implementacji metody `init()`.
Przykład: Przykład:
@ -44,9 +44,9 @@ Przykład:
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -83,11 +83,11 @@ $component = \Yii::createObject([
> [kontener wstrzykiwania zależności](concept-di-container.md). > [kontener wstrzykiwania zależności](concept-di-container.md).
Klasa [[yii\base\Object|Object]] wymusza następujący cykl życia obiektu: Klasa [[yii\base\BaseObject|BaseObject]] wymusza następujący cykl życia obiektu:
1. Preinicjalizacja w konstruktorze. W tym miejscu można ustawić domyślne wartości właściwości. 1. Preinicjalizacja w konstruktorze. W tym miejscu można ustawić domyślne wartości właściwości.
2. Konfiguracja obiektu poprzez `$config`. Konfiguracja może nadpisać domyślne wartości ustawione w konstruktorze. 2. Konfiguracja obiektu poprzez `$config`. Konfiguracja może nadpisać domyślne wartości ustawione w konstruktorze.
3. Postinicjalizacja w metodzie [[yii\base\Object::init()|init()]]. Metoda może być przeciążona w celu normalizacji i sanityzacji właściwości. 3. Postinicjalizacja w metodzie [[yii\base\BaseObject::init()|init()]]. Metoda może być przeciążona w celu normalizacji i sanityzacji właściwości.
4. Wywołanie metody obiektu. 4. Wywołanie metody obiektu.
Pierwsze trzy kroki są w całości wykonywane w konstruktorze obiektu, co oznacza, że uzyskana instancja klasy jest już poprawnie zainicjowana i stabilna. Pierwsze trzy kroki są w całości wykonywane w konstruktorze obiektu, co oznacza, że uzyskana instancja klasy jest już poprawnie zainicjowana i stabilna.

14
docs/guide-pl/intro-upgrade-from-v1.md

@ -52,22 +52,22 @@ Dzięki mechanizmowi ładowania klas Yii możesz użyć dowolnej podstawowej kla
Komponent i obiekt Komponent i obiekt
------------------ ------------------
Yii 2.0 rozdzielił klasę `CComponent` z 1.1 na dwie: [[yii\base\Object|Object]] i [[yii\base\Component|Component]]. Yii 2.0 rozdzielił klasę `CComponent` z 1.1 na dwie: [[yii\base\BaseObject|BaseObject]] i [[yii\base\Component|Component]].
Lekka klasa [[yii\base\Object|Object]] pozwala na zdefiniowanie [właściwości obiektu](concept-properties.md) poprzez gettery i settery. Lekka klasa [[yii\base\BaseObject|BaseObject]] pozwala na zdefiniowanie [właściwości obiektu](concept-properties.md) poprzez gettery i settery.
Klasa [[yii\base\Component|Component]] dziedziczy po [[yii\base\Object|Object]] i dodatkowo wspiera obsługę [zdarzeń](concept-events.md) oraz [zachowań](concept-behaviors.md). Klasa [[yii\base\Component|Component]] dziedziczy po [[yii\base\BaseObject|BaseObject]] i dodatkowo wspiera obsługę [zdarzeń](concept-events.md) oraz [zachowań](concept-behaviors.md).
Jeśli Twoja klasa nie wymaga ww. wsparcia, rozważ użycie [[yii\base\Object|Object]] jako klasy podstawowej. Tak jest zazwyczaj w przypadku klas reprezentujących Jeśli Twoja klasa nie wymaga ww. wsparcia, rozważ użycie [[yii\base\BaseObject|BaseObject]] jako klasy podstawowej. Tak jest zazwyczaj w przypadku klas reprezentujących
najbardziej podstawową strukturę danych. najbardziej podstawową strukturę danych.
Konfiguracja obiektu Konfiguracja obiektu
-------------------- --------------------
Klasa [[yii\base\Object|Object]] wprowadza ujednoliconą formę konfigurowania obiektów. Każda klasa dziedzicząca po [[yii\base\Object|Object]] powinna zadeklarować swój Klasa [[yii\base\BaseObject|BaseObject]] wprowadza ujednoliconą formę konfigurowania obiektów. Każda klasa dziedzicząca po [[yii\base\BaseObject|BaseObject]] powinna zadeklarować swój
konstruktor (jeśli tego wymaga) w następujący sposób, dzięki czemu zostanie poprawnie skonfigurowana: konstruktor (jeśli tego wymaga) w następujący sposób, dzięki czemu zostanie poprawnie skonfigurowana:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -87,7 +87,7 @@ class MyClass extends \yii\base\Object
W powyższym przykładzie ostatnim parametrem konstruktora musi być tablica konfiguracyjna, W powyższym przykładzie ostatnim parametrem konstruktora musi być tablica konfiguracyjna,
zawierająca pary nazwa-wartość służące do zainicjowania właściwości na końcu konstruktora. zawierająca pary nazwa-wartość służące do zainicjowania właściwości na końcu konstruktora.
Możesz nadpisać metodę [[yii\base\Object::init()|init()]], aby wykonać dodatkowy proces inicjalizacyjny po Możesz nadpisać metodę [[yii\base\BaseObject::init()|init()]], aby wykonać dodatkowy proces inicjalizacyjny po
zaaplikowaniu konfiguracji. zaaplikowaniu konfiguracji.
Dzięki tej konwencji możesz tworzyć i konfigurować nowe obiekty, używając Dzięki tej konwencji możesz tworzyć i konfigurować nowe obiekty, używając

2
docs/guide-pt-BR/concept-behaviors.md

@ -39,7 +39,7 @@ class MyBehavior extends Behavior
``` ```
O código acima define a classe behavior `app\components\MyBehavior`, com duas propriedades --`prop1` e `prop2`-- e um método `foo()`. Note que a propriedade `prop2` O código acima define a classe behavior `app\components\MyBehavior`, com duas propriedades --`prop1` e `prop2`-- e um método `foo()`. Note que a propriedade `prop2`
É definida através do método getter `getProp2()` e setter `setProp2()`. Isto é possível porque [[yii\base\Behavior]] estende de [[yii\base\Object]] e portanto suporta definição de propriedades através de [propriedades](concept-properties.md) getters e setters. É definida através do método getter `getProp2()` e setter `setProp2()`. Isto é possível porque [[yii\base\Behavior]] estende de [[yii\base\BaseObject]] e portanto suporta definição de propriedades através de [propriedades](concept-properties.md) getters e setters.
Como essa classe é um behavior, quando ela está anexada a um componente, então este componente terá as propriedades `prop1` e `prop2` e o método `foo()`. Como essa classe é um behavior, quando ela está anexada a um componente, então este componente terá as propriedades `prop1` e `prop2` e o método `foo()`.

14
docs/guide-pt-BR/concept-components.md

@ -24,13 +24,13 @@ echo DatePicker::widget([
Os widgets são facilmente escritos porque a classe estende de [[yii\base\Component]]. Os widgets são facilmente escritos porque a classe estende de [[yii\base\Component]].
Enquanto os componentes são muito poderosos, eles são um pouco mais pesados do que um objeto normal, devido ao fato de que é preciso memória e CPU extra para dar suporte às funcionalidades de [evento](concept-events.md) e de [behavior](concept-behaviors.md) em particular. Enquanto os componentes são muito poderosos, eles são um pouco mais pesados do que um objeto normal, devido ao fato de que é preciso memória e CPU extra para dar suporte às funcionalidades de [evento](concept-events.md) e de [behavior](concept-behaviors.md) em particular.
Se o seu componente não precisa dessas duas características, você pode considerar estender a sua classe de componente de [[yii\base\Object]] em vez de [[yii\base\Component]]. Se o fizer, fará com que seus componentes sejam tão eficientes como objetos normais do PHP, mas com um suporte adicional para [propriedades](concept-properties.md). Se o seu componente não precisa dessas duas características, você pode considerar estender a sua classe de componente de [[yii\base\BaseObject]] em vez de [[yii\base\Component]]. Se o fizer, fará com que seus componentes sejam tão eficientes como objetos normais do PHP, mas com um suporte adicional para [propriedades](concept-properties.md).
Ao estender a classe de [[yii\base\Component]] ou [[yii\base\Object]], é recomendado que você siga as seguintes convenções: Ao estender a classe de [[yii\base\Component]] ou [[yii\base\BaseObject]], é recomendado que você siga as seguintes convenções:
- Se você sobrescrever o construtor, declare um parâmetro `$config` como último parâmetro do construtor, e em seguida passe este parâmetro para o construtor pai. - Se você sobrescrever o construtor, declare um parâmetro `$config` como último parâmetro do construtor, e em seguida passe este parâmetro para o construtor pai.
- Sempre chame o construtor pai *no final* do seu construtor reescrito. - Sempre chame o construtor pai *no final* do seu construtor reescrito.
- Se você sobrescrever o método [[yii\base\Object::init()]], certifique-se de chamar a implementação pai do `init` *no início* do seu método `init`. - Se você sobrescrever o método [[yii\base\BaseObject::init()]], certifique-se de chamar a implementação pai do `init` *no início* do seu método `init`.
Por Exemplo: Por Exemplo:
@ -39,9 +39,9 @@ Por Exemplo:
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -78,11 +78,11 @@ $component = \Yii::createObject([
de injeção de dependência](concept-di-container.md). de injeção de dependência](concept-di-container.md).
A classe [[yii\base\Object]] impõe o seguinte ciclo de vida do objeto: A classe [[yii\base\BaseObject]] impõe o seguinte ciclo de vida do objeto:
1. Pré-inicialização dentro do construtor. Você pode definir valores de propriedade padrão aqui. 1. Pré-inicialização dentro do construtor. Você pode definir valores de propriedade padrão aqui.
2. Configuração de objeto via `$config`. A configuração pode sobrescrever o valor padrão configurado dentro do construtor. 2. Configuração de objeto via `$config`. A configuração pode sobrescrever o valor padrão configurado dentro do construtor.
3. Pós-inicialização dentro do [[yii\base\Object::init()|init()]]. Você pode sobrescrever este método para executar checagens e normalização das propriedades. 3. Pós-inicialização dentro do [[yii\base\BaseObject::init()|init()]]. Você pode sobrescrever este método para executar checagens e normalização das propriedades.
4. Chamadas de método de objeto. 4. Chamadas de método de objeto.
Os três primeiros passos acontecem dentro do construtor do objeto. Isto significa que uma vez que você instanciar a classe (isto é, um objeto), esse objeto será inicializado adequadamente. Os três primeiros passos acontecem dentro do construtor do objeto. Isto significa que uma vez que você instanciar a classe (isto é, um objeto), esse objeto será inicializado adequadamente.

12
docs/guide-pt-BR/concept-di-container.md

@ -40,9 +40,9 @@ Ao registrar uma dependência ou ao criar um novo objeto, você pode fornecer um
Por exemplo: Por exemplo:
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -65,7 +65,7 @@ $container->get('Foo', [], [
]); ]);
``` ```
> Informação: O método [[yii\di\Container::get()]] recebe em seu terceiro parâmetro um array de configuração que deve ser aplicado ao objecto a ser criado. Se a classe implementa a interface [[yii\base\Configurable]] (por exemplo, [[yii\base\Object]]), o array de configuração será passado como o último parâmetro para o construtor da classe; caso contrário, a configuração será aplicada *depois* que o objeto for criado. > Informação: O método [[yii\di\Container::get()]] recebe em seu terceiro parâmetro um array de configuração que deve ser aplicado ao objecto a ser criado. Se a classe implementa a interface [[yii\base\Configurable]] (por exemplo, [[yii\base\BaseObject]]), o array de configuração será passado como o último parâmetro para o construtor da classe; caso contrário, a configuração será aplicada *depois* que o objeto for criado.
### Injeção de PHP Callable <span id="php-callable-injection"></span> ### Injeção de PHP Callable <span id="php-callable-injection"></span>
@ -195,7 +195,7 @@ O código abaixo mostra um exemplo mais sofisticado. A classe `UserLister` depen
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -204,7 +204,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -219,7 +219,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-pt-BR/concept-events.md

@ -214,7 +214,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);
Note que, neste caso, `$event->sender` refere-se ao nome da classe acionando o evento em vez de uma instância do objeto. Note que, neste caso, `$event->sender` refere-se ao nome da classe acionando o evento em vez de uma instância do objeto.
> Observação: Já que um manipulador de nível de classe vai responder a um evento acionado por qualquer instância dessa classe, ou qualquer classe filha, você deve usá-lo com cuidado, especialmente se a classe é uma classe base de baixo nível, tal como [[yii\base\Object]]. > Observação: Já que um manipulador de nível de classe vai responder a um evento acionado por qualquer instância dessa classe, ou qualquer classe filha, você deve usá-lo com cuidado, especialmente se a classe é uma classe base de baixo nível, tal como [[yii\base\BaseObject]].
Para desvincular um manipulador de evento de nível de classe, chame [[yii\base\Event::off()]]. Por exemplo: Para desvincular um manipulador de evento de nível de classe, chame [[yii\base\Event::off()]]. Por exemplo:

8
docs/guide-pt-BR/concept-properties.md

@ -9,9 +9,9 @@ $object->label = trim($label);
A desvantagem do código acima é que você teria que chamar `trim ()` em todos os lugares onde você definir a propriedade `label` no seu código. Se, no futuro, a propriedade `label` receber um novo requisito, tais como a primeira letra deve ser capitalizado, você teria que modificar novamente todos os pedaços de código que atribui um valor para a propriedade `label`. A repetição de código leva a erros, e é uma prática que você deve evitar sempre que possível. A desvantagem do código acima é que você teria que chamar `trim ()` em todos os lugares onde você definir a propriedade `label` no seu código. Se, no futuro, a propriedade `label` receber um novo requisito, tais como a primeira letra deve ser capitalizado, você teria que modificar novamente todos os pedaços de código que atribui um valor para a propriedade `label`. A repetição de código leva a erros, e é uma prática que você deve evitar sempre que possível.
Para resolver este problema, o Yii introduz uma classe base chamada [[yii\base\Object]] que suporta definições de propriedades baseadas nos métodos *getter* e *setter* da classe. Se uma classe precisar dessa funcionalidade, ela deve estender a classe [[yii\base\Object]], ou de uma classe-filha. Para resolver este problema, o Yii introduz uma classe base chamada [[yii\base\BaseObject]] que suporta definições de propriedades baseadas nos métodos *getter* e *setter* da classe. Se uma classe precisar dessa funcionalidade, ela deve estender a classe [[yii\base\BaseObject]], ou de uma classe-filha.
> Informação: Quase todas as classes nativas (core) do framework Yii estendem de [[yii\base\Object]] ou de uma classe-filha. Isto significa que sempre que você vê um método *getter* ou *setter* em uma classe nativa (core), você pode usá-lo como uma propriedade. > Informação: Quase todas as classes nativas (core) do framework Yii estendem de [[yii\base\BaseObject]] ou de uma classe-filha. Isto significa que sempre que você vê um método *getter* ou *setter* em uma classe nativa (core), você pode usá-lo como uma propriedade.
Um método getter é um método cujo nome inicia com a palavra `get`; um método setter inicia com `set`. Um método getter é um método cujo nome inicia com a palavra `get`; um método setter inicia com `set`.
O nome depois do prefixo `get` ou `set` define o nome da propriedade. Por exemplo, um getter `getLabel()` e/ou um setter `setLabel()` define a propriedade chamada `label`, como mostrado no código a seguir: O nome depois do prefixo `get` ou `set` define o nome da propriedade. Por exemplo, um getter `getLabel()` e/ou um setter `setLabel()` define a propriedade chamada `label`, como mostrado no código a seguir:
@ -19,9 +19,9 @@ O nome depois do prefixo `get` ou `set` define o nome da propriedade. Por exempl
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;

16
docs/guide-pt-BR/intro-upgrade-from-v1.md

@ -63,29 +63,29 @@ dessa classe, graças ao carregador de classes do Yii).
Component e Object Component e Object
------------------ ------------------
O Yii 2.0 divide a classe `CComponent` do 1.1 em duas classes: [[yii\base\Object]] O Yii 2.0 divide a classe `CComponent` do 1.1 em duas classes: [[yii\base\BaseObject]]
e [[yii\base\Component]]. A classe [[yii\base\Object|Object]] é uma classe base e [[yii\base\Component]]. A classe [[yii\base\BaseObject|BaseObject]] é uma classe base
leve que permite a definição das [propriedades de objetos](concept-properties.md) leve que permite a definição das [propriedades de objetos](concept-properties.md)
via getters e setters. A classe [[yii\base\Component|Component]] estende de via getters e setters. A classe [[yii\base\Component|Component]] estende de
[[yii\base\Object|Object]] e suporta [eventos](concept-events.md) e [[yii\base\BaseObject|BaseObject]] e suporta [eventos](concept-events.md) e
[behaviors](concept-behaviors.md) (comportamentos). [behaviors](concept-behaviors.md) (comportamentos).
Se a sua classe não precisa da funcionalidade de eventos e *behaviors*, Se a sua classe não precisa da funcionalidade de eventos e *behaviors*,
você deveria considerar utilizar [[yii\base\Object|Object]] como classe base. você deveria considerar utilizar [[yii\base\BaseObject|BaseObject]] como classe base.
Esse geralmente é o caso de classes que representam estruturas básicas de dados. Esse geralmente é o caso de classes que representam estruturas básicas de dados.
Configuração de Objetos Configuração de Objetos
----------------------- -----------------------
A classe [[yii\base\Object|Object]] introduz uma maneira uniforme de configurar A classe [[yii\base\BaseObject|BaseObject]] introduz uma maneira uniforme de configurar
objetos. Qualquer classe descendente de [[yii\base\Object|Object]] deveria objetos. Qualquer classe descendente de [[yii\base\BaseObject|BaseObject]] deveria
declarar seu construtor (se necessário) da seguinte maneira, para que ela declarar seu construtor (se necessário) da seguinte maneira, para que ela
seja configurada adequadamente: seja configurada adequadamente:
```php ```php
class MinhaClasse extends \yii\base\Object class MinhaClasse extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -105,7 +105,7 @@ class MinhaClasse extends \yii\base\Object
No código acima, o último parâmetro do construtor deve receber um array de No código acima, o último parâmetro do construtor deve receber um array de
configuração que contém pares de nome-valor para a inicialização das propriedades configuração que contém pares de nome-valor para a inicialização das propriedades
no final do construtor. Você pode sobrescrever o método [[yii\base\Object::init()|init()]] no final do construtor. Você pode sobrescrever o método [[yii\base\BaseObject::init()|init()]]
para fazer o trabalho de inicialização que deve ser feito após a configuração para fazer o trabalho de inicialização que deve ser feito após a configuração
ter sido aplicada. ter sido aplicada.

4
docs/guide-pt-BR/runtime-routing.md

@ -686,9 +686,9 @@ Podemos criar uma classe de regra de URL para resolver este formato.
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)

4
docs/guide-pt-BR/structure-extensions.md

@ -456,7 +456,7 @@ a sua extensão:
fornece muitos recursos que podem não ser totalmente cobertos no arquivo readme. fornece muitos recursos que podem não ser totalmente cobertos no arquivo readme.
* Documentação da API: seu código deve ser bem documentado para permitir que * Documentação da API: seu código deve ser bem documentado para permitir que
outros usuários possam ler e entender mais facilmente. outros usuários possam ler e entender mais facilmente.
Você pode consultar o [arquivo da classe Object](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php) Você pode consultar o [arquivo da classe BaseObject](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php)
para aprender como documentar o seu código. para aprender como documentar o seu código.
> Informação: Os seus comentários no código podem ser escritos no formato Markdown. > Informação: Os seus comentários no código podem ser escritos no formato Markdown.
@ -524,4 +524,4 @@ e podem ser facilmente instalados como descrito na subseção [Usando Extensões
- [yiisoft/yii2-swiftmailer](https://github.com/yiisoft/yii2-swiftmailer): - [yiisoft/yii2-swiftmailer](https://github.com/yiisoft/yii2-swiftmailer):
fornece recursos para envio de e-mails baseados no [swiftmailer](http://swiftmailer.org/). fornece recursos para envio de e-mails baseados no [swiftmailer](http://swiftmailer.org/).
- [yiisoft/yii2-twig](https://github.com/yiisoft/yii2-twig): - [yiisoft/yii2-twig](https://github.com/yiisoft/yii2-twig):
fornece um motor de template baseado no [Twig](http://twig.sensiolabs.org/). fornece um motor de template baseado no [Twig](http://twig.sensiolabs.org/).

2
docs/guide-ru/concept-behaviors.md

@ -46,7 +46,7 @@ class MyBehavior extends Behavior
В приведенном выше примере, объявлен класс поведения `app\components\MyBehavior` содержащий 2 свойства В приведенном выше примере, объявлен класс поведения `app\components\MyBehavior` содержащий 2 свойства
`prop1` и `prop2`, и один метод `foo()`. Обратите внимание, свойство `prop2` объявлено с использованием геттера `prop1` и `prop2`, и один метод `foo()`. Обратите внимание, свойство `prop2` объявлено с использованием геттера
`getProp2()` и сеттера `setProp2()`. Это возможно, так как [[yii\base\Behavior]] является дочерним классом для `getProp2()` и сеттера `setProp2()`. Это возможно, так как [[yii\base\Behavior]] является дочерним классом для
[[yii\base\Object]], который предоставляет возможность определения [свойств](concept-properties.md) через геттеры и сеттеры. [[yii\base\BaseObject]], который предоставляет возможность определения [свойств](concept-properties.md) через геттеры и сеттеры.
Так как этот класс является поведением, когда он прикреплён к компоненту, компоненту будут также доступны свойства `prop1` Так как этот класс является поведением, когда он прикреплён к компоненту, компоненту будут также доступны свойства `prop1`
и `prop2`, а также метод `foo()`. и `prop2`, а также метод `foo()`.

14
docs/guide-ru/concept-components.md

@ -28,17 +28,17 @@ echo DatePicker::widget([
Компоненты — очень мощный инструмент. Но в то же время они немного тяжелее обычных объектов, потому что на поддержку Компоненты — очень мощный инструмент. Но в то же время они немного тяжелее обычных объектов, потому что на поддержку
[событий](concept-events.md) и [поведений](concept-behaviors.md) тратится дополнительные память и процессорное время. [событий](concept-events.md) и [поведений](concept-behaviors.md) тратится дополнительные память и процессорное время.
Если ваши компоненты не нуждаются в этих двух возможностях, вам стоит унаследовать их от [[yii\base\Object]], Если ваши компоненты не нуждаются в этих двух возможностях, вам стоит унаследовать их от [[yii\base\BaseObject]],
а не от [[yii\base\Component]]. Поступив так, вы сделаете ваши компоненты такими же эффективными, как и обычные PHP объекты, а не от [[yii\base\Component]]. Поступив так, вы сделаете ваши компоненты такими же эффективными, как и обычные PHP объекты,
но с поддержкой [свойств](concept-properties.md). но с поддержкой [свойств](concept-properties.md).
При наследовании ваших классов от [[yii\base\Component]] или [[yii\base\Object]], рекомендуется следовать некоторым При наследовании ваших классов от [[yii\base\Component]] или [[yii\base\BaseObject]], рекомендуется следовать некоторым
соглашениям: соглашениям:
- Если вы переопределяете конструктор, то добавьте *последним* аргументом параметр `$config` и затем передайте его - Если вы переопределяете конструктор, то добавьте *последним* аргументом параметр `$config` и затем передайте его
в конструктор предка. в конструктор предка.
- Всегда вызывайте конструктор предка *в конце* вашего переопределенного конструктора. - Всегда вызывайте конструктор предка *в конце* вашего переопределенного конструктора.
- Если вы переопределяете метод [[yii\base\Object::init()]], убедитесь, что вы вызываете родительскую реализацию этого - Если вы переопределяете метод [[yii\base\BaseObject::init()]], убедитесь, что вы вызываете родительскую реализацию этого
метода *в начале* вашего метода `init()`. метода *в начале* вашего метода `init()`.
Пример: Пример:
@ -48,9 +48,9 @@ echo DatePicker::widget([
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -86,12 +86,12 @@ $component = \Yii::createObject([
> Info: Способ инициализации через вызов [[Yii::createObject()]] выглядит более сложным. Но в то же время он более > Info: Способ инициализации через вызов [[Yii::createObject()]] выглядит более сложным. Но в то же время он более
мощный из-за того, что он реализован на самом верху [контейнера внедрения зависимостей](concept-di-container.md). мощный из-за того, что он реализован на самом верху [контейнера внедрения зависимостей](concept-di-container.md).
Жизненный цикл объектов класса [[yii\base\Object]] содержит следующие этапы: Жизненный цикл объектов класса [[yii\base\BaseObject]] содержит следующие этапы:
1. Предварительная инициализация в конструкторе. Здесь вы можете установить значения свойств по умолчанию. 1. Предварительная инициализация в конструкторе. Здесь вы можете установить значения свойств по умолчанию.
2. Конфигурация объекта с помощью `$config`. Во время конфигурации могут быть перезаписаны значения свойств по умолчанию, 2. Конфигурация объекта с помощью `$config`. Во время конфигурации могут быть перезаписаны значения свойств по умолчанию,
установленные в конструкторе. установленные в конструкторе.
3. Конфигурация после инициализации в методе [[yii\base\Object::init()|init()]]. Вы можете переопределить этот метод, 3. Конфигурация после инициализации в методе [[yii\base\BaseObject::init()|init()]]. Вы можете переопределить этот метод,
для проверки готовности объекта и нормализации свойств. для проверки готовности объекта и нормализации свойств.
4. Вызов методов объекта. 4. Вызов методов объекта.

12
docs/guide-ru/concept-di-container.md

@ -76,9 +76,9 @@ Yii::$container->invoke([$obj, 'doSomething'], ['param1' => 42]); // $something
Например, Например,
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -101,7 +101,7 @@ $container->get('Foo', [], [
]); ]);
``` ```
> Info: Метод [[yii\di\Container::get()]] третьим аргументом принимает массив конфигурации, которым инициализируется создаваемый объект. Если класс реализует интерфейс [[yii\base\Configurable]] (например, [[yii\base\Object]]), то массив конфигурации передается в последний параметр конструктора класса. Иначе конфигурация применяется уже *после* создания объекта. > Info: Метод [[yii\di\Container::get()]] третьим аргументом принимает массив конфигурации, которым инициализируется создаваемый объект. Если класс реализует интерфейс [[yii\base\Configurable]] (например, [[yii\base\BaseObject]]), то массив конфигурации передается в последний параметр конструктора класса. Иначе конфигурация применяется уже *после* создания объекта.
Более сложное практическое применение <span id="advanced-practical-usage"></span> Более сложное практическое применение <span id="advanced-practical-usage"></span>
@ -375,7 +375,7 @@ $engine = $container->get('app\components\SearchEngine', [$apiKey], ['type' => 1
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -384,7 +384,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -399,7 +399,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-ru/concept-events.md

@ -210,7 +210,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);
Обратите внимание, что в данном случае `$event->sender` имеет значение `null` вместо экзепляра класса, который инициировал событие. Обратите внимание, что в данном случае `$event->sender` имеет значение `null` вместо экзепляра класса, который инициировал событие.
> Note: Поскольку обработчики на уровне класса отвечают на события, инициируемые всеми экземплярами этого класса и всех его потомков, их следует использовать с осторожностью, особенно в случае базовых классов низкого уровня, таких как [[yii\base\Object]]. > Note: Поскольку обработчики на уровне класса отвечают на события, инициируемые всеми экземплярами этого класса и всех его потомков, их следует использовать с осторожностью, особенно в случае базовых классов низкого уровня, таких как [[yii\base\BaseObject]].
Отсоединить обработчик события на уровне класса можно с помощью метода [[yii\base\Event::off()]]. Например: Отсоединить обработчик события на уровне класса можно с помощью метода [[yii\base\Event::off()]]. Например:

12
docs/guide-ru/concept-properties.md

@ -14,11 +14,11 @@ $object->label = trim($label);
присваиваете значение полю `label`. Если в будущем понадобится производить еще какие-либо действие, например преобразовать первую букву в верхний регистр, вам придётся изменить каждый участок кода, где производится присваивание значения присваиваете значение полю `label`. Если в будущем понадобится производить еще какие-либо действие, например преобразовать первую букву в верхний регистр, вам придётся изменить каждый участок кода, где производится присваивание значения
полю `label`. Повторение кода приводит к ошибкам и его необходимо избегать всеми силами. полю `label`. Повторение кода приводит к ошибкам и его необходимо избегать всеми силами.
Что бы решить эту проблему, в Yii был добавлен базовый класс [[yii\base\Object]] который реализует работу со свойствами Что бы решить эту проблему, в Yii был добавлен базовый класс [[yii\base\BaseObject]] который реализует работу со свойствами
через *геттеры* и *сеттеры*. Если вашему классу нужна такая возможность, необходимо унаследовать его от через *геттеры* и *сеттеры*. Если вашему классу нужна такая возможность, необходимо унаследовать его от
[[yii\base\Object]] или его потомка. [[yii\base\BaseObject]] или его потомка.
> Info: Почти все внутренние классы Yii наследуются от [[yii\base\Object]] или его потомков. > Info: Почти все внутренние классы Yii наследуются от [[yii\base\BaseObject]] или его потомков.
Это значит, что всякий раз, когда вы встречаете геттер или сеттер в классах фреймворка, вы можете обращаться к нему Это значит, что всякий раз, когда вы встречаете геттер или сеттер в классах фреймворка, вы можете обращаться к нему
как к свойству. как к свойству.
@ -29,9 +29,9 @@ $object->label = trim($label);
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;
@ -78,7 +78,7 @@ $object->label = 'abc';
* Свойства могут быть объявлены только с помощью *не статичных* геттеров и/или сеттеров. Статичные методы не будут * Свойства могут быть объявлены только с помощью *не статичных* геттеров и/или сеттеров. Статичные методы не будут
обрабатываться подобным образом. обрабатываться подобным образом.
* Обычный вызов `property_exists()` не работает для магических свойств. Для них необходимо использовать * Обычный вызов `property_exists()` не работает для магических свойств. Для них необходимо использовать
[[yii\base\Object::canGetProperty()|canGetProperty()]] или [[yii\base\Object::canSetProperty()|canSetProperty()]]. [[yii\base\BaseObject::canGetProperty()|canGetProperty()]] или [[yii\base\BaseObject::canSetProperty()|canSetProperty()]].
Возвращаясь к проблеме необходимости вызова функции `trim()` во всех местах, где присваивается значение свойству `label`, Возвращаясь к проблеме необходимости вызова функции `trim()` во всех местах, где присваивается значение свойству `label`,
описанной в начале этого руководства, функцию `trim()` теперь необходимо вызывать только один раз — в методе `setLabel()`. описанной в начале этого руководства, функцию `trim()` теперь необходимо вызывать только один раз — в методе `setLabel()`.

16
docs/guide-ru/intro-upgrade-from-v1.md

@ -56,25 +56,25 @@ Yii 2.0 широко использует [Composer](https://getcomposer.org/),
Компонент и объект Компонент и объект
---------------- ----------------
В Yii 2.0 класс `CComponent` из версии 1.1 был разделён на два класса: [[yii\base\Object]] и [[yii\base\Component]]. В Yii 2.0 класс `CComponent` из версии 1.1 был разделён на два класса: [[yii\base\BaseObject]] и [[yii\base\Component]].
Класс [[yii\base\Object|Object]] является простым базовым классом, который позволяет использовать Класс [[yii\base\BaseObject|BaseObject]] является простым базовым классом, который позволяет использовать
[геттеры и сеттеры](concept-properties.md) для свойств. Класс [[yii\base\Component|Component]] наследуется от [геттеры и сеттеры](concept-properties.md) для свойств. Класс [[yii\base\Component|Component]] наследуется от
класса [[yii\base\Object|Object]] и поддерживает [события](concept-events.md) и [поведения](concept-behaviors.md). класса [[yii\base\BaseObject|BaseObject]] и поддерживает [события](concept-events.md) и [поведения](concept-behaviors.md).
Если вашему классу не нужны события или поведения, вы можете использовать [[yii\base\Object|Object]] в качестве Если вашему классу не нужны события или поведения, вы можете использовать [[yii\base\BaseObject|BaseObject]] в качестве
базового класса. В основном это относится к классам, представляющим собой базовые структуры данных. базового класса. В основном это относится к классам, представляющим собой базовые структуры данных.
Конфигурация объекта Конфигурация объекта
------------------ ------------------
Класс [[yii\base\Object|Object]] предоставляет единый способ конфигурирования объектов. Любой дочерний класс Класс [[yii\base\BaseObject|BaseObject]] предоставляет единый способ конфигурирования объектов. Любой дочерний класс
[[yii\base\Object|Object]] может определить конструктор (если нужно) как показано ниже. Это позволит конфигурировать [[yii\base\BaseObject|BaseObject]] может определить конструктор (если нужно) как показано ниже. Это позволит конфигурировать
его универсально: его универсально:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -93,7 +93,7 @@ class MyClass extends \yii\base\Object
``` ```
В примере выше, последний параметр конструктора должен быть массивом конфигурации, который содержит пары в формате В примере выше, последний параметр конструктора должен быть массивом конфигурации, который содержит пары в формате
ключ-значение для инициализации свойств объекта. Вы можете переопределить метод [[yii\base\Object::init()|init()]] для ключ-значение для инициализации свойств объекта. Вы можете переопределить метод [[yii\base\BaseObject::init()|init()]] для
инициализации объекта после того, как конфигурация была применена к нему. инициализации объекта после того, как конфигурация была применена к нему.
Следуя этому соглашению, вы сможете создавать и конфигурировать новые объекты с помощью массива конфигурации: Следуя этому соглашению, вы сможете создавать и конфигурировать новые объекты с помощью массива конфигурации:

4
docs/guide-ru/runtime-routing.md

@ -518,9 +518,9 @@ public function bootstrap($app)
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)

2
docs/guide-ru/structure-extensions.md

@ -362,7 +362,7 @@ class MyBootstrapClass implements BootstrapInterface
* Руководства пользователя, демо-версии, скриншоты и т.д.: они необходимы, если ваше расширение предоставляет много * Руководства пользователя, демо-версии, скриншоты и т.д.: они необходимы, если ваше расширение предоставляет много
возможностей, которые невозможно полностью описать в файле readme. возможностей, которые невозможно полностью описать в файле readme.
* Документация API: ваш код должен быть документирован, чтобы позволить другим людям легко читать и понимать его. Вы * Документация API: ваш код должен быть документирован, чтобы позволить другим людям легко читать и понимать его. Вы
можете обратиться к [файлу класса Object](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php), можете обратиться к [файлу класса BaseObject](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php),
чтобы узнать, как нужно документировать код. чтобы узнать, как нужно документировать код.
> Info: Ваши комментарии к коду могут быть написаны в формате Markdown. Расширение `yiisoft/yii2-apidoc` > Info: Ваши комментарии к коду могут быть написаны в формате Markdown. Расширение `yiisoft/yii2-apidoc`

16
docs/guide-uk/intro-upgrade-from-v1.md

@ -56,24 +56,24 @@ Yii 2.0 використовує PHP 5.4 або вище, який включа
Компонент та Обʼєкт Компонент та Обʼєкт
------------------- -------------------
В Yii 2.0 клас `CComponent` із версії 1.1 був розділений на два класи: [[yii\base\Object]] і [[yii\base\Component]]. В Yii 2.0 клас `CComponent` із версії 1.1 був розділений на два класи: [[yii\base\BaseObject]] і [[yii\base\Component]].
Клас [[yii\base\Object|Object]] є простим базовим класом, який дозволяє керувати [властивостями обʼєкта](concept-properties.md) Клас [[yii\base\BaseObject|BaseObject]] є простим базовим класом, який дозволяє керувати [властивостями обʼєкта](concept-properties.md)
за допомогою геттерів та сеттерів. Клас [[yii\base\Component|Component]] наслідується за допомогою геттерів та сеттерів. Клас [[yii\base\Component|Component]] наслідується
від класа [[yii\base\Object|Object]] та підтримує [події](concept-events.md) та [поведінки](concept-behaviors.md). від класа [[yii\base\BaseObject|BaseObject]] та підтримує [події](concept-events.md) та [поведінки](concept-behaviors.md).
Якщо вашому класу не потрібно використовувати функціонал подій та поведінок, ви можете використати Якщо вашому класу не потрібно використовувати функціонал подій та поведінок, ви можете використати
[[yii\base\Object|Object]] у якості базового класу. В основному, це випадки, коли класи представляють собою базові [[yii\base\BaseObject|BaseObject]] у якості базового класу. В основному, це випадки, коли класи представляють собою базові
структури даних. структури даних.
Конфігурація обʼєкта Конфігурація обʼєкта
-------------------- --------------------
Клас [[yii\base\Object|Object]] надає єдиний спосіб конфігурування обʼєктів. Будь-який дочірній клас Клас [[yii\base\BaseObject|BaseObject]] надає єдиний спосіб конфігурування обʼєктів. Будь-який дочірній клас
[[yii\base\Object|Object]] може визначити конструктор (якщо потрібно) для своєї конфігурації наступним чином: [[yii\base\BaseObject|BaseObject]] може визначити конструктор (якщо потрібно) для своєї конфігурації наступним чином:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -92,7 +92,7 @@ class MyClass extends \yii\base\Object
``` ```
У прикладі вище, останній параметр конструктора повинен бути масивом конфігурації, який містить пари у форматі У прикладі вище, останній параметр конструктора повинен бути масивом конфігурації, який містить пари у форматі
ключ-значення для ініціалізації властивостей обʼєкта. Ви можете перевизначити метод [[yii\base\Object::init()|init()]] ключ-значення для ініціалізації властивостей обʼєкта. Ви можете перевизначити метод [[yii\base\BaseObject::init()|init()]]
для ініціалізації обʼєкту після того, як до нього була застосована конфігурація. для ініціалізації обʼєкту після того, як до нього була застосована конфігурація.
Дотримуючись цієї угоди, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації: Дотримуючись цієї угоди, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації:

14
docs/guide-uz/intro-upgrade-from-v1.md

@ -49,21 +49,21 @@ Klaslarni nomlash kelishuvi direktoriyalar strukturasiga asoslanilgan. Masalan,
Komponent va obekt Komponent va obekt
------------------ ------------------
Yii 2.0 da 1.1 dagi `CComponent` klas ikkita klasga ajratilgan: [[yii\base\Object]] va [[yii\base\Component]]. Yii 2.0 da 1.1 dagi `CComponent` klas ikkita klasga ajratilgan: [[yii\base\BaseObject]] va [[yii\base\Component]].
[[yii\base\Object|Object]] klas oddiy asos klas bo'lib xususiyatlar uchun [getter va setter](concept-properties.md) larni ishlatishga imkon beradi. [[yii\base\BaseObject|BaseObject]] klas oddiy asos klas bo'lib xususiyatlar uchun [getter va setter](concept-properties.md) larni ishlatishga imkon beradi.
[[yii\base\Component|Component]] klas [[yii\base\Object|Object]] klasdan voris bo'lib [xodisalar](concept-events.md) va [[yii\base\Component|Component]] klas [[yii\base\BaseObject|BaseObject]] klasdan voris bo'lib [xodisalar](concept-events.md) va
[o'zini tutish](concept-behaviors.md) larni qo'llab quvvatlaydi. [o'zini tutish](concept-behaviors.md) larni qo'llab quvvatlaydi.
Agar sizni klasingizga xodisalar funksiyalari yoki o'zini tutishlar kerak bo'lmasa asos klas sifatida [[yii\base\Object|Object]] ni qo'llashingiz mumkin. Ushbu holat asosan asos strukturali klaslar yaratilayotgan vaqtda yuz beradi. Agar sizni klasingizga xodisalar funksiyalari yoki o'zini tutishlar kerak bo'lmasa asos klas sifatida [[yii\base\BaseObject|BaseObject]] ni qo'llashingiz mumkin. Ushbu holat asosan asos strukturali klaslar yaratilayotgan vaqtda yuz beradi.
Obekt sozlashlari Obekt sozlashlari
----------------- -----------------
[[yii\base\Object|Object]] klas obektlarni sozlashni yagona usulini tashkillashtiradi. Ixtiyoriy [[yii\base\Object|Object]] ga voris bo'lgan klas (agar kerak bo'lsa) o'zini sozlashi uchun quyidagi ko'rinishda o'ziga konstruktor yaratishi mumkin: [[yii\base\BaseObject|BaseObject]] klas obektlarni sozlashni yagona usulini tashkillashtiradi. Ixtiyoriy [[yii\base\BaseObject|BaseObject]] ga voris bo'lgan klas (agar kerak bo'lsa) o'zini sozlashi uchun quyidagi ko'rinishda o'ziga konstruktor yaratishi mumkin:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -81,7 +81,7 @@ class MyClass extends \yii\base\Object
} }
``` ```
Yuqoridagi misolda oxirgi parametr obekt xususiyatlarini qiymatlovchi sozlashlar massivi ya'ni kalit-qiymat formatidagi juftlikdan iborat bo'lishi kerak. Siz sozlashlar qo'llanilganidan keyin initsializatsiya ishini amalga oshirish uchun oldindan [[yii\base\Object::init()|init()]] metod yaratib qo'yishingiz mumkin. Yuqoridagi misolda oxirgi parametr obekt xususiyatlarini qiymatlovchi sozlashlar massivi ya'ni kalit-qiymat formatidagi juftlikdan iborat bo'lishi kerak. Siz sozlashlar qo'llanilganidan keyin initsializatsiya ishini amalga oshirish uchun oldindan [[yii\base\BaseObject::init()|init()]] metod yaratib qo'yishingiz mumkin.
Ushbu kelishuvga asoslanib siz sozlash massivi yordamida yangi obektlarni yaratishingiz va sozlashingiz mumkin: Ushbu kelishuvga asoslanib siz sozlash massivi yordamida yangi obektlarni yaratishingiz va sozlashingiz mumkin:

2
docs/guide-zh-CN/concept-behaviors.md

@ -37,7 +37,7 @@ class MyBehavior extends Behavior
} }
``` ```
以上代码定义了行为类 `app\components\MyBehavior` 并为要附加行为的组件提供了两个属性 `prop1``prop2` 和一个方法 `foo()` 。注意属性 `prop2` 是通过 getter `getProp2()` 和 setter `setProp2()` 定义的。能这样用是因为 [[yii\base\Object]] 是 [[yii\base\Behavior]] 的祖先类,此祖先类支持用 getter 和 setter 方法定义[属性](basic-properties.md) 以上代码定义了行为类 `app\components\MyBehavior` 并为要附加行为的组件提供了两个属性 `prop1``prop2` 和一个方法 `foo()` 。注意属性 `prop2` 是通过 getter `getProp2()` 和 setter `setProp2()` 定义的。能这样用是因为 [[yii\base\BaseObject]] 是 [[yii\base\Behavior]] 的祖先类,此祖先类支持用 getter 和 setter 方法定义[属性](basic-properties.md)
> Tip: 在行为内部可以通过 [[yii\base\Behavior::owner]] 属性访问行为已附加的组件。 > Tip: 在行为内部可以通过 [[yii\base\Behavior::owner]] 属性访问行为已附加的组件。

14
docs/guide-zh-CN/concept-components.md

@ -23,22 +23,22 @@ echo DatePicker::widget([
这个小部件继承自 [[yii\base\Component]],它的各项属性改写起来会很容易。 这个小部件继承自 [[yii\base\Component]],它的各项属性改写起来会很容易。
正是因为组件功能的强大,他们比常规的对象(Object)稍微重量级一点,因为他们要使用额外的内存和 CPU 时间来处理 [事件](concept-events.md) 和 [行为](concept-behaviors.md) 。如果你不需要这两项功能,可以继承 [[yii\base\Object]] 而不是 [[yii\base\Component]]。这样组件可以像普通 PHP 对象一样高效,同时还支持[属性(Property)](concept-properties.md)功能。 正是因为组件功能的强大,他们比常规的对象(BaseObject)稍微重量级一点,因为他们要使用额外的内存和 CPU 时间来处理 [事件](concept-events.md) 和 [行为](concept-behaviors.md) 。如果你不需要这两项功能,可以继承 [[yii\base\BaseObject]] 而不是 [[yii\base\Component]]。这样组件可以像普通 PHP 对象一样高效,同时还支持[属性(Property)](concept-properties.md)功能。
当继承 [[yii\base\Component]] 或 [[yii\base\Object]] 时,推荐你使用如下的编码风格: 当继承 [[yii\base\Component]] 或 [[yii\base\BaseObject]] 时,推荐你使用如下的编码风格:
- 若你需要重写构造方法(Constructor),传入 `$config` 作为构造器方法**最后一个**参数,然后把它传递给父类的构造方法。 - 若你需要重写构造方法(Constructor),传入 `$config` 作为构造器方法**最后一个**参数,然后把它传递给父类的构造方法。
- 永远在你重写的构造方法**结尾处**调用一下父类的构造方法。 - 永远在你重写的构造方法**结尾处**调用一下父类的构造方法。
- 如果你重写了 [[yii\base\Object::init()]] 方法,请确保你在 `init` 方法的**开头处**调用了父类的 `init` 方法。 - 如果你重写了 [[yii\base\BaseObject::init()]] 方法,请确保你在 `init` 方法的**开头处**调用了父类的 `init` 方法。
例子如下: 例子如下:
```php ```php
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -74,11 +74,11 @@ $component = \Yii::createObject([
> Info: 尽管调用 [[Yii::createObject()]] 的方法看起来更加复杂,但这主要因为它更加灵活强大,它是基于[依赖注入容器](concept-di-container.md)实现的。 > Info: 尽管调用 [[Yii::createObject()]] 的方法看起来更加复杂,但这主要因为它更加灵活强大,它是基于[依赖注入容器](concept-di-container.md)实现的。
[[yii\base\Object]] 类执行时的生命周期如下: [[yii\base\BaseObject]] 类执行时的生命周期如下:
1. 构造方法内的预初始化过程。你可以在这儿给各属性设置缺省值。 1. 构造方法内的预初始化过程。你可以在这儿给各属性设置缺省值。
2. 通过 `$config` 配置对象。配置的过程可能会覆盖掉先前在构造方法内设置的默认值。 2. 通过 `$config` 配置对象。配置的过程可能会覆盖掉先前在构造方法内设置的默认值。
3. 在 [[yii\base\Object::init()|init()]] 方法内进行初始化后的收尾工作。你可以通过重写此方法,进行一些良品检验,属性的初始化之类的工作。 3. 在 [[yii\base\BaseObject::init()|init()]] 方法内进行初始化后的收尾工作。你可以通过重写此方法,进行一些良品检验,属性的初始化之类的工作。
4. 对象方法调用。 4. 对象方法调用。
前三步都是在对象的构造方法内发生的。这意味着一旦你获得了一个对象实例,那么它就已经初始化就绪可供使用。 前三步都是在对象的构造方法内发生的。这意味着一旦你获得了一个对象实例,那么它就已经初始化就绪可供使用。

4
docs/guide-zh-CN/concept-configurations.md

@ -68,7 +68,7 @@ Yii::configure($object, $config);
## 使用配置 ## 使用配置
Yii 中的配置可以用在很多场景。本章开头我们展示了如何使用 [[Yii::creatObject()]] 根据配置信息创建对象。本小节将介绍配置的两种主要用法 —— 配置应用与配置小部件。 Yii 中的配置可以用在很多场景。本章开头我们展示了如何使用 [[Yii::createObject()]] 根据配置信息创建对象。本小节将介绍配置的两种主要用法 —— 配置应用与配置小部件。
### 应用的配置 <span id="application-configurations"></span> ### 应用的配置 <span id="application-configurations"></span>
@ -190,7 +190,7 @@ $config = require 'path/to/web.php';
## 默认配置 <span id="default-configurations"></span> ## 默认配置 <span id="default-configurations"></span>
[[Yii::createObject()]] 方法基于[依赖注入容器](concept-di-container.md)实现。使用 [[Yii::creatObject()]] 创建对象时,可以附加一系列**默认配置**到指定类的任何实例。默认配置还可以在[入口脚本](runtime-bootstrapping.md)中调用 `Yii::$container->set()` 来定义。 [[Yii::createObject()]] 方法基于[依赖注入容器](concept-di-container.md)实现。使用 [[Yii::createObject()]] 创建对象时,可以附加一系列**默认配置**到指定类的任何实例。默认配置还可以在[入口脚本](runtime-bootstrapping.md)中调用 `Yii::$container->set()` 来定义。
例如,如果你想自定义 [[yii\widgets\LinkPager]] 小部件,以便让分页器最多只显示 5 个翻页按钮(默认是 10 个),你可以用下述代码实现: 例如,如果你想自定义 [[yii\widgets\LinkPager]] 小部件,以便让分页器最多只显示 5 个翻页按钮(默认是 10 个),你可以用下述代码实现:

10
docs/guide-zh-CN/concept-di-container.md

@ -38,9 +38,9 @@ $foo = new Foo($bar);
Setter 和属性注入是通过[配置](concept-configurations.md)提供支持的。当注册一个依赖或创建一个新对象时,你可以提供一个配置,该配置会提供给容器用于通过相应的 Setter 或属性注入依赖。例如: Setter 和属性注入是通过[配置](concept-configurations.md)提供支持的。当注册一个依赖或创建一个新对象时,你可以提供一个配置,该配置会提供给容器用于通过相应的 Setter 或属性注入依赖。例如:
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -162,7 +162,7 @@ $engine = $container->get('app\components\SearchEngine', [$apiKey], ['type' => 1
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -171,7 +171,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -186,7 +186,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide-zh-CN/concept-events.md

@ -204,7 +204,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);
注意这种情况下 `$event->sender` 指向触发事件的类名而不是对象实例。 注意这种情况下 `$event->sender` 指向触发事件的类名而不是对象实例。
> Note: 因为类级别的处理器响应类和其子类的所有实例触发的事件,必须谨慎使用,尤其是底层的基类,如 [[yii\base\Object]]。 > Note: 因为类级别的处理器响应类和其子类的所有实例触发的事件,必须谨慎使用,尤其是底层的基类,如 [[yii\base\BaseObject]]。
移除类级别的事件处理器只需调用[[yii\base\Event::off()]],如: 移除类级别的事件处理器只需调用[[yii\base\Event::off()]],如:

10
docs/guide-zh-CN/concept-properties.md

@ -9,18 +9,18 @@ $object->label = trim($label);
上述代码的缺点是只要修改 `label` 属性就必须再次调用 `trim()` 函数。若将来需要用其它方式处理 `label` 属性,比如首字母大写,就不得不修改所有给 `label` 属性赋值的代码。这种代码的重复会导致 bug,这种实践显然需要尽可能避免。 上述代码的缺点是只要修改 `label` 属性就必须再次调用 `trim()` 函数。若将来需要用其它方式处理 `label` 属性,比如首字母大写,就不得不修改所有给 `label` 属性赋值的代码。这种代码的重复会导致 bug,这种实践显然需要尽可能避免。
为解决该问题,Yii 引入了一个名为 [[yii\base\Object]] 的基类,它支持基于类内的 **getter****setter**(读取器和设定器)方法来定义属性。如果某类需要支持这个特性,只需要继承 [[yii\base\Object]] 或其子类即可。 为解决该问题,Yii 引入了一个名为 [[yii\base\BaseObject]] 的基类,它支持基于类内的 **getter****setter**(读取器和设定器)方法来定义属性。如果某类需要支持这个特性,只需要继承 [[yii\base\BaseObject]] 或其子类即可。
> Info: 几乎每个 Yii 框架的核心类都继承自 [[yii\base\Object]] 或其子类。这意味着只要在核心类中见到 getter 或 setter 方法,就可以像调用属性一样调用它。 > Info: 几乎每个 Yii 框架的核心类都继承自 [[yii\base\BaseObject]] 或其子类。这意味着只要在核心类中见到 getter 或 setter 方法,就可以像调用属性一样调用它。
getter 方法是名称以 `get` 开头的方法,而 setter 方法名以 `set` 开头。方法名中 `get``set` 后面的部分就定义了该属性的名字。如下面代码所示,getter 方法 `getLabel()` 和 setter 方法 `setLabel()` 操作的是 `label` 属性,: getter 方法是名称以 `get` 开头的方法,而 setter 方法名以 `set` 开头。方法名中 `get``set` 后面的部分就定义了该属性的名字。如下面代码所示,getter 方法 `getLabel()` 和 setter 方法 `setLabel()` 操作的是 `label` 属性,:
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extend Object class Foo extend BaseObject
{ {
private $_label; private $_label;
@ -57,4 +57,4 @@ $object->label = 'abc';
* 这类属性不支持可见性(访问限制)。定义属性的 getter 和 setter 方法是 public、protected 还是 private 对属性的可见性没有任何影响。 * 这类属性不支持可见性(访问限制)。定义属性的 getter 和 setter 方法是 public、protected 还是 private 对属性的可见性没有任何影响。
* 这类属性的 getter 和 setter 方法只能定义为**非静态**的,若定义为静态方法(static)则不会以相同方式处理。 * 这类属性的 getter 和 setter 方法只能定义为**非静态**的,若定义为静态方法(static)则不会以相同方式处理。
回到开头提到的问题,与其处处要调用 `trim()` 函数,现在我们只需在 setter `setLabel()` 方法内调用一次。如果 label 首字母变成大写的新要求来了,我们只需要修改`setLabel()` 方法,而无须接触任何其它代码。 回到开头提到的问题,与其处处要调用 `trim()` 函数,现在我们只需在 setter `setLabel()` 方法内调用一次。如果 label 首字母变成大写的新要求来了,我们只需要修改`setLabel()` 方法,而无须接触任何其它代码。

12
docs/guide-zh-CN/intro-upgrade-from-v1.md

@ -38,21 +38,21 @@ Yii 2.0 里最明显的改动就数命名空间的使用了。几乎每一个核
有了 Yii 的类自动加载器,你可以直接使用全部核心类而不需要显式包含具体文件。 有了 Yii 的类自动加载器,你可以直接使用全部核心类而不需要显式包含具体文件。
组件(Component)与对象(Object) 组件(Component)与对象(BaseObject)
-------------------- --------------------
Yii 2.0 把 1.1 中的 `CComponent` 类拆分成了两个类:[[yii\base\Object]] 和 [[yii\base\Component]]。[[yii\base\Object|Object]] 类是一个轻量级的基类,你可以通过 getters 和 setters 来定义[对象的属性](concept-properties.md)。[[yii\base\Component|Component]] 类继承自 [[yii\base\Object|Object]],同时进一步支持 [事件](concept-events.md) 和 [行为](concept-behaviors.md)。 Yii 2.0 把 1.1 中的 `CComponent` 类拆分成了两个类:[[yii\base\BaseObject]] 和 [[yii\base\Component]]。[[yii\base\BaseObject|BaseObject]] 类是一个轻量级的基类,你可以通过 getters 和 setters 来定义[对象的属性](concept-properties.md)。[[yii\base\Component|Component]] 类继承自 [[yii\base\BaseObject|BaseObject]],同时进一步支持 [事件](concept-events.md) 和 [行为](concept-behaviors.md)。
如果你不需要用到事件或行为,应该考虑使用 [[yii\base\Object|Object]] 类作为基类。这种类通常用来表示基本的数据结构。 如果你不需要用到事件或行为,应该考虑使用 [[yii\base\BaseObject|BaseObject]] 类作为基类。这种类通常用来表示基本的数据结构。
对象的配置 对象的配置
-------------------- --------------------
[[yii\base\Object|Object]] 类引入了一种统一对象配置的方法。所有 [[yii\base\Object|Object]] 的子类都应该用以下方法声明它的构造方法(如果需要的话),以正确配置它自身: [[yii\base\BaseObject|BaseObject]] 类引入了一种统一对象配置的方法。所有 [[yii\base\BaseObject|BaseObject]] 的子类都应该用以下方法声明它的构造方法(如果需要的话),以正确配置它自身:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -70,7 +70,7 @@ class MyClass extends \yii\base\Object
} }
``` ```
在上面的例子里,构造方法的最后一个参数必须传入一个配置数组,包含一系列用于在方法结尾初始化相关属性的键值对。你可以重写 [[yii\base\Object::init()|init()]] 方法来执行一些需要在配置生效后进行的初始化工作。 在上面的例子里,构造方法的最后一个参数必须传入一个配置数组,包含一系列用于在方法结尾初始化相关属性的键值对。你可以重写 [[yii\base\BaseObject::init()|init()]] 方法来执行一些需要在配置生效后进行的初始化工作。
你可以通过遵循以下约定俗成的编码习惯,来使用配置数组创建并配置新的对象: 你可以通过遵循以下约定俗成的编码习惯,来使用配置数组创建并配置新的对象:

2
docs/guide-zh-CN/structure-extensions.md

@ -376,7 +376,7 @@ help other people learn about and use your extension:
* Tutorials, demos, screenshots, etc.: these are needed if your extension provides many features that cannot be * Tutorials, demos, screenshots, etc.: these are needed if your extension provides many features that cannot be
fully covered in the readme file. fully covered in the readme file.
* API documentation: your code should be well documented to allow other people more easily read and understand it. * API documentation: your code should be well documented to allow other people more easily read and understand it.
You may refer to the [Object class file](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php) You may refer to the [BaseObject class file](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php)
to learn how to document your code. to learn how to document your code.
> Info: Your code comments can be written in Markdown format. The `yiisoft/yii2-apidoc` extension provides a tool > Info: Your code comments can be written in Markdown format. The `yiisoft/yii2-apidoc` extension provides a tool

2
docs/guide/concept-behaviors.md

@ -44,7 +44,7 @@ class MyBehavior extends Behavior
The above code defines the behavior class `app\components\MyBehavior`, with two properties-- The above code defines the behavior class `app\components\MyBehavior`, with two properties--
`prop1` and `prop2`--and one method `foo()`. Note that property `prop2` `prop1` and `prop2`--and one method `foo()`. Note that property `prop2`
is defined via the getter `getProp2()` and the setter `setProp2()`. This is the case because [[yii\base\Behavior]] extends [[yii\base\Object]] and therefore supports defining [properties](concept-properties.md) via getters and setters. is defined via the getter `getProp2()` and the setter `setProp2()`. This is the case because [[yii\base\Behavior]] extends [[yii\base\BaseObject]] and therefore supports defining [properties](concept-properties.md) via getters and setters.
Because this class is a behavior, when it is attached to a component, that component will then also have the `prop1` and `prop2` properties and the `foo()` method. Because this class is a behavior, when it is attached to a component, that component will then also have the `prop1` and `prop2` properties and the `foo()` method.

14
docs/guide/concept-components.md

@ -29,16 +29,16 @@ The widget's properties are easily writable because the class extends [[yii\base
While components are very powerful, they are a bit heavier than normal objects, due to the fact that While components are very powerful, they are a bit heavier than normal objects, due to the fact that
it takes extra memory and CPU time to support [event](concept-events.md) and [behavior](concept-behaviors.md) functionality in particular. it takes extra memory and CPU time to support [event](concept-events.md) and [behavior](concept-behaviors.md) functionality in particular.
If your components do not need these two features, you may consider extending your component class from If your components do not need these two features, you may consider extending your component class from
[[yii\base\Object]] instead of [[yii\base\Component]]. Doing so will make your components as efficient as normal PHP objects, [[yii\base\BaseObject]] instead of [[yii\base\Component]]. Doing so will make your components as efficient as normal PHP objects,
but with added support for [properties](concept-properties.md). but with added support for [properties](concept-properties.md).
When extending your class from [[yii\base\Component]] or [[yii\base\Object]], it is recommended that you follow When extending your class from [[yii\base\Component]] or [[yii\base\BaseObject]], it is recommended that you follow
these conventions: these conventions:
- If you override the constructor, specify a `$config` parameter as the constructor's *last* parameter, and then pass this parameter - If you override the constructor, specify a `$config` parameter as the constructor's *last* parameter, and then pass this parameter
to the parent constructor. to the parent constructor.
- Always call the parent constructor *at the end* of your overriding constructor. - Always call the parent constructor *at the end* of your overriding constructor.
- If you override the [[yii\base\Object::init()]] method, make sure you call the parent implementation of `init()` *at the beginning* of your `init()` method. - If you override the [[yii\base\BaseObject::init()]] method, make sure you call the parent implementation of `init()` *at the beginning* of your `init()` method.
For example: For example:
@ -47,9 +47,9 @@ For example:
namespace yii\components\MyClass; namespace yii\components\MyClass;
use yii\base\Object; use yii\base\BaseObject;
class MyClass extends Object class MyClass extends BaseObject
{ {
public $prop1; public $prop1;
public $prop2; public $prop2;
@ -86,11 +86,11 @@ $component = \Yii::createObject([
> implemented on top of a [dependency injection container](concept-di-container.md). > implemented on top of a [dependency injection container](concept-di-container.md).
The [[yii\base\Object]] class enforces the following object lifecycle: The [[yii\base\BaseObject]] class enforces the following object lifecycle:
1. Pre-initialization within the constructor. You can set default property values here. 1. Pre-initialization within the constructor. You can set default property values here.
2. Object configuration via `$config`. The configuration may overwrite the default values set within the constructor. 2. Object configuration via `$config`. The configuration may overwrite the default values set within the constructor.
3. Post-initialization within [[yii\base\Object::init()|init()]]. You may override this method to perform sanity checks and normalization of the properties. 3. Post-initialization within [[yii\base\BaseObject::init()|init()]]. You may override this method to perform sanity checks and normalization of the properties.
4. Object method calls. 4. Object method calls.
The first three steps all happen within the object's constructor. This means that once you get a class instance (i.e., an object), The first three steps all happen within the object's constructor. This means that once you get a class instance (i.e., an object),

12
docs/guide/concept-di-container.md

@ -78,9 +78,9 @@ will be used by the container to inject the dependencies through the correspondi
For example, For example,
```php ```php
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
public $bar; public $bar;
@ -105,7 +105,7 @@ $container->get('Foo', [], [
> Info: The [[yii\di\Container::get()]] method takes its third parameter as a configuration array that should > Info: The [[yii\di\Container::get()]] method takes its third parameter as a configuration array that should
be applied to the object being created. If the class implements the [[yii\base\Configurable]] interface (e.g. be applied to the object being created. If the class implements the [[yii\base\Configurable]] interface (e.g.
[[yii\base\Object]]), the configuration array will be passed as the last parameter to the class constructor; [[yii\base\BaseObject]]), the configuration array will be passed as the last parameter to the class constructor;
otherwise, the configuration will be applied *after* the object is created. otherwise, the configuration will be applied *after* the object is created.
@ -253,7 +253,7 @@ and creates a new `UserLister` instance with a simple call of `get('userLister')
```php ```php
namespace app\models; namespace app\models;
use yii\base\Object; use yii\base\BaseObject;
use yii\db\Connection; use yii\db\Connection;
use yii\di\Container; use yii\di\Container;
@ -262,7 +262,7 @@ interface UserFinderInterface
function findUser(); function findUser();
} }
class UserFinder extends Object implements UserFinderInterface class UserFinder extends BaseObject implements UserFinderInterface
{ {
public $db; public $db;
@ -277,7 +277,7 @@ class UserFinder extends Object implements UserFinderInterface
} }
} }
class UserLister extends Object class UserLister extends BaseObject
{ {
public $finder; public $finder;

2
docs/guide/concept-events.md

@ -239,7 +239,7 @@ Event::trigger(Foo::className(), Foo::EVENT_HELLO);
Note that, in this case, `$event->sender` is `null` instead of an object instance. Note that, in this case, `$event->sender` is `null` instead of an object instance.
> Note: Because a class-level handler will respond to an event triggered by any instance of that class, or any child > Note: Because a class-level handler will respond to an event triggered by any instance of that class, or any child
classes, you should use it carefully, especially if the class is a low-level base class, such as [[yii\base\Object]]. classes, you should use it carefully, especially if the class is a low-level base class, such as [[yii\base\BaseObject]].
To detach a class-level event handler, call [[yii\base\Event::off()]]. For example: To detach a class-level event handler, call [[yii\base\Event::off()]]. For example:

14
docs/guide/concept-properties.md

@ -16,11 +16,11 @@ property. If, in the future, the `label` property gets a new requirement, such a
you would again have to modify every bit of code that assigns a value to `label`. you would again have to modify every bit of code that assigns a value to `label`.
The repetition of code leads to bugs, and is a practice you want to avoid as much as possible. The repetition of code leads to bugs, and is a practice you want to avoid as much as possible.
To solve this problem, Yii introduces a base class called [[yii\base\Object]] that supports defining properties To solve this problem, Yii introduces a base class called [[yii\base\BaseObject]] that supports defining properties
based on *getter* and *setter* class methods. If a class needs that functionality, it should extend from based on *getter* and *setter* class methods. If a class needs that functionality, it should extend from
[[yii\base\Object]], or from a child class. [[yii\base\BaseObject]], or from a child class.
> Info: Nearly every core class in the Yii framework extends from [[yii\base\Object]] or a child class. > Info: Nearly every core class in the Yii framework extends from [[yii\base\BaseObject]] or a child class.
This means, that whenever you see a getter or setter in a core class, you can use it like a property. This means, that whenever you see a getter or setter in a core class, you can use it like a property.
A getter method is a method whose name starts with the word `get`; a setter method starts with `set`. A getter method is a method whose name starts with the word `get`; a setter method starts with `set`.
@ -30,9 +30,9 @@ a setter `setLabel()` defines a property named `label`, as shown in the followin
```php ```php
namespace app\components; namespace app\components;
use yii\base\Object; use yii\base\BaseObject;
class Foo extends Object class Foo extends BaseObject
{ {
private $_label; private $_label;
@ -77,8 +77,8 @@ There are several special rules for, and limitations on, the properties defined
will affect the *member variable* `label`; that line would not call the `setLabel()` setter method. will affect the *member variable* `label`; that line would not call the `setLabel()` setter method.
* These properties do not support visibility. It makes no difference to the defining getter or setter method if the property is public, protected or private. * These properties do not support visibility. It makes no difference to the defining getter or setter method if the property is public, protected or private.
* The properties can only be defined by *non-static* getters and/or setters. Static methods will not be treated in the same manner. * The properties can only be defined by *non-static* getters and/or setters. Static methods will not be treated in the same manner.
* A normal call to `property_exists()` does not work to determine magic properties. You should call [[yii\base\Object::canGetProperty()|canGetProperty()]] * A normal call to `property_exists()` does not work to determine magic properties. You should call [[yii\base\BaseObject::canGetProperty()|canGetProperty()]]
or [[yii\base\Object::canSetProperty()|canSetProperty()]] respectively. or [[yii\base\BaseObject::canSetProperty()|canSetProperty()]] respectively.
Returning back to the problem described at the beginning of this guide, instead of calling `trim()` everywhere a `label` value is assigned, Returning back to the problem described at the beginning of this guide, instead of calling `trim()` everywhere a `label` value is assigned,
`trim()` now only needs to be invoked within the setter `setLabel()`. `trim()` now only needs to be invoked within the setter `setLabel()`.

16
docs/guide/intro-upgrade-from-v1.md

@ -56,25 +56,25 @@ class loader.)
Component and Object Component and Object
-------------------- --------------------
Yii 2.0 breaks the `CComponent` class in 1.1 into two classes: [[yii\base\Object]] and [[yii\base\Component]]. Yii 2.0 breaks the `CComponent` class in 1.1 into two classes: [[yii\base\BaseObject]] and [[yii\base\Component]].
The [[yii\base\Object|Object]] class is a lightweight base class that allows defining [object properties](concept-properties.md) The [[yii\base\BaseObject|BaseObject]] class is a lightweight base class that allows defining [object properties](concept-properties.md)
via getters and setters. The [[yii\base\Component|Component]] class extends from [[yii\base\Object|Object]] and supports via getters and setters. The [[yii\base\Component|Component]] class extends from [[yii\base\BaseObject|BaseObject]] and supports
[events](concept-events.md) and [behaviors](concept-behaviors.md). [events](concept-events.md) and [behaviors](concept-behaviors.md).
If your class does not need the event or behavior feature, you should consider using If your class does not need the event or behavior feature, you should consider using
[[yii\base\Object|Object]] as the base class. This is usually the case for classes that represent basic [[yii\base\BaseObject|BaseObject]] as the base class. This is usually the case for classes that represent basic
data structures. data structures.
Object Configuration Object Configuration
-------------------- --------------------
The [[yii\base\Object|Object]] class introduces a uniform way of configuring objects. Any descendant class The [[yii\base\BaseObject|BaseObject]] class introduces a uniform way of configuring objects. Any descendant class
of [[yii\base\Object|Object]] should declare its constructor (if needed) in the following way so that of [[yii\base\BaseObject|BaseObject]] should declare its constructor (if needed) in the following way so that
it can be properly configured: it can be properly configured:
```php ```php
class MyClass extends \yii\base\Object class MyClass extends \yii\base\BaseObject
{ {
public function __construct($param1, $param2, $config = []) public function __construct($param1, $param2, $config = [])
{ {
@ -94,7 +94,7 @@ class MyClass extends \yii\base\Object
In the above, the last parameter of the constructor must take a configuration array In the above, the last parameter of the constructor must take a configuration array
that contains name-value pairs for initializing the properties at the end of the constructor. that contains name-value pairs for initializing the properties at the end of the constructor.
You can override the [[yii\base\Object::init()|init()]] method to do initialization work that should be done after You can override the [[yii\base\BaseObject::init()|init()]] method to do initialization work that should be done after
the configuration has been applied. the configuration has been applied.
By following this convention, you will be able to create and configure new objects By following this convention, you will be able to create and configure new objects

4
docs/guide/runtime-routing.md

@ -585,9 +585,9 @@ We can create the following URL rule class to solve this problem.
namespace app\components; namespace app\components;
use yii\web\UrlRuleInterface; 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) public function createUrl($manager, $route, $params)
{ {

2
docs/guide/structure-extensions.md

@ -376,7 +376,7 @@ help other people learn about and use your extension:
* Tutorials, demos, screenshots, etc.: these are needed if your extension provides many features that cannot be * Tutorials, demos, screenshots, etc.: these are needed if your extension provides many features that cannot be
fully covered in the readme file. fully covered in the readme file.
* API documentation: your code should be well documented to allow other people to more easily read and understand it. * API documentation: your code should be well documented to allow other people to more easily read and understand it.
You may refer to the [Object class file](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php) You may refer to the [BaseObject class file](https://github.com/yiisoft/yii2/blob/master/framework/base/BaseObject.php)
to learn how to document your code. to learn how to document your code.
> Info: Your code comments can be written in Markdown format. The `yiisoft/yii2-apidoc` extension provides a tool > Info: Your code comments can be written in Markdown format. The `yiisoft/yii2-apidoc` extension provides a tool

6
docs/internals-ja/core-code-style.md

@ -61,7 +61,7 @@ PHP コードは BOM 無しの UTF-8 のみを使わなければなりません
/** /**
* ドキュメント * ドキュメント
*/ */
class MyClass extends \yii\Object implements MyInterface class MyClass extends \yii\base\BaseObject implements MyInterface
{ {
// コード // コード
} }
@ -369,7 +369,7 @@ $mul = array_reduce($numbers, function($r, $x) use($n) {
- ドキュメントの無いコードは許容されません。 - ドキュメントの無いコードは許容されません。
- 全てのクラスファイルは、ファイルレベルの doc ブロックを各ファイルの先頭に持ち、クラスレベルの doc ブロックを各クラスの直前に持たなければなりません。 - 全てのクラスファイルは、ファイルレベルの doc ブロックを各ファイルの先頭に持ち、クラスレベルの doc ブロックを各クラスの直前に持たなければなりません。
- メソッドが実際に何も返さないときは `@return` を使う必要はありません。 - メソッドが実際に何も返さないときは `@return` を使う必要はありません。
- `yii\base\Object` から派生するクラスのすべての仮想プロパティは、クラスの doc ブロックで `@property` タグでドキュメントされます。 - `yii\base\BaseObject` から派生するクラスのすべての仮想プロパティは、クラスの doc ブロックで `@property` タグでドキュメントされます。
これらの注釈は、`build` ディレクトリで `./build php-doc` コマンドを走らせることにより、対応する getter や setter の `@return``@param` タグから自動的に生成されます。 これらの注釈は、`build` ディレクトリで `./build php-doc` コマンドを走らせることにより、対応する getter や setter の `@return``@param` タグから自動的に生成されます。
getter や setter に `@property` タグを追加することによって、これらのメソッドによって導入されるプロパティに対してドキュメントのメッセージを明示的に与えることが出来ます。 getter や setter に `@property` タグを追加することによって、これらのメソッドによって導入されるプロパティに対してドキュメントのメッセージを明示的に与えることが出来ます。
これは `@return` で記述されているのとは違う説明を与えたい場合に有用です。 これは `@return` で記述されているのとは違う説明を与えたい場合に有用です。
@ -411,7 +411,7 @@ $mul = array_reduce($numbers, function($r, $x) use($n) {
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Component extends \yii\base\Object class Component extends \yii\base\BaseObject
``` ```

6
docs/internals-pl/core-code-style.md

@ -58,7 +58,7 @@ Termin "klasa" odnosi się tutaj do wszystkich klas i interfejsów.
/** /**
* Dokumentacja * Dokumentacja
*/ */
class MyClass extends \yii\Object implements MyInterface class MyClass extends \yii\base\BaseObject implements MyInterface
{ {
// kod // kod
} }
@ -346,7 +346,7 @@ Dokumentacja
- Każdy plik klasy musi zawierać blok dokumentacji "poziomu pliku" na początku pliku i blok dokumentacji "poziomu klasy" - Każdy plik klasy musi zawierać blok dokumentacji "poziomu pliku" na początku pliku i blok dokumentacji "poziomu klasy"
zaraz nad klasą. zaraz nad klasą.
- Nie ma konieczności używania `@return`, jeśli metoda niczego nie zwraca. - Nie ma konieczności używania `@return`, jeśli metoda niczego nie zwraca.
- Wszystkie wirtualne właściwości w klasach, które rozszerzają `yii\base\Object` są udokumentowane za pomocą tagu `@property` - Wszystkie wirtualne właściwości w klasach, które rozszerzają `yii\base\BaseObject` są udokumentowane za pomocą tagu `@property`
w bloku dokumentacji klasy. w bloku dokumentacji klasy.
Adnotacje te są automatycznie generowane z tagów `@return` lub `@param` w odpowiednich getterach lub setterach przez Adnotacje te są automatycznie generowane z tagów `@return` lub `@param` w odpowiednich getterach lub setterach przez
uruchomienie `./build php-doc` w folderze build. uruchomienie `./build php-doc` w folderze build.
@ -389,7 +389,7 @@ Dokumentacja
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Component extends \yii\base\Object class Component extends \yii\base\BaseObject
``` ```

6
docs/internals-ru/core-code-style.md

@ -53,7 +53,7 @@ PHP код должен содержать только символы в код
/** /**
* Документация * Документация
*/ */
class MyClass extends \yii\Object implements MyInterface class MyClass extends \yii\base\BaseObject implements MyInterface
{ {
// код // код
} }
@ -339,7 +339,7 @@ $mul = array_reduce($numbers, function($r, $x) use($n) {
- Код без документации недопустим; - Код без документации недопустим;
- Все файлы классов должны содержать блок документации в начале файла и блок документации непосредственно перед каждым классом; - Все файлы классов должны содержать блок документации в начале файла и блок документации непосредственно перед каждым классом;
- Нет необходимости использовать тег `@return` если метод не возвращает значение; - Нет необходимости использовать тег `@return` если метод не возвращает значение;
- Все виртуальные свойства классов, наследованных от `yii\base\Object`, документируются тегом `@property` в блоке документации класса; - Все виртуальные свойства классов, наследованных от `yii\base\BaseObject`, документируются тегом `@property` в блоке документации класса;
Аннотации геттеров и сеттеров автоматически генерируются из соответствующих тегов `@return` or `@param` Аннотации геттеров и сеттеров автоматически генерируются из соответствующих тегов `@return` or `@param`
посредством выполнения команды `./build php-doc` в соответствующем каталоге; посредством выполнения команды `./build php-doc` в соответствующем каталоге;
Вы можете добавить дополнительный тег `@property` для геттера или сеттера для пояснения назначения переменной метода, если это необходимо. Вы можете добавить дополнительный тег `@property` для геттера или сеттера для пояснения назначения переменной метода, если это необходимо.
@ -381,7 +381,7 @@ public function getErrors($attribute = null)
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Component extends \yii\base\Object class Component extends \yii\base\BaseObject
``` ```

6
docs/internals-uk/core-code-style.md

@ -57,7 +57,7 @@ PHP код ПОВИНЕН використовувати лише UTF-8 без B
/** /**
* Документація * Документація
*/ */
class MyClass extends \yii\Object implements MyInterface class MyClass extends \yii\base\BaseObject implements MyInterface
{ {
// код // код
} }
@ -337,7 +337,7 @@ $mul = array_reduce($numbers, function($r, $x) use($n) {
- Усі файли класів повинні містити файловий ("file-level") doc-блок на початку - Усі файли класів повинні містити файловий ("file-level") doc-блок на початку
та класовий ("class-level") doc-блок безпосередньо над кожним класом. та класовий ("class-level") doc-блок безпосередньо над кожним класом.
- Нема потреби використовувати `@return`, якщо метод нічого не повертає. - Нема потреби використовувати `@return`, якщо метод нічого не повертає.
- Усі віртуальні властивості у класах успадкованих від `yii\base\Object` - Усі віртуальні властивості у класах успадкованих від `yii\base\BaseObject`
документуються з тегом `@property` у класовому doc-блоці. документуються з тегом `@property` у класовому doc-блоці.
Ці анотації генеруються автоматично із тегів `@return` чи `@param` Ці анотації генеруються автоматично із тегів `@return` чи `@param`
відповідних геттерів або сеттерів виконанням команди `./build php-doc` у директорії build. відповідних геттерів або сеттерів виконанням команди `./build php-doc` у директорії build.
@ -382,7 +382,7 @@ $mul = array_reduce($numbers, function($r, $x) use($n) {
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Component extends \yii\base\Object class Component extends \yii\base\BaseObject
``` ```

6
docs/internals/core-code-style.md

@ -58,7 +58,7 @@ The term "class" refers to all classes and interfaces here.
/** /**
* Documentation * Documentation
*/ */
class MyClass extends \yii\Object implements MyInterface class MyClass extends \yii\base\BaseObject implements MyInterface
{ {
// code // code
} }
@ -367,7 +367,7 @@ Documentation
- All class files must contain a "file-level" docblock at the top of each file - All class files must contain a "file-level" docblock at the top of each file
and a "class-level" docblock immediately above each class. and a "class-level" docblock immediately above each class.
- There is no need to use `@return` if method does return nothing. - There is no need to use `@return` if method does return nothing.
- All virtual properties in classes that extend from `yii\base\Object` - All virtual properties in classes that extend from `yii\base\BaseObject`
are documented with an `@property` tag in the class doc block. are documented with an `@property` tag in the class doc block.
These annotations are automatically generated from the `@return` or `@param` These annotations are automatically generated from the `@return` or `@param`
tag in the corresponding getter or setter by running `./build php-doc` in the build directory. tag in the corresponding getter or setter by running `./build php-doc` in the build directory.
@ -412,7 +412,7 @@ Documentation
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Component extends \yii\base\Object class Component extends \yii\base\BaseObject
``` ```

Loading…
Cancel
Save