Dancer und DBIx::Class

45 %
55 %
Information about Dancer und DBIx::Class
Programming

Published on March 28, 2014

Author: linuxia

Source: slideshare.net

Description

DBIx::Class ist mit Sicherheit einer der größten Schätze von "Modern Perl"
und bietet schnelle und komfortable Datenbankabfragen.

Ebenso erleichtert Dancer das Erstellen von Webanwendungen mit einer leicht
verständlichen Programmierung.

Wie können beide zusammen genutzt werden? Zunächst mit dem DBIC Plugin für
Dancer. Mit diesem können mehrere DBIx::Class Schemas innerhalb der
Dancer-Anwendung verwenden werden.

Um auch die Dancer-Sessions in der Datenbank zu speichern, habe ich eine Engine für Dancer und DBIC geschrieben.

Außerdem werde ich ein Projekt vorstellen, mit dem man einfach den Inhalt
von Datenbanken mittels eines DBIx::Class Schemas editieren kann.

Dancer und DBIx::Class Stefan Hornburg (Racke) racke@linuxia.de 16. Deutscher Perl-Workshop, Hannover, 27. März 2013 racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

CGI.pm must die ... racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

... and we bury DBI alive! racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Dancer und DBIx::Class racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Anwendungen racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

eCommerce Software Magento Interchange6 racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Datenbankadministration phpmyadmin phppgadmin TableEditor racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

TableEditor Features Unterstützung mehrerer Datenbanksysteme MySQL, PostgreSQL, ... höherer Abstraktionslevel modernes Frontend wenig Quellcode “einfache” Installation racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Eingabe Datenbankparameter racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Ansicht Produkte racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Ansicht Produkt racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Beziehung Orderline racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Übersicht Dancer::Plugin::DBIC Anwendung Konfiguration UTF-8 Schema erzeugen racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

DBIx::Class ohne Dancer Plugin use Interchange6 : : Schema ; $schema = Interchange6 : : Schema−>connect ( . . . ) ; $schema−>r e s u l t s e t ( ’ User ’)−>search ( { . . } ) ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

DBIx::Class mit Dancer Plugin use Dancer : : Plugin : : DBIC ; schema−>r e s u l t s e t ( ’ User ’)−>search ( { . . } ) ; r e s u l t s e t ( ’ User ’)−>search ( { . . } ) ; rset ( ’ User ’)−>search ( { . . } ) ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Konfiguration plugins : DBIC : default : dsn : dbi : mysql : interchange6 user : racke pass : nevairbe schema_class : Interchange6 : : Schema racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Mehrere Schemas plugins : DBIC : default : dsn : dbi : mysql : interchange6 user : racke pass : nevairbe schema_class : Interchange6 : : Schema legacy : dsn : dbi : mysql : interchange5 user : racke pass : nevairbe schema_class : Interchange5 : : Schema racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Mehrere Schemas use Dancer : : Plugin : : DBIC ; schema( ’ legacy ’)−> r e s u l t s e t ( ’ UserDb ’)−>search ( { . . } ) ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

