![]() |
Programacion a 3 capas PHP hola a todos!! regreso a porgramar php y claro he aprendido un poco mas aprendiendo a programar objetos ya que estuve programando en aspx y estuve ahi haciendo algunas aplicaciones sencillas a 3 capas sobre .net y me parecio muy buena la forma en que se programa ahora la ultima vez que programe php fue programacion estructurada ustedes saben todo en una sola misma pagina pero ahora mi programacion se ha pulido un poco mas y les pregunto si alguien esta programando a 3 capas en php y como lo hace ?? ya que voy a hacer mi sitio web con un modelo de negocio con la capa de presentacion, de negocios y acceso de datos.. alguien tiene por ahi ejemplos de codigo, o que nombre recibe programar de esta forma en php ?? hagamos un ejemplo sencillo para ver como funciona programar en 3 capas en php. supongamos que quiero hacer una consulta a mi base de datos de mi pagina y para esto.. tengo un mi pagina donde pongo el objeto de la capa de presentacion y asi accedo a mis datos.. que llamaremos pagina 1 en la pagina 2 la capa que sigue tengo mi objeto de negocios que accede a mi capa de acceso de datos en mi pagina 3 donde tengo mis objetos que acceden a mis conexion de base de datos y la tabla por un select.. alguien conoce de esto en php y como hacerlo para divir mi codigo por 3 capas ?? gracias:-D |
Bue.... es un tema largo y árido... y espero que no polémico (hay un libro por cada maestro :-) ) Ya he tratado el tema cuando en algún momento pregunté que pasaba con los "namespace" que estaban en las betas y hasta en las presentaciones de lo que iba a venir con PHP5, pero que finalmente no aparecieron. Todo se resume que al carecer de una sintaxis como "namespace" (idem a .Net) o "package" (idem a Java) no se puede traducir directamente el correspondiente elemento UML (el "paquete") de forma directa en PHP5. Visto de otra forma, ahora, para implementar algo del tipo "n capas", todo se convierte en un problema de manejo de subdirectorios y "llamadas relativas", buscando evitar llamadas del tipo "../" (que son dependientes de donde se están invocando y pueden devolver cualquier cosa). Lo que internamente sucede, por ejemplo en Java, cuando creas un paquete se crea internamente una carpeta/subdirectorio. Por lo pronto, esto es igual si lo quieres hacer en PHP.
El punto es, luego, como resolver las invocaciones que puedes hacer dentro de cada "paquete" y no tener problemas de hacerlo desde cualquier ubicación. Parches posibles: crear un archivo de configuración en la raíz del proyecto, y por cada paquete, un archivo local que apunte al de la raíz, y cada clase del paquete usa su archivo local. Puedes intentar definir constantes que apuntes a cada capa, para luego invocarlas de cualquier lado: Código PHP: Código PHP: Código PHP: Código PHP: Le evolución del modelo "web modular" sería pasar a un patrón MVC, que a los efectos sería casi lo mismo que separarlo en 3 capas con responsabilidades distintas. Resumiendo: no es tan trivial implementar algo de esto (no lo hubieran sacado entonces de la beta de PHP5), pero bien podrían incluirlo en PHP6 (pero no va a suceder), lo cual en mi humilde opinión es grave y problemático (algo que el lenguaje debería resolver y no el desarrollador). Es un resumen muy rápido, pero tengo que escribir un artículo sobre esto ;-) PD: ahora... ¡lluevan las piedras! :-D |
Hablando desde la completa ignorancia tengo algunas dudas sobre lo que dices enriqueplace, "namespace" se lo llama a lo siguiente?: Código PHP: Por lo poco que aprendi de Python, esto se aplica... pero sigo sin entender del todo el tema. Con lo poco que entiendo sobre este tema la separación de capas es más logica que fisica, pero haces uso de un ejemplo que muestra una separación "fisica". También veo que en lo que escribes das a entender (o entiendo yo) que el modelo MVC no es programar en capas, entonces, que lo es? Ahora pensando un poco más, puede ser que estas hablando sobre un problema que te encontras cuando programas en capas y hablas sobre su posible solución a falta de "namespace"?. Saludos. |
namespace es un espacio donde agrupas clases que se relacionan por decir controles de un formulario van en el namespace de forms. Los desarrolladores de PHP tienden a agrupar clases en directorios comunes, (ve por decir el ZendFramework). Java y .NET por decir usan esos namespaces pero el compilador puede actuar de forma que si tu pones: Código: text1 = new forms.controlTextbox();PHP por su lado no hace estos analizis dinamicos y requiere que tu incluyas la clase antes: Código PHP: MVC no esta atado a una capa fisica o logica, es mas bien un paradigma de programacion en el que separas la capa de trabajo de la vista por lo que es mas sencillo expandir y controlar tu programa al tenerlo en "modulos" que hacen cierto trabajo y en vistas (ya sea HTML, PDF, Texto, etc.) Por decir un mismo controlador con un modelo puede sacar el contenido en varios formatos, y en la programacion "estructurada" requeriria reprogramar cada script, aqui lo unico que haces es actualizar el controlador para que use una vista diferente. Espero con esto te quede un poco mas claro, :arriba: |
(¿Bueno, Casuis, GatorV, etc, donde andan? ;-)) Cita:
Salvado las diferencias, tanto el "package" de Java como el "namespace" de .Net harían cosas similares, en el concepto, al crear "unidades contenedoras" de otras unidades contenedoras o elementos (un "paquete" puede contener clases y otros "paquetes", etc). El tema es, supuestamente (tengo que repasarlo), el concepto de "namespace" de .Net sería conceptualmente más amplio que el "package" de Java. Pero concretamente con PHP5, fue el nombre que eligieron, y como no lo terminaron de implementar y no tengo documentación al alcance, no sé si se parece más a Java o a .Net. Pero, básicamente, con ambas puedes representar el clásico "paquete" de un diagrama UML. Algo que, lamentablemente, no existe hasta la fecha para PHP, por lo cual no nos podemos llamar "como lenguaje" algo 100% Orientado a Objetos. Si existen, por lo que tengo entendido (y algún colega con más conocimientos en el tema puede corregirme) frameworks que implementan esta funcionalidad. Serían sinónimos todos los términos empleados: "paquete", "namespace", "package" o "capa" (esto último se representa con un "paquete"). Cita:
Nota: UML no está atado a lenguajes específicos, pero los lenguajes deben ser OO para poder cumplir cabalmente con los diagramas. Si te muestran un diseño hecho en 3 capas, te mostrarán un dibujo de tres paquetes con flechas de dependencias entre ellos, por lo cual deberás implementar de alguna forma esta "separación conceptual" (y la forma más simple es hacerla "a lo Java") . Cita:
Pero, gracias a que Java lo hace así, en mi humilde búsqueda del conocimiento en el mundo de PHP, trato de aprender de los ejemplos y las buenas experiencias de mis "vecinos", por consiguiente, imito el mismo comportamiento que Java. Sobre el MVC: digo que sería "casi lo mismo", si fuera lo mismo, un "sistema en 3 capas" podría ser sinónimo del patrón MVC y viceversa. Pero yo puedo seguir desarrollando y mejorando el ejemplo didáctico que expliqué, pero así como está no es el patrón de diseño MVC, aunque ambos hagan separación de responsabilidades en "capas" distintas. Mirá lo que dice wikipedia del MVC: "Es común pensar que una aplicación tiene tres capas principales: presentación (IU), dominio, y acceso a datos. En MVC, la capa de presentación está partida en controlador y vista. La principal separación es entre presentación y dominio; la separación entre V/C es menos clara." ¿Se entiende lo que quise decir? Cita:
Intenta implementar el mismo comportamiento y verás lo que te digo. :neurotico |
Y solo para complementar, es posible hacerlo en PHP, depende de tu forma de programacion puedes implementar los programas/scripts en sus ambientes contenidos y hacer algo como: Código PHP: Es muy factible hacer alog asi en PHP, te lo digo porque mi Framework lo hace, y encuentro que es mas facil separar la logica de las clases que necesito por codigo. Espero que no sea mucha información para digerir jaja, saludos!. |
Bueno, aprovechemos la oportunidad, a mi me interesa saber como se puede implementar una invocación de ese estilo ;-) PD: vos sabés que yo soy una esponja... no Bob, pero soy una ;-) |
Bueno para explicar como implementar algo asi es como crear un microframework, con lo basico: - Archivo de Configuracion - Archivo de Booteo (o Archivo de inicializacion) - Directorios de Busqueda Predefinidos - Directorios de Presentacion Predefinidos - Script de Router para saber que clase cargar dependiendo del URL (patron MVC) Lo que haces es que tu archivo de Booteo, cada que recibe un request, carga la configuracion, activa el router/dispatcher, lee el URL y activa el controlador y accion correspondientes. Ya con esto tu controlador ya tiene a su disposicion el archivo de configuracion disponible, asi como en que directorio esta y es posible "importar" ahora si los paquetes que ese controlador va a trabajar. Un layout posible de directorios seria: Código: /www/aplicacion/Código PHP: |
:neurotico :neurotico :neurotico creo que se desviaron del tema y realmente no me dieron un ejemplo de lo que estoy pidiendo :patada: algo del cual yo me pueda guiar.,. disculpen por ser limonesnero y con garrote :borracho: |
Pero perdón, fuera de lo desubicado de GatorV (obvio, hasta a mi me supera su código ;-)), yo ya te di una explicación racional del problema y un indicio por donde se puede trabajar desde PHP. Más directo en mis argumentaciones no pude ser. |
Muchas gracias GatorV y enriqueplace por sus respuestas, ahora el paronama me queda más claro. Yo tenía/tengo una idea sobre la programación en capas pero al parecer mucha información junta en un solo post fue suficiente para hacer que dude sobre todo :neurotico . Tengo ganas hace tiempo de empezar a aplicar esto, pero no tengo tiempo y lamentablemente en el trabajo no me dejan aplicar estas cosas (si si, como lo leen, no quieren que aplique estos conceptos y directamente que evite lo mas posible los objetos, la razón? no sé, a mi también me gustaría saberlo). Cita:
Espero no hacer una burrada, pero que les parece ésta modificación al código que ha puesto el compañero GatorV? Código PHP: Código PHP: Ahora cambiando un poco el tema, sabén de alguna aplicación open source que este programada en capas? Es para estudiar su código ya que no tengo tiempo de practicar y golpearme la cabeza :risa: Saludos. |
Que buen tema !(mis respetos Gatorv y enriqueplace)..........yo desconocia el paradigma 3 capas, aunque en algun momento lo escuche en clase, pero no profundizaron.. |
gracias enriqueplace y gatorv por tomarse el tiempo para explicar (tamb esperaba los comentarios de Casuis) si que se aprende de uds 3. me queda mas claro a ti tambien muchas cosas =) |
Que tal Dario, la idea de hacerlo de la forma que lo habia propuesto es porque en mi framework me encontre con el problema cuando guardas objetos en las sesiones, tienes que incluir la definicion de la clase antes de iniciar la sesion. Mi Framework primero lee los imports de tu clase, incluye esas clases, luego crea la sesion y despues crea la instancia de la clase. Asi te evitas problemas al usar sesiones y objetos, aparte de que se parece mucho mas a Java: Código PHP: |
Bueno, más o menos, pero he quedado "excitado" :borracho: Todavía no logro ver completamente como funciona (tal vez por la conjuntivitis que me aqueja en este momento y que estoy leyendo mientras mis ojos sangran :'( ) ... pero me parece que me voy a tener que sentar a estudiar tu framework :si: |
Cita:
Lo segundo, si tienen "miedo" es por ignorancia... le temen a lo desconocido. Cita:
Cita:
Sobre el ejemplo, como estoy dictando un curso sobre el tema, estoy viendo si dejo disponible el material que he armado y los ejemplos. A mis alumnos les he entregado un "proyecto base" -muy elemental- para que pueden a partir de él llenar "los espacios en blanco" y concluir la aplicación (deberán obviamente seguir la estructura de trabajo o todo se vendrá abajo). Lo primero que se nota en un sistema en capas es que si el desarrollo es pequeño tienes una sobrecarga importante al tener que estar pasando entre "intermediarios" información de capa en capa, para luego volver a la capa de origen. Pero cuando te acostumbras, te das cuenta que es la única forma de trabajo, y que puedes organizar luego equipos de desarrollo que trabajen de forma independiente sobre cada capa sin ningún problema. ¿O tu porqué piensas que dividieron el modelo OSI y el TCP/IP en tantas capas? Cada capa se comunica con la siguiente, pasando los datos que recibe, y solo se procesan cuando llegan a la capa responsable de esa tarea. Es el mismo concepto. |
GatorV...esta linea que es lo que hace? $this->getStorage()->get( 'usuarioActual' )... |
Devuelve un objeto del registro persistente (para poder pasar objetos entre pagina y pagina de una manera mas sencilla, su motor principal son las sesiones, pero se puede cambiar el "engine" para usar un archivo de texto, o una base de datos) @Enriqueplace Como! jaja yo pensaba que ya te habias super estudiado mi framework :-), realmente a mi me gusta la forma de aislar todo y hacer clases y sus templates (o vistas) correspondientes. |
Lo miré por arriba, no tengo excusa ni perdón, pero ni bien me libere de compromisos, me meto de lleno a desarmarlo... por lo cual nos vas a tener que ayudar a armar otra vez ;-) PD: ya está pronto el blog del mismo? (cuando seas famoso, acordate de los amigos ;-)) |
No he tenido tiempo de armarlo, jaja estoy armando un wiki con la documentación, y después de esto ya hare el blog con ejemplos de uso. Por cierto es muy benefico encontrar hosts con PHP5.1 para que puedas no nadamas poner documentacion sino ejemplos reales. |
Cita:
¡Que bueno que sigas avanzando en la documentación de tu framework!, como muchos aquí, me muero de ganas por implementarlo en mis proyectos, tiene "GRANDES" cosas y su facilidad de uso lo hace muy versátil. :aplauso: ¡Mis más sinceras felicitaciones!. Un saludo y suerte! :adios: |
Aclarenme el mvc hola, ley su platica sobre el MVC, pero no me quedo muy claro. lo que pasa es que esto es nuevo para mi y se me ase un poco dificil de captar. Si pudieran explicar de una manera mas sencilla el MVC se los agradeceria. Por mi parte les digo que no entiendo muy bien esa separacion en capas, y como comunico una con la otra. Supongamos que voy a desarrollar un sistema de control de estudios de una universidad x. para el cual creare clases tales como: estudiante, profesor, carrera, materia.... son estas mis clases del negocio? y en la capa de datos que debo tener? lo unico que tengo claro es que las vistas son los formularios html? si para cada clase yo creo un archivo disferente como comunico estos archivos. ej:profesor->materia, o estudiante->carrera |
Código: hola, ley su platica sobre el MVC, pero no me quedo muy claro. lo que pasa es que esto es nuevo para mi y se me ase un poco dificil de captar.mira el chiste de separar el codigo a 3 capas es un modelo de negocios basado en crear una capa de presentacion o de interfaces, esta sera el diseño html, el mostrar los datos por un objeto, por un xml etc, la que le sigue es la capa de negocios que es la que se encarga de darle toda la logica y los procesos aritmeticos, operaciones de validacion, que si tienes que enviar un email, alguna suma, resta, etc y la ultima capa es la de acceso de datos que es la que manipula la conexion de la o las bases de datos a ocupar, las consultas sql etc.. supongamos haces un programa para sumar 2 numeros y guardar el resultado en base de datos... si el modelo es a 3 capas te quedaria lo siguiente.. en tu archivo_de_presentacion.php tendrias que incluir el archivo donde le envias los parametros a la capa de negocios y en la capa de negocios hacer la suma porque la capa de presentacion es tu capa tonta y solo te sirve para mostrar o enviarle datos a la capa de negocios y por ultimo de tu capa de negocios a tu capa de acceso de datos para hacer el sql que te guarda ese resultado quedaria asi de archivo_de_presentacion.php ----->> archivo_de_negocios.php-----> arhivo_de_acceso_de_datos.php. claro enviadole parametos a tus metodos y funciones de la capa que quesigue ahora segun este modelo de arquitectura nunca debes de comunicar tu capa de presentacion con la de acceso de datos porque asi el paradigma estaria corrumpiendose aunque hay formas de hacerlo pero si aun en .net no he investigado menos en php y la razon de separar por capas es para que tu codigo se vuelva independiente, manejable y la gente que programe solo se enfoque a la capa que tenga que programar y asi delagamos responsabilidades porque cada quien a lo suyo, ademas porque es mas pro y habla de una buena arquitecto de sistemas.. bueno eso es lo que yo se, en .net pega de maravilla al igual que en JAVA pero por motivos de economicos estoy programando en php pero yo se que en un futuro php dara la batalla final a estos lenguajes y asi todos aprendamos mejor a diseñar apliacaciones :si: |
Buenass el tema de los package o de los imports la verdad es que cuando se trata de php5 no le doy importancia y/o no es realmente necesario. <-- Y cuidado se lo que me digo (los programadores profesionales saben a lo que me refiero ;) ) Aunque a veces puede llegar a resultar útil cuando tienes un servidor que compartes aplicaciones o codigo aunque sigo sin verle utilidad.... aún así yo tenía un código que trabajaba con package si os sirve de algo os pongo un ejemplo de proyecto: en nuestro directorio raiz crearemos el projecto(lo llamaremos package para ser originales ^^): /opt/lampp/htdocs/package <-- linux (xampp) c:\xampp\htdocs\package <-- windows (xampp) estructura del proyecto: Código: packageBien esta sera nuestra aplicación (com/programs/saludo): Continente.php Código PHP: Código PHP: Código PHP: Código PHP: Código PHP: Hola Mundo!! Hola desde Europa Hola desde Catalunya También podriamos haber cargado las clases de una en una declarandolas explicitamente: Código PHP: |
Cita:
Cita:
Si te explayas un poco tal vez pueda entenderte :-) |
Bueno la verdad es que para explicarlo sería un poco largo para hacer un post y hoy no tengo muchas ganas la verdad.... Ejemplo práctico: Tienes un framework donde todas las acciones van redirigidas al index.php y una acción : imaginate http://miaplicacion/carrito/add/categoria/2/item/3 al llamar a esta acción se redirigirá hacia index.php Aquí es donde el patrón Router destripa la acción Controller: carrito -> CarritoController Action : add -> AddAction params : categoria, item -> categoria = 2 item = 3 Router se comunica con Dispatcher que ejecuta el controlador adecuado con la acción adecuada y los parámetros. Bien mmmmm nos da que pensar.... Uala todas las acciones que hagamos pasaran por Index.php y..... claro siempre se ejecutara index.php entonces... Exacto podemos poner una funcion __autoload ( para más referencias mirar manual php5 ) y nos cargará todos los ficheros que necesitemos. La cuestión no es que es inútil utilizar imports.... sino que simplemente no tenemos que declarar ningun fichero se cargan automaticamente.... Fin de la cuestión. |
Cita:
Cita:
Si yo hiciera el siguiente paralelismo: si estuviera en Java y usara el patrón MVC, ¿se justificaría entonces no usar el concepto de paquetes (por consiguiente, no usar imports)? ¿Verdad que no, que una cosa no anula a la otra? El tema va más allá de que "todo entre por el index.php y que las clases se invoquen automáticamente". Si tu desarrollas un "sistema" como si fuera una "arquitectura", cuales son los componentes que se reutilizan entre sistemas?... la unidad mínima es un "paquete" y este se invoca, usando "imports" ;-) No sé si entendió lo que quiero transmitir. |
Re: Programacion a 3 capas PHP Cita:
PHP fue pensado desde una perspectiva de simplicidad inmediata pero para nadie es una mentira que al momento de desarrollar grandes proyectos las tareas de mantenimiento de estas aplicaciones se vuelven mas tediosas. Lo que buscamos mediante estas herramientas es tratar de favorecer la organización, evitar el codigo duplicado y en general facilitar el mantenimiento y el desarrollo de estas. Espero que mi opinión sea de ayuda Saludos |
Re: Programacion a 3 capas PHP Cita:
Fuera de broma, sí, es la idea. Todo el mundo repite "PHP es para hacer cosas pequeñas, rápidas, nada complejo"... porque la verdadera razón es que nosotros somos los pequeños de visión y de conocimientos. |
Re: Programacion a 3 capas PHP Cita:
|
Re: Programacion a 3 capas PHP Si quieres una critica, yo creo deberias de sentarte a delinear bien tu framework, para empezar trata de hacer todo, y cuando digo todo es TODO de forma orientado a objetos. La idea de un framework es que puedas re-utilizar los componentes sin necesidad de que todo este en cierto lugar, o sea cada componente debe de poder iniciarse y ejecutarse en el momento adecuado y sin problema. Solo te puedo decir igual que como dice Enrique, saca todos tus defines, global, etc. de tu framework, reemplazalos por storage engines, y class constants, y creeme que la comunidad te lo va a agradecer :arriba: |
Re: Programacion a 3 capas PHP Gracias GatorV, hoy he pensado mucho en eso y desde ya me puse a trabajar en esto, tienen razón, no lo habia hecho para mantener la compatibilidad con la gente que ya esta trabajando el framework pero igual tienes razón al final me lo agradeceran. :arriba: |
Re: Programacion a 3 capas PHP Cita:
Cita:
Cita:
¿A donde vas con lo de "storage engines"? Sé más claro que podemos tener menores de edad fuera del horario de protección, y yo estoy demasiado viejo para entender muchas cosas a la vez :pensando: |
Re: Programacion a 3 capas PHP Regalar? nooo... yo solo sé rezongar y aumentar mi ego ;-) Tengo la respuesta a tu mail guardada, principalmente, porque se me agotaron la variedad de palabras que usé para criticar el framework ;-) Fuera de la broma, siempre creo que animarse a intentar y tirarse al agua, aunque te equivoques, ya es un gran logro. Gente que critica por criticar sobran. También es un segundo logro ser abierto a las críticas y ser a su vez autocrítico con el trabajo de uno. Es muy común ver como la gente se molesta recibir la crítica de los demás, y en el peor de los casos, cuando los demás tienen razón en lo que dicen. Siempre repito que el principal problema de desarrollar sistemas es el "orden", nada más. Desarrollar en "3 capas" es un tema de orden, usar diagramas UML antes de implementar, es un tema de orden, implementar un patrón fachada, es un tema de orden, no detectar donde surge el error en el código, es un tema de orden, el concepto de "paquetes", es un tema de orden. Los sistemas son "más grandes" que los scripts sueltos, si no somos ordenados, nunca podremos construir uno. Si no eres ordenado y metódico, imposible. Hay una gran diferencia entre ser "programador" y ser "desarrollador". Todo es un tema de orden, más que de dominio del lenguaje. |
Re: Programacion a 3 capas PHP Ok, lo de las variables globales lo acepto y me declaro culpable... Cita:
El framework propone en muchos sentidos una forma de trabajo y la idea es seguir esta forma de trabajo (por alla en ruby on rails lo llamaban convención sobre configuración) esto se hace para que este puedan automatizar mas cosas y nos preocupemos por otras más importantes. ¿Si no es esto, me pueden explicar? Gracias Pdt: creo que lo de storage Engines es Motores de base de datos, jeje |
Re: Programacion a 3 capas PHP Storage Engines es una forma de poder utilizar un registro para poder mantener variables en un solo lugar, con esto te quitas el uso de globales, y es mas limpio ya que sabes que estan en un solo lugar contenidas. A lo que me refiero con usar por partes es poder abstraer todo, por decir si no quiero usar mvc, ni nada de eso, pero quiero usar el objeto form, lo puedo instanciar directamente: Código PHP: |
Re: Programacion a 3 capas PHP Cita:
|
Re: Programacion a 3 capas PHP Algo simple: Código PHP: Código PHP: Ojo este es un ejemplo muy muy basico, es solo para que te des una idea. |
Re: Programacion a 3 capas PHP yo ocupo el patron registry, en el fondo es lo mismo que plantea GatorV Registry |
Re: Programacion a 3 capas PHP No pues gracias por el ejemplo Gatorv.. si lo entendi.. Esta linea: Código PHP: |
Re: Programacion a 3 capas PHP No necesariamente, cuando tu funcion regresa un objeto en PHP5 puedes acceder al metodo sin tener que pasarlo a una variable. Algo asi: Código PHP: Código PHP: |
Re: Programacion a 3 capas PHP Hola yo soy un estudiante de Informática y pienso que no estoy a la altura de ustedes que llevan años programando. Bueno el problema es que yo nunca había utilizado este tipo de programación en 3 capas pero me hace falta aprender para el trabajo de diplomado que es en junio. La verdad es que no se como dividir las cosas pues me confundo un poco con Web modular (esta si se como funciona). El trabajo consiste en un sistema de gestión para reservación de maquinas en un horario determinado en los laboratorios de la escuela y no se como empezar a dividir las cosas. Le pido de favor que me respondan y me orienten. Gracias. |
Re: Programacion a 3 capas PHP (iniciar) ¿Y tú que has leido sobre el tema? ¿Nada de lo que has leido, principalmente conceptos, te ha quedado claro? Por lo menos en Google debes haber encontrado algo. Si tu no te ayudas, dificilmente lo haga otro por ti... más cuando es un trabajo de estudios y es tu entera responsabilidad aprender... es parte de nuestra propia carrera. |
Re: Programacion a 3 capas PHP buenas, hace tiempo que vengo leyendo sobre programacion multi-thier y la verdad que se pueden hacer cosas muy buenas, haciendo que la aplicacion sea facil de administrar, depurar etc, ademas de la escalabilidad... Les dejo un app en php para manejar templates, {Smarty | smarty.php.net/ } muy buena y muy flexible... Saludos.. |
Re: Programacion a 3 capas PHP Bueno a decir verdad Smarty ha quedado en desuso dentro del desarrollo empresarial en substitución de el propio parser de php más efectivo y rápido, ayudado con helpers (funciones generadoras de código (x)html, javascript). |
Re: Programacion a 3 capas PHP Dicen que las generalizaciones son muy injustas... discrepo que lo de "ha quedado en desuso", pero bueno, tal vez puedas comentar un poco más de tu experiencia personal en empresas. ¿Cuando hablas del "propio parser de php", a que te refieres? PD: no te olvides que no todos son "expertos" y muchos de estos comentarios solo confunden. No todo el mundo quiere lanzar un cohete a la Luna. |
Re: Programacion a 3 capas PHP Yo creo Casius se refiere a usar PHP directo dentro de los templates, pero separando el codigo principal de lo que es la vista (patrón MVC), algo asi: Código PHP: |
Re: Programacion a 3 capas PHP Hola a todos, como siempre viendo los capos que son ustedes, yo siempre e trabajado en php estrucuturada, pero estoy tratando de migrar a php oo, no me es muy sencillo aun por que no conosco a fondo ningun otro lenguaje orientado a objeros, y bueno me gustaria que me recomienden un Framework, para poder estudiar los usos de php oo y funciones, e aprendido mucho gracias a ustedes, aunque creo que mi php oo aun parece una sopa me falta aprender aun a dividir en capas, aun me falta entender conceptos en la sintaxis si me va mejor, bueno espero su ayuda y gracias por ayudar con sus comentarios a la comunidad de programadores, php es un lenguaje profesional y es bueno sacarle todo el jugo, y si le sumas js aumenta sus posibilidades, bueno no hablo mas :-) cuidense un saludo |
Re: Programacion a 3 capas PHP Si buscas en el foro verás muchas discusiones sobre el tema. A esta altura, muchas sugerencias son opiniones personales, más cerca a "razones de piel" ;-) Mi estrategia personal, dada la variedad de productos, es apegarme al que sería "como la versión oficial" del framework para PHP, el Zend Framework. Zend es la empresa que desarrolla PHP y toda la "arquitectura" de alrededor. Aunque pueden haber diferencias técnicas a favor y en contra para cada framework, también hay que ver como ha sido diseñado y qué es lo más conveniente en el futuro, según vaya evolucionando. Lo digo porque tal vez Zend Framework tiene menos funcionalidades que muchos otros, pero a futuro puede que sea una parte necesaria de la futura "plataforma php" (como si de J2EE de Java estuviéramos hablando). |
Re: Programacion a 3 capas PHP gracias por tu ayuda, php es un poderoso lenguaje, quiero estudiar mucho, para poder desde aqui tambien apoyar a que se reconosca a php como un lenguaje profesional Depende de nosotros valorar nuestro trabajo como dijo Enriqueplace, yo promuevo en php5 , si lo tengo instalado en mi servidor, y al trabajar con js no ahy igual, bueno gracias por su ayuda Enriqueplace, GatorV, y todos los que siempre ponen sus comentarios y ayudas a los que aun estamos aprendiendo saludos cordiales |
| La zona horaria es GMT -6. Ahora son las 08:24. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.