Agregar nuevas restricciones

19 views
Skip to first unread message

Patricia

unread,
Aug 2, 2011, 2:05:07 PM8/2/11
to yuppfram...@googlegroups.com
Hola.
Estoy creando el modelo de una aplicación para probar el framework y necesito crear nuevas restricciones. En dónde debería agregarlas para no tocar el core del framework? (para no modificar el archivo core.validation.Constraints.class.php).

Gracias!

Pablo Pazos

unread,
Aug 2, 2011, 9:19:07 PM8/2/11
to yuppfram...@googlegroups.com
Hola Patricia, tenés varias opciones.

Si querés definir una restricción genérica para usar en cualquier aplicación, no hay problema en que la agregues a Constraints. Lo único que tenés que hacer es extender la clase Constraints e implementar el método public abstract function evaluate( $value );

Incluso si te parece que es algo bien genérico, podemos agregarlo al framework.

Si es algo particular, tenés 2 opciones. Si usás la validación solo en una clase persistente, podés definir la clase de tu restricción en la el mismo PHP donde está tu PersistentObject. Si usás la restricción en varias clases persistentes, podés crear tus clases que extienten Constraint en un directorio "constraints" en tu app, y luego es solo incluir las constraints en los PersistentObjects.

Espero que te ayude.

Saludos,
Pablo.

2011/8/2 Patricia <patricia...@gmail.com>
Hola.
Estoy creando el modelo de una aplicación para probar el framework y necesito crear nuevas restricciones. En dónde debería agregarlas para no tocar el core del framework? (para no modificar el archivo core.validation.Constraints.class.php).

Gracias!

--
Has recibido este mensaje porque estás suscrito al grupo "Yupp Framework PHP" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/yuppframeworkphp/-/i9IIQ8uHPpsJ.
Para publicar una entrada en este grupo, envía un correo electrónico a yuppfram...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a yuppframeworkp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/yuppframeworkphp?hl=es.



--
Atte.
Ing. Pablo Pazos Gutiérrez
LinkedIn: http://uy.linkedin.com/in/pablopazosgutierrez
Blog: http://informatica-medica.blogspot.com/
Sígueme en twitter: http://twitter.com/ppazos

Patricia

unread,
Aug 3, 2011, 9:11:04 AM8/3/11
to yuppfram...@googlegroups.com
Hola Pablo.

Bien, me aclaraste la duda. Quería saber si está contemplado en el framework, o como convención alguna manera de hacer esto. Me parece que voy a extender la clase Constraint en un directorio dentro de mi aplicación.
Te cuento que quiero validar varias cosas con expresiones regulares y las uso desde varias clases: una url, un nombre de dominio, un path con nombre de archivo y nro. de télefono. Si consideran que pueden incluírse en el framework, comentam como se hace y les paso el código. Estoy tratando de armar una aplicación sencilla donde mantener un registro de las actualizaciones y mantenimientos realizados a sitios web, generar listados de actualizaciones en un período y algunas cosas más.

Ya que estamos te comento que me parece muy bueno el framework, porque a diferencia de otros, además de generar cosas automáticamente para facilitar el trabajo, también me da la flexibilidad para adaptarlo y agregar lo que necesite, muy bueno!

Muchas gracias!
Patricia.

Pablo Pazos

unread,
Aug 3, 2011, 9:01:57 PM8/3/11
to yuppfram...@googlegroups.com
Hola!

2011/8/3 Patricia <patricia...@gmail.com>

Hola Pablo.

Bien, me aclaraste la duda. Quería saber si está contemplado en el framework, o como convención alguna manera de hacer esto.

La idea es dar flexibilidad, aunque no está en la doc, las opciones son esas 3 que te puse antes. Capaz debería agregarlas y ya quedan como convención :D
 
Me parece que voy a extender la clase Constraint en un directorio dentro de mi aplicación.
Te cuento que quiero validar varias cosas con expresiones regulares y las uso desde varias clases: una url, un nombre de dominio, un path con nombre de archivo y nro. de télefono.

Fijate que ya hay una Constraint matches, que le pasás una regexp, y te la chequea. En ese caso, te aconsejo que uses esta restricción, y que el valor que le pases como regexp lo tengas en alguna clase PHP, donde podés declarar todas las regexps que usás para validar usando constantes:

class ValidadoresDeFormato {

  const TELEFONO = '...';
  const URL = '...;
  ....
}

Y luego para usarla:

$this->addConstraints("unaurl", array(
   Constraint::match( ValidadoresDeFormato::URL )
));

Si consideran que pueden incluírse en el framework, comentam como se hace y les paso el código. Estoy tratando de armar una aplicación sencilla donde mantener un registro de las actualizaciones y mantenimientos realizados a sitios web, generar listados de actualizaciones en un período y algunas cosas más.