UTF-8 für MySQL plugins : DBIC : default : dsn : dbi : mysql : interchange6 user : racke pass : nevairbe schema_class : Interchange6 : : Schema options : mysql_enable_utf8 : 1 racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Schema dynamisch erzeugen schema_class fehlt in Konfiguration DBIx::Class::Schema::Loader Test und Entwicklung TableEditor racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Übersicht Dancer::Session::DBIC Engines Konfiguration Serialisierung Sitzungsablauf racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Engines Templates TT, Xslate, Flute, ... Sitzungen (Sessions) Storable, Database, DBIC Logger File, Syslog Serialisierer JSON, YAML, XML racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Konfiguration session Name der Sessionengine, hier DBIC session_options Optionen session_expires Ablaufzeit der Session racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Konfiguration session : "DBIC" session_options : dsn : dbi : mysql : interchange6 user : racke pass : nevairbe schema_class : Interchange6 : : Schema r e s u l t s e t : Session id_column : sessions_id data_column : session_data session_expires : 12 hours racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Konfiguration set session => ’DBIC ’ ; set session_options => {schema => schema } ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Beispieltabelle CREATE TABLE ‘ sessions ‘ ( ‘ sessions_id ‘ varchar (255) NOT NULL, ‘ session_data ‘ t e x t NOT NULL, ‘ created ‘ datetime NOT NULL, ‘ last_modified ‘ datetime NOT NULL, PRIMARY KEY ( ‘ sessions_id ‘ ) ) ENGINE=InnoDB ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Serialisierer set ’ session_options ’ => { schema => schema , s e r i a l i z e r => sub { YAML: : Dump(@_) ; } , d e s e r i a l i z e r => sub { YAML: : Load (@_) ; } , } ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Sitzungsablauf alte Sitzungen aus Datenbank löschen Interchange6::Schema::Resultset::Session $schema−>r e s u l t s e t ( ’ Session ’)−>expire ( ’ 12 hours ’ ) ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Übersicht TableEditor Installation Frontend Anmeldung Beziehungen Einschränkungen Konfiguration racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Installation g i t clone https : / / github .com/ interchange / TableEditor cd TableEditor cpanm . . / bin / app . pl racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Treiber DBD::mysql DBD::Pg ... racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Frontend Angular Routes für das Frontend XHR-Abfragen an REST API JSON Bootstrap Theme racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Routes get ’ / : class / : id ’ => require_login sub { # r e t r i e v e database record and add r e l a t i o n s h i p s . . . return to_json ( $data , { allow_unknown => 1 } ) ; } ; racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Anmeldung Dancer::Plugin::Auth::Extensible Provider Unix DBIC Datenbank (geplant) racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Beziehungen might_have has_many belongs_to many_to_many racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Einschränkungen Primärschlüssel für eine Spalte Geschwindigkeit (komplexe Schemas) Fehlerbehandlung racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Konfiguration Auth::Extensible DBIC racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Weitere Features Suche (Solr) Auswahl Schema racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Entwicklung https://github.com/interchange/TableEditor racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Dancer2 Plugin::DBIC https://metacpan.org/pod/Dancer2::Plugin:: DBIC Session::DBIC noch nicht portiert TableEditor noch nicht portiert racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Slides Slides: http://www.linuxia.de/talks/pws2014/ dancer-dbic-de-beamer.pdf racke Dancer und DBIx::Class 16. Deutscher Perl-Workshop, Hannover, 27. März / 41

Add a comment

Related presentations

Curso básico de programación por medio del lenguaje PHP, utilzando el motor de bas...

Exercício de lógica (num pequeno ginásio os cursos de português, geografia, inglês...

diseno de prototipo de un taller mecanico

Predictably

Predictably

March 28, 2014

Related pages

GPW2014 S2E09: Dancer und DBIx::Class - Stefan Hornburg ...

Skip navigation Upload. Sign in
Read more

Perl Dancer Conference 2015 | DBIx::Class Training

Perl Dancer Conference 2015. ... Hands-on DBIx::Class Training with Stefan Hornburg (Racke), Peter Mottram, Sam Batschelet and Peter Rabbitson (ribasushi).
Read more

Dancer & DBIx - YouTube

NLPW::2014::Utrecht — Nederlandse Perl Workshop — Utrecht — 25 april 2015 Stefan Hornburg — Dancer & DBIx::Class.
Read more

Dancer::Plugin::DBIC - DBIx::Class interface for Dancer ...

To install Dancer::Plugin::DBIC, simply copy and paste either of the commands in to your terminal. cpanm. cpanm Dancer::Plugin::DBIC. CPAN shell. perl ...
Read more

Using DBIx::Class within a Dancer application | PerlDancer ...

Using DBIx::Class within a Dancer application. DBIx::Class, also known as DBIC, is one of the many Perl ORM (Object Relational Mapper), but it's commonly ...
Read more

Dancer2::Plugin::DBIC - DBIx::Class interface for Dancer2 ...

DBIx::Class interface for Dancer2 applications ... Dancer2-Plugin-DBIC-0.0011
Read more

Video: Redesign — Dancer, DBIx::Class and Syntax ...

I am blogging about redeveloping this site. Today’s installment is a bit broken. As it turns out screenr cuts you off after 5 minutes! And I am a bit ...
Read more

DBIx::Class - Wikipedia, the free encyclopedia

DBIx::Class (often abbreviated as DBIC) is an object-relational mapper for Perl. ... It is popular in Web application frameworks such as Catalyst and Dancer.
Read more

Perl Dancer Conference 2015 | Submit a talk proposal

Talks may be on any topic related to Perl, Dancer or DBIx::Class in some way or of general interest for IT people. Possible topic areas include:
Read more