Ver Mensaje Individual
  #67 (permalink)  
Antiguo 10/09/2007, 22:57
Avatar de anthemfor182
anthemfor182
 
Fecha de Ingreso: enero-2006
Ubicación: Colombia
Mensajes: 73
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: CakePHP para todos

Hola

Mi humilde opinión es la siguiente:

Cake a mi parecer es una buena alternativa, es maduro y por eso habrá mucha funcionalidad pensada para todo tipo de casos específicos.

Cake PHP4 es bueno desde el punto de vista que puedes usar un framework con MVC, ActiveRecord, Sessions, Templates, etc en esta versión de PHP. Aquí te tienes que olvidar que tu aplicación probablemente no se pueda implementar todas las características de un sistema completamente orientado a objetos, pero aquí la necesidad es quien gana.

Ahora pensemos que PHP4 ó PHP5, Cake, Symfony, Zend, Kumbia o cualquiera en ultimas nos sirven para crear "productos" y nuestros clientes o usuarios no evalúan si utilizaste programación orientada a objetos, patrones, MVC, ?, ellos evalúan si tu aplicación funciona perfecto y cumple sus expectativas, si tardaste mucho tiempo o poco, si tu trabajo es de calidad ó si demoras muchas horas ó días agregando alguna funcionalidad nueva.

Pero casi nunca se observa un framework desde ese punto de vista. Casi siempre analizamos desde el punto de vista: si nos hace feliz a nosotros, el resto va por parte nuestra. ¿Que tan real es esto?

El ejemplo de PHP4 y Cake ó Codeigniter es un ejemplo de cuando debemos dejar atrás lo que nos hace felices por poder dar soluciones.

Personalmente pienso: Si es una prioridad crear un sistema completamente orientado a objetos, un diseño previo en UML (no requerido, pero posiblemente necesario), leerte "Desing Patterns for PHP", poder colocar el sello "Powered by Zend Framework" en tu aplicación, conectarte a la base de datos con una instancia de Zend_Db_Adapter_Pdo_Mysql, sentir que tienes toda la flexibilidad y tiempo de mundo para hacer esto:

Código PHP:
<?php
// Create validator chain with non-uniform breakChainOnFailure attributes
$chain = new Zend_Validate();
$chain->addValidator(new Zend_Validate_Digits(), true);
$chain->addValidator(new Zend_Validate_Between(1,12), false);
$chain->addValidator(new Zend_Validate_GreaterThan(0), true);

// Declare validator rule using the chain defined above
$validators = array(
    
'month' => $chain
);
$input = new Zend_Filter_Input(null$validators);
?>
en vez de:

Código PHP:
if(!ctype_digit($variable)||($variable<1||$variable>12)||($variable<0)){
   throw new 
Exception("Mes invalido");

Si tus amigos de java te dicen que nunca vas a salir adelante y quieres demostrarles que si entonces: Zend es el framework para ti!

De otro lado te haces feliz, pero tus clientes y usuarios esperaran un largo tiempo hasta que tu avance en Zend te permita tener tu propio framework orientado a tus necesidades y las de tu negocio.

De otro lado:
Tu prioridad es ser productivo por encima de todo, tener felices a tus clientes dar soluciones practicas, no tienes tiempo para aprender y dedicar horas y horas a integrar componentes, entonces Cake, Symfony ó Kumbia son para ti.
  • No son 100% orientados a objetos: http://manual.cakephp.org/chapter/constants
  • También puedes sentir que sabes muchísimo ya que escribes código con sintaxis extraña y tus amigos pueden pensar que la única forma de hacerlo es así, como en symfony:

Código PHP:
$c = new Criteria();
$c->add(CommentPeer::AUTHOR'Steve');
$c->addJoin(CommentPeer::ARTICLE_IDArticlePeer::ID);
$c->add(ArticlePeer::CONTENT'%enjoy%'Criteria::LIKE);
$c->addAscendingOrderByColumn(CommentPeer::CREATED_AT);
$comentarios CommentPeer::doSelect($c); 
Creo que los puntos a evaluar serian los siguientes:

- Tienes tiempo para aprender?
- Puedes dormir bien si tu sistema no es completamente orientado a objetos?
- Eres mas o menos profesional si usas PHP4 PHP5?
- Será que tus amigos que usan Java van a programar por ti?
- Prefieres reinventar la rueda solo por el hecho de saber que también lo puedes hacer
- Tienes tu propio servidor?
- Sabes ingles y podrías obtener la información que necesitas en caso de que no este disponible en español?
- En tu empresa están de acuerdo en que cada programador nuevo o tus compañeros lean 579 paginas para poder trabajar en algún proyecto de la empresa?
- Tus clientes ó usuarios estarán dispuestos a esperar todo el tiempo que necesites para dar resultados?
- Conoces el balance entre tiempo de desarrollo, costo del proyecto y funcionalidad?

Saludos

Pdt: Un framework no puede descartarse usando argumentos como: No es PHP5, ó no es Zend, ó no es Orientado a Objetos, ó no es Conocido, ó "juanito" no lo pudo instalar, tenemos que investigar un poco más, no sabemos si por creer en cualquier cosa estamos dejando de encontrar la herramienta que necesitamos
__________________
Mi Nombre es Felipe: http://minombreesfelipe.blogspot.com/