![]() |
Duda POO en PHP con cierta herencia Hola ;) Me encontré con esto que no entendía en los artículos del blog de GatorV, moderador de este foro... Pero no quiero darle la paliza jaja ;) Así que pregunto por aquí. Entre todos seguro será mejor. La cuestión es que leyendo los articulos de mvc concretamente cuando crea por ejemplo la clase "view.php" hace una cosa en la mismisima primera linea... que no comprendo su funcionalidad, su fin... Código PHP: Será algun comportamiento o caracteristica de POO que desconozco supongo. Les agradecería si ustedes saben de que se trata esto me cuenten vaya... Y aviso: Mi intención no es intentar llevar a cabo el articulo del blog, el articulo creo que tiene un fin ilustrativo... pero si ke me gustaría saber más acerca de esta forma de trabajar con las clases... Muchas gracias ! |
Re: Duda POO en PHP con cierta herencia La idea de heredar sin métodos es simplemente para hacer mas fácil el cachar errores, por decir: Código PHP: Saludos. |
Re: Duda POO en PHP con cierta herencia Hola GatorV, gracias por tu respuesta. Entiendo entonces que al extender la clase Exceptions adquiere la funcionalidad. De acuerdo. De forma que sería como adquirir una clase especifica de excepciones para vistas. He comprendido un poco mejor estos ejemplos... http://es.php.net/exceptions Pero me gustaría cerciorarme de algo, al declarar esa clase con herencia... aunque no tenga miembros. Por una parte adquiriría si la funcionalidad de Exception... pero en este caso, nada más. No añades ninguna funcionalidad personalizada y si quisieramos añadirla debería ser dentro de esa declaración de la clase, no ? es decir... A lo que voy. NO habría en este caso una clase creada (o no permitiría crearla) en otro lugar con miembros y a la vez en el archivo "view.php" esta vez sin los miembros. No ? Por que lo que estaríamos haciendo sería intentar crear una clase ya creada aunque no tenga ni un solo miembro... ¿ Me equivoco ? Gracias una vez más ;) |
Re: Duda POO en PHP con cierta herencia ¿Podrías especificar mas cual es tu duda?, Estoy tratando de entender lo que dices pero no logro entender cual es tu duda. Saludos. |
Re: Duda POO en PHP con cierta herencia Si, disculpa si resulté confuso. En el ejemplo hay un archivo view.php con dos clases declaradas... Código PHP: Pero si no me equivoco... PHP lo que te diría es que la clase ya estaba definida una vez y no te permitiría redefinirla de nuevo, no ? 2. Por otra parte... No acabo de entender por que la clase View tiene visibilidad sobre la clase ViewException... (Puedes hacer un throw new ViewException dentro de View). No he encontrado documentación especifica acerca del "throw new" Gracias por la paciencia !! Se que soy algo duro jeje |
Re: Duda POO en PHP con cierta herencia 1.- La clase ViewException esta definida ahi para ahorrar codigo, pero puede estar definida en otro fichero sin ningun problema aunque no tenga miembros ni nada (de hecho es mas recomendable que este en su fichero propio). 2.- La clase View ve a ViewException porque esta definida aunque estuviera asi: Código PHP: Para usar el comando throw tu debes de tener una clase que herede de Exception, no puedes lanzar clases que no hereden a Exception (esto es por diseño). El comando throw lanza una clase por decir lanzar una excepcion nueva: Código PHP: Código PHP: Saludos. |
Re: Duda POO en PHP con cierta herencia Amazing !!! De verdad, ahora si que me queda mucho más claro. Muchas gracias GatorV |
Re: Duda POO en PHP con cierta herencia Uniendome al tema, tengo una pregunta. Cuantas excepciones se suelen hacer normalmente? Se que me diras que depende dle programador, de la pagina, del programa..etc... Pero me refiero a que por ejemplo, a la hora de trabajar con consultas SQL, puedes crear una excepcion para decir que no quedan filas en la consulta que has hecho, puedes crear otra para decir que lo que estas insertando no se puede insertar porque le falta el "@"....nose cosas asi.........y si declararamos para cada cosa de estas una clase nueva que herede de EXCEPTION....ps al final podriamos tener 100 clases solo de excepciones......... cual suele ser la manera mas logica de operar con ellas y de crearlas...etc? |
Re: Duda POO en PHP con cierta herencia Por eso las excepciones si te fijas el segundo parametro es el error code: Código PHP: Código PHP: Código PHP: Código PHP: |
Re: Duda POO en PHP con cierta herencia mm vale tonces lo que tu haces es unir todas las excepciones que tienen que ver con SQL en una misma clase....y diferenciar las distintas "subexcepciones SQL" mediante atributos...k te van a chivar cual a sido el error, no??? lo que no entiendo muy bien es Código PHP: y luego tampoco entiendo la parte en la k aces el throw el segundo parametro ese throw new SQLException( "Hay un error en el Query $query", SQLException::ERROR_QUERY_INCOMPLETE ); vamos, creo que entiendo lo que intentas lograr, que supongo que es lo que e dicho en el primer parrafo..pero no pillo muy bien la implementacion |
Re: Duda POO en PHP con cierta herencia const sirve para crear una constante que se evalúa a algo, es como un define, es para darle a un valor un nombre y sea mas fácil de leer el código. El segundo parámetro al crear la excepción es el código de error. Saludos. |
osea ese segundo parametro es como si le pasaras como codigo de error un 2, no? (pk como as puesto const ERROR_QUERY_INCOMPLETE= 2; ) Pero lo que no pillo de este segundo parametro throw new SQLException( "Hay un error en el Query $query", SQLException::ERROR_QUERY_INCOMPLETE ); es la sintaxis.....lo de los :: y eso un saludo... mmm habiendolo pensado..mmm....lo de :: qué es para darle el valor de esa constante que tiene SQLException como atributo? osea cuando haces variable1 = nombreDeClase :: nombreDeConstante variable1 tomaria el valor de esa constante, no? para eso es lo de ::? por tanto un atributo const es publico? cualquiera desde fuera tiene acceso a el? y cualquier instancia de esa clase va a tener esas constantes inmodificables, no? un saludo? |
Re: Duda POO en PHP con cierta herencia Asi es, cuando tu usas :: estas accesando a un atributo de la clase, tu puedes usarlo para llamar a funciones estaticas de una clase, o a constantes, o a variables estaticas: Código PHP: |
Re: Duda POO en PHP con cierta herencia gracias perfecto |
Re: Duda POO en PHP con cierta herencia aprovechando el tema............no entiendo muy bien cuando usar metodos estaticos......pk variables estaticas se usan cuando el valor de esa variable es el mismo para todos los objetos instanciados de esa clase......pero los metodos estaticos¿ un saludo y gracias |
Re: Duda POO en PHP con cierta herencia Te recomiendo busques en el foro, ya se ha tratado mucho el tema, pero principalmente es para poder tener funciones que solo se ocupen de forma rápida y no tener que iniciar un objeto. Saludos. |
| La zona horaria es GMT -6. Ahora son las 01:26. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.