[caracas-pm] Template Toolkit

Alejandro Imass ait at p2ee.org
Thu Oct 20 15:15:16 PDT 2011


2011/10/20 jose francisco luis medina <luisjf1983 at gmail.com>:
> justamente estaba analizando un poco con esas relaciones has_many y
> belong_to ellas me permitirian precindir de relaciones directamente en mi
> DB?
>

nope.

Primero crea tu modelo con todas las de la ley. De hecho, debes tener
integridad referencial declarada para que el loader pueda crear las
clases con las relaciones correctas.

Eso no lo tienes que hacer a mano aunque no está demás que aprendas
como crear ResultSources a mano.

> adicionalmente, cual es la diferencia principal de crear statis o dynamic el
> modelo?
>

Las clases se pueden crear al cargar la apliucación pero luego pierdes
la posibilidad de extenderlas de manera declarativa en un directorio
aparte llamado ResultSet.

Cuando usas un modelo estático con los helpers de Catalyst se crea un
directorio Schema y un sub-direcorio con cada modelo. Puedes cambiar
tu modelo de BD y luego correr el helper otra vez y esas clases se
re-crean

Extender esas clases es tan fácil como escribir debajo de la linea
punteada (directamente en la lcase) o la forma preferida es crear un
directorio llamado ResultSet al mismo nivel que Result y crear las
clases con el mismo nombre alli. Eso está en el cookbook de DBIC, y
cómo Cat usa load_namespaces para los modelos estáticos funciona en
cat tambien ;-) :

busca Predefined Seearches en en cookbook de dbic:

If you’re using "load_namespaces" in DBIx::Class::Schema, simply place
the file into the "ResultSet" directory next to your "Result"
directory, and it will be automatically loaded.


> El 20/10/2011 17:09, "Alejandro Imass" <ait at p2ee.org> escribió:
>
> 2011/10/20 jose francisco luis medina <luisjf1983 at gmail.com>:
>
>> gracias por sus consejos, lo tomare en cuenta, de incluso empece hoy por
>> el
>> DBIx:Class, realment...
>
> DBIC es como cualquier otro ORM
>
> http://en.wikipedia.org/wiki/Object-relational_mapping
> http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software
>
> Lo que sucede es que DBIC es uno de los más formales que yo he
> trabajado puesto que realmente trata de  mantenerte pensando en Perl.
>
> Al principio es un poco cuesta arriba comprenderlo bien ya que es
> _realmente_  un ORM como tal y no como muchos otros que son capas muy
> finas que arropan el SQL pero no lo eliminan por completo.
>
> El manejo de relaciones (has_many, belongs_to, etc.) y la posibilidad
> de pre-fetching son varias de las cosas por la cuales prefiero a DBIC
> sobre muchos otros. Sé de primera mano que aquí en esta lista hay
> verdaderos expertos en DBIC y que seguramente estarán más que
> dispuestos a ayudarte con este tema.
>
> Como consejo, trata de usar modelos estáticos en la forma de schema
> classes usando el helper, por ejemplo:
>
> script/[app]_create.pl model [name] DBIC::Schema
> [name]::Schema::[name] create=static  dbi:Pg:dbname=[yourdb] $USER
> $PASS
>
> Y si usas esquemas de Pg también son soportados así (esto no está en
> ningún manual AFAIK):
>
> script/[app]_create.pl model [name] DBIC::Schema
> [name]::Schema::[name] create=static  dbi:Pg:dbname=[yourdb] $USER
> $PASS "{loader_options=>{db_schema=>'SCHEMA'}}"
>
> donde SCHEMA es el nombre del esquema Pg ;-)
>
>
>> El 20/10/2011 16:45, "Luis Muñoz" <lem at itverx.com.ve> escribió:
>>
>>
>> On Oct 20, 2011, at 4:16 P...
>
>> _______________________________________________
>> caracas-pm mailing list
>> caracas-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/caracas-pm
>>
>


More information about the caracas-pm mailing list