Usando Getters Y Setters YII
Enviado por ulises68 • 8 de Septiembre de 2013 • 1.638 Palabras (7 Páginas) • 348 Visitas
Capítulo I
- Uso getters y setters
- Uso de eventos Yii
- Utilización de la importación y carga automática
- Con excepciones
- Configuración de componentes
-Configuración por defecto del widget
- Uso Yii colecciones núcleo
- Trabajar con solicitud
Usando getters y setters
Yii tiene muchas características que vienen de otros lenguajes, como Java o C #. Uno de ellos es la definición de propiedades con getters y setters para cualquiera clase Heredada (extendida) del CComponente (esto es, virtualmente cualquier clase Yii).
A partir de esta receta, aprenderá a definir sus propias propiedades con getters y setters, cómo hacer que sus propiedades de sólo lectura, y la forma de ocultar detrás de un tratamiento personalizado nativo PHP asignaciones.
How to do it...
1. Como PHP no tiene propiedades a nivel del lenguaje, sólo podemos usar getters y setters en la forma siguiente:
class MyClass
{
// $property oculta
private $property;
// getter
public function getProperty()
{
return $this->property;
}
// setter
public function setProperty($value)
{
$this->property = $value;
}
}
$object = new MyClass();
// setting value
$object->setProperty('value');
// getting value
echo $object->getProperty();
2. Esta sintaxis es muy común en el mundo Java, pero es un poco largo para utilizar en PHP. Aún así, no desea utilizar la misma funcionalidad que C # y las propiedades que nos da: llamando getters y setters con miembros de la clase. Con Yii, podemos hacerlo de la siguiente manera:
// Heredando CComponent es necesario
class MyClass extends CComponent
{
private $property;
public function getProperty()
{
return $this->property;
}
public function setProperty($value)
{
$this->property = $value;
}
}
$object = new MyClass();
$object->property = 'value'; // mismo como $object->
setProperty('value');
echo $object->property; // mismo como $object->getProperty();
3. Usando estas características, puede hacer que las propiedades de sólo lectura o sólo escritura, manteniendo la sintaxis PHP simple como sigue:
class MyClass extends CComponent
{
private $read = 'read only property';
private $write = 'write only property';
public function getRead()
{
return $this->read;
}
public function setWrite($value)
{
$this->write = $value;
}
}
$object = new MyClass();
// Nos da un error, ya que estamos tratando de escribir una propiedad de sólo lectura
property
$object->read = 'value';
// echoes 'read only property'
echo $object->read;
// nos da un error, ya que estamos tratando de leer una propiedad de sólo escritura
echo $object->write;
// writes 'value' to private $write
$object->write = 'value';
4. Yii utiliza esta técnica extensamente porque casi todo es un componente. Por ejemplo, cuando llamamos Yii :: app () -> User-> Id para obtener el Id del usuario logeado, lo que realmente llamamos es Yii :: app () -> getUser () -> getId (). (::operador de resolución ámbito).
How it works...
Para usar getters y setters como propiedades, CComponent usamos el método mágico de PHP:
___ set, __ isset y __ unset (http://php.net/manual/en/language.oop5. magic.php).
El siguiente ejemplo muestra lo Yii 1.1 CComponente:: __get como aparece:
public function __get($name)
{
$getter='get'.$name;
if(method_exists($this,$getter))
return $this->$getter();
…
Esta magia de PHP intercepta todas las llamadas del método a falta de propiedades reales, así que cuando llamamos $myClase-> propiedad, recibe propiedad como un parámetro $name. Si un método llamado getProperty existe, entonces PHP utiliza su valor de retorno como un valor de propiedad.
Usando Eventos Yii
La mayoría de las clases Yii se heredan (extend)
...