Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/11/2012, 12:42
Avatar de NUCKLEAR
NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: metodos privados en codeigniter

Cita:
Iniciado por vani18 Ver Mensaje
hola todo bien, como muchos saben, en codeigniter se ve bastante php5 lo que es orientado a objetos , y los controladores son clases, entonces tienen metodos, etc,

bueno la duda , que tengo , es sobre los metodos privados.
estos no se pueden acceder directamente, si lo vemos en programacion , sin codeigniter,..


por ejemplo instacio un objeto, quiero acceder a ese metodos, privado , que estara definido como

private function hola(){}

NO VOY A PODER ACCEDER...

en codeigniter, no se coloca "private" pero se coloca, "guion bajo" antes de la funcion....

por ejemplo seria

function _hola(){
afsdfsdfsdf
}

bueno sucede, que no me restringe... EN CODEIGNITER

mi clase es cart... y tengo asi, que en la


Código PHP:
          function insertar(){
        
$this->cart_model->subir();
        
// redirect('cart');
                
$this->_cart_enviado();
    }



       function  
_cart_enviado(){

           echo 
"hola";

       } 


si coloco en la url, asi...

ejemplo/cart/insertar/


funciona como tiene que ser, LA UNICA MANERA DE EJECUTAR"_cart_enviado" es por la funcion insertar,


pero si coloco, en la URL.. asi ...


ejemplo/cart/insertar/_cart_enviado

SI PUEDO VER...

-------------------------------------------------

si pongo asi.

http://localhost/ejemplo/cart/_cart_enviado

tira error...

--------------------------------------------------
la idea es que por url no pueda acceder a el private...
pero pareciera como que si se puede. si se, la ruta al menos,,
si se puede entonces,,, no? o me equivoco,,,,

Si usas un poco la lógica te darás cuenta de que la accion insertar se esta ejecutando correctamente imprime y finaliza el script.

ejemplo/cart/insertar/_cart_enviado (ejecuta la accion insertar y fin, _cart_enviado lo estaria tomando como un parámetro)

http://localhost/ejemplo/cart/_cart_enviado (Es tal como debe ser, error, ya que la accion o metodo en "teoria" segun CI la estas haciendo privada que es solo un juego de palabras por que simplemente no la hace accesible por URL)

Como te recomendaron mas arriba, CI es bastame amigable para entender los conceptos básicos, pero también te sugiero empezar a practicar con otro Framework, he oido buenas referencias sobre Laravel, yo uso YII, y estoy empezando a ver Symfony.

Saludos
__________________
Drupal Argentina