Buenísimo! No dudes en publicar todas tus dudas. Si querés, cuando la tengas armada la podés publicar como una Yupp App para que otros desarrolladores la bajen y la prueben.
 

Ya que estamos te comento que me parece muy bueno el framework, porque a diferencia de otros, además de generar cosas automáticamente para facilitar el trabajo, también me da la flexibilidad para adaptarlo y agregar lo que necesite, muy bueno!

Muchas gracias Patricia, creo que entre todos podemos ayudar a que sea mejor cada día (y nos haga la vida más sencilla).

Saludos,
Pablo.
 
Muchas gracias!
Patricia.

--
Has recibido este mensaje porque estás suscrito al grupo "Yupp Framework PHP" de Grupos de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a yuppfram...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a yuppframeworkp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/yuppframeworkphp?hl=es.

Patricia

unread,
Aug 4, 2011, 8:51:44 AM8/4/11
to yuppfram...@googlegroups.com
Buena idea!
Gracias

Pablo Pazos

unread,
Aug 5, 2011, 3:32:23 PM8/5/11
to yuppfram...@googlegroups.com
Me olvidé de comentarte, que la restricción de email es un ejemplo de regexp muy usada, por eso está en Constraints.
Puede ser que muchas de las regexps que definas también sean de uso muy común. Si las podés compartir, buenísimo!

Saludos,
Pablo.

2011/8/4 Patricia <patricia...@gmail.com>
Buena idea!
Gracias


--
Has recibido este mensaje porque estás suscrito al grupo "Yupp Framework PHP" de Grupos de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a yuppfram...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a yuppframeworkp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/yuppframeworkphp?hl=es.

Patricia

unread,
Aug 8, 2011, 8:21:39 AM8/8/11
to yuppfram...@googlegroups.com
Si, no hay problema!! Todavía las estoy probando y armado otras, en cuanto vea que funcionan bien, las comparto (en cuanto pueda dedicarle un poco de tiempo...).

Saludos Pablo

Patricia

unread,
Aug 9, 2011, 11:14:40 AM8/9/11
to yuppfram...@googlegroups.com
Una consulta más... siguiendo tu consejo, creé un directorio "validations" dentro de mi aplicación y creé una clase con las costantes que después llamo con match().

Al ingresar a las bases de datos desde yupp para crear las tablas, me da un error de ruta de inclusión errada, pero controlo los path y están bien...  a ver si podés saber si estoy haciendo algo mal? Gracias!

Copio una parte del error:

Error 500

Error interno del servidor
Aplicación: core
Controlador: core
Acción: dbStatus
YuppLoader::loadFile() - ruta de inclusion errada (mantenWeb/validation/mantenWeb.validation.ValidadoresDeFormato.class.php)
#0 ...\yupp\core\core.YuppLoader.class.php(189): YuppLoader->loadFile('mantenWeb/valid...', 'mantenWeb.valid...', 'class', 'ValidadoresDeFo...', 'mantenWeb.valid...')
...
...

y la línea de código que resalta es:

#189 $cl->loadFile($incPath, $package, 'class', $clazz, $fileName);

pabl...@gmail.com

unread,
Aug 9, 2011, 11:59:32 AM8/9/11
to Yupp Framework PHP
Hola Patricia

¿cómo es la línea donde ponés YuppLoader.load(...,...)?
> #189 *      $cl->loadFile($incPath, $package, 'class', $clazz, $fileName);
> *

Patricia

unread,
Aug 9, 2011, 1:07:06 PM8/9/11
to yuppfram...@googlegroups.com
La línea es:

YuppLoader::load('mantenWeb.validation','ValidadoresDeFormato');

pabl...@gmail.com

unread,
Aug 9, 2011, 2:00:39 PM8/9/11
to Yupp Framework PHP
Probá YuppLoader::load('apps.mantenWeb.validation',
'ValidadoresDeFormato');

Saludos,
Pablo.

Patricia

unread,
Aug 12, 2011, 10:52:38 AM8/12/11
to yuppfram...@googlegroups.com
Gracias, así anduvo !

Estaba viendo en las aplicaciones de ejemplo, que sólo en las clases del modelo los archivos se nombran sin el "app" al principio, pero en el resto de los casos empiezan con "app.". Esto es una convención del framework?

pabl...@gmail.com

unread,
Aug 12, 2011, 12:17:39 PM8/12/11
to Yupp Framework PHP
Esa es una inconsistencia que hay hace tiempo y que tengo pendiente
para corregir. Por ahora lo manejamos con la inconsistencia (que no
debe ser la única), y luego trato de corregirlas y aviso de los
cambios.

Saludos.
Reply all
Reply to author
Forward
0 new messages