Ver Mensaje Individual
  #11 (permalink)  
Antiguo 07/07/2014, 17:58
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Algun tuto que explique de principio a fin realizar una web con mvc php bo

Cita:
que es una pseudo-variable?
a que se refiere con invocado dentro del contexto de un objeto?
$this es una variable especial que le permite a un objeto(instancia de una clase) conocer que variables y métodos le pertenecen; El contexto del objeto seria lo que esta definido en su clase:
Código PHP:
Ver original
  1. class A {
  2.     //Contexto
  3. }

Un ejemplo sencillo para que veas la diferencia:
Código PHP:
Ver original
  1. $global = 'variable Global';
  2.  
  3. class A {
  4.     private $global;
  5.  
  6.     public function __construct()
  7.     {
  8.  
  9.         $this->global = 'Variable de objeto';
  10.     }
  11.  
  12.     public function display(){
  13.         echo $global = 'Variable local'.'<br>';
  14.         global $global;
  15.         echo $global .'<br>';
  16.         echo $this->global . '<br>';
  17.     }
  18. }
  19.  
  20. $a = new A();
  21. $a->display();
En el ejemplo si yo no uso el $this el objeto nunca sabría que variable esta definida como una propiedad de su clase (private $global)

Cita:
yo veo los códigos y para mi la variable $this es como convertir una funcion a variable $esto= funcion()
Esto seria una funcion anonima ver: http://www.php.net/manual/en/functions.anonymous.php

Cita:
el uso de NEW para instanciar clases a que se refiere con instanciar?
Para saber que es una instancia necesitas conocer que es un objeto y una clase;

  • Un objeto tiene estado, comportamiento e identidad; la estructura y comportamiento de objetos similares están definidas en su clase común; el termino instancia y objeto son intercambiables.
  • Una clase es un conjunto de objetos que comparten una estructura y comportamiento común

Partiendo de las definiciones:
Código PHP:
Ver original
  1. class Usuario {
  2.     private $username;
  3.    
  4.     private $password;
  5.    
  6.     public function __construct($username, $password)
  7.     {
  8.         $this->setUsername($username);
  9.         $this->setPassword($password);
  10.     }
  11.  
  12.     /**
  13.      * @param mixed $password
  14.      */
  15.     public function setPassword($password)
  16.     {
  17.         $this->password = $password;
  18.     }
  19.  
  20.     /**
  21.      * @return mixed
  22.      */
  23.     public function getPassword()
  24.     {
  25.         return $this->password;
  26.     }
  27.  
  28.     /**
  29.      * @param mixed $username
  30.      */
  31.     public function setUsername($username)
  32.     {
  33.         $this->username = $username;
  34.     }
  35.  
  36.     /**
  37.      * @return mixed
  38.      */
  39.     public function getUsername()
  40.     {
  41.         return $this->username;
  42.     }
  43. }
Esto es una clase; el conjunto de todos los objetos usuario.
Lo siguiente seria una instancia y por ende un objeto
Código PHP:
Ver original
  1. //Instancia u objeto
  2. $user = new User('arcanisgk122','123456789');
  3.  
  4. echo "Usuario: $user";
Instancia es la forma en la que le dices a php que asigne memoria para crear un objeto ($user) a partir de su clase (class User )
Cita:
dentro de una clase Existen:
Function(),
public function,
static function,
a que se refiere cada una y cual es su uso.
El acceso a las propideades y métodos de una clase pueden controlarse mediante tres palabras claves: public, protected y private las cuales están documentadas en el manual: http://www.php.net/manual/es/languag...visibility.php
Con esto php puede dar cumplimiento a un concepto importante; el encapsulamiento:
  • Es el proceso de empaquetar tus programas dividiendo cada una de sus clases en dos partes distintas: La interfase y la implementación

Cita:
el nuevo standart ::class uso de "::" que es y cual es su uso sustituye a algo actualmente?
Te permite resolver el nombre cualificado de una clase ejemplo:
Código PHP:
Ver original
  1. use MyVendor\SomeComponent\TargetEntityNs as Entity;
  2.  
  3. // inside a test case
  4. $entityManager->find(Entity\User::class, 5);
  5. // as opposed to
  6. $entityManager->find('MyVendor\SomeComponent\TargetEntityNs\User', 5);
Cita:
tambien observo codigo con: __construct( ) me gustaría entender cual es la diferencia entre declarar una funcion del tipo funcion(){codigo} a utilizar __construct( )
El constructor es una funcion especial y puede estar o no definida en la clase; su finalidad es inicializar la creación de un objeto. En el ejemplo que puse de User el constructor me devuelve el objeto User ya con un nombre de usuario y contraseña.
Mas detalles en el manual: http://www.php.net/manual/es/language.oop5.decon.php
Cita:
son algunas de las cosas que deberíamos de aprender antes de manejar clases y antes de comenzar a programar orientado a objetos
En realidad antes de abordar un lenguaje orientado a objetos es mas importante que entiendas los conceptos fundamentales que están detrás de la POO:
  • Objeto
  • Clase
  • Abstracción
  • Encapsulamiento
  • Generalización
  • Polimorfismo
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Última edición por hhs; 09/07/2014 a las 17:11