際際滷

際際滷Share a Scribd company logo
仂亠仄 Mojolicious?
     仆舒仂仍亳亶 丿舒亳仍亳仆
      YAPC::Russia 2011
mojolicio.us
仂 亰仆舒亠, 仂 舒从仂亠
    Mojolicious?
仂 亳仗仂仍亰亠
 Mojolicious?
舒 从仂亞仂 仗仂于仍亳磿 ? :)
仂仂从仂
弌仂于亠仄亠仆仆亶 亳
   仄仂仍仂亟仂亶
于亠弍-亠亶仄于仂从
亠弍 于 从仂仂弍从亠!
Mojo::Base
Mojo::DOM, Mojo::JSON
   Mojo::UserAgent
     Mojo::IOLoop
    Mojo::Template
Mojo
 Mojolicious
Mojolicious::Lite
Test::Mojo
   ojo
     ...
385 于仂亠仂于
 88 仂从仂于
 仂 亟舒仆仆仄 github.com
亳 仂亟亳仆 丿舒亳仍亳仆 :-)
      仂 仄仂亠仄 仄仆亠仆亳
仂亠仄 于-舒从亳
   Mojolicious?
仂亞亟舒 亠 Dancer, Plack, Python 亳 Node.js
仂仄仂亞舒亠 亠亳
仗仂亳 仍ミ英 亰舒亟舒
     仂亠仄 Mojolicious?
舒亳仆舒 仂 仗仂仂亞仂
 舒亶舒 于 5 舒仆亳
     仂亠仄 Mojolicious?
tochkak.ru
use Mojolicious::Lite;

get '/'      => 'about/what' ;
get '/who' => 'about/who' ;
get '/what' => 'about/what' ;
get '/where' => 'about/where';
get '/code' => 'about/code' ;

app->log->level('error');

app->start;
舒从舒仆亳于舒 舒舒仗仂仄
c 5000+ 仗仂仍亰仂于舒亠仍礆亳
       仂亠仄 Mojolicious?
frodio.com
亳仍亳
亰从仂仗亠亳舒仍亳亰亳仂于舒仆仆仂亶
  亳亠仄仂亶 仗舒于仍亠仆亳
    亟仍 从亳仆仂亠舒仂于
       仂亠仄 Mojolicious?
db.dcp24.ru
 仗仂 从亳仗仂于
     仂亠仄 Mojolicious?
#!/usr/bin/env perl
use ojo;

g( 'http://bobina.pdj.ru/rss.xml' )
	

 ->dom
   	

 ->鍖nd( 'enclosure[url]' )
	

 ->each(sub {
	

 	

 say shift->attrs->{url}
	

 })
;
亳仍亳 TCP-从仍亳亠仆舒 亟仍
仂仆亳 舒亟亳仂-仗仂仂从仂于
     仂亠仄 Mojolicious?
my $url = Mojo::URL->new(
	

 'http://frod.io:8000/station20'
);
$loop->connect(
	

 address       => $url->host,
	

 port           => $url->port,
	

 on_connect => sub { ... },
    on_read        => sub { ... },
);
$loop->start;
on_connect => sub {
	

 	

 my ($self, $id) = @_;
	

 	

	

 	

 my $r = Mojo::Message::Request->new;
	

 	

 $r->headers->header(
           'Icy-MetaData' => 1
        );
	

 	

 $r->url( $url );
	

 	

	

 	

 $self->write($id, $r->to_string);
},
on_read => sub {
	

 my ($self, $id, $chunk) = @_;

	

 return unless my %tag =
	

 	

 $chunk =~ /Stream(w+)='(.*?)';/g;
	

	

 say $tag{Title};
},
仂 仂舒 仗仂
   亳舒亢亳仂于舒仆亳
     亳仍仄仂于 亟仍
亳仂于 从亳仆仂亠舒仂于
      仂亠仄 Mojolicious?
CopyDisk
Mojo::Base
  Mojo::Log
 MojoX::Run
Curses::Widgets
 舒从亢亠 亠 亟仍
  于亠弍-亠于亳仂于
    仂亠仄 Mojolicious?
use Test::More tests => 252;
use Test::Mojo;

my $t = Test::Mojo->new(app => 'App'); # App.pm
my $url = '/api';
# my $url = 'http://api.dev.frodio.com';

$t->get_ok( "$url/" )
  ->status_is( 200 )
  ->json_content_is({ hello => 'Hello, Frodio!' })
;
my $data = $t->post_form_ok("$url/like",
{station_id => 2}, {'X-Frodio-Auth' => $auth})
   ->status_is(200)
   ->tx->res->json
;
{
	

 is ref    $data, 'HASH';
	

 is exists $data->{ok}, 1;
	

 is exists $data->{count}, 1;
	

 is de鍖ned $data->{sign}, 1, 'Like station';
}
$t->post_form_ok("$url/logout/",
	

 {'X-Frodio-Auth' => $auth}
)
   ->status_is(200)
;
仂仍亳仆于仂 于仂亳
   亰舒亟舒  亠舒,
亳仗仂仍亰 Mojolicious
束亠亞亟舒 仂亠仍
仆舒亳 亟亠仍舒
     舒亶損
etnogenez.ru
亠弍仂仍仂亶 舒亶 
仗仂仍仆仂亠仆仆仂亶 仗舒仆亠仍
     仗舒于仍亠仆亳
26 仄仂亟仍亠亶 (140k), 91 舒弍仍仂仆 (408k), 16 舒弍仍亳
弌从舒 仗仂亠从舒
亠 仗亳 亳 亰舒仗从亳  仂 从仂仆 仗仂亠从舒
bin/
conf/
data/
lib/
log/
script/
t/
tmpl/
tmp/
bin/check.sh
bin/logs.sh
bin/mysql
bin/mysqldump
bin/restart.sh
bin/start.sh
bin/stop.sh
bin/start.sh
(
	

 # script/etnogenez daemon --reload
	

 starman --listen :3000 script/etnogenez
) >> log/error.log &
conf/app.conf
conf/mysql.conf
conf/nginx.conf
conf/app.conf
{
	

   secret => '',
	

   server => {
	

   	

 www => $ENV{DEV} ? 'http://...' : 'http:/...',
	

   	

 ...
	

   },
	

   session => { ... },
	

   log       => {
	

   	

 level => $ENV{DEV} ? 'debug' : 'warn',
	

   	

 path => 'log/app.log',
	

   }, ...
}
conf/mysql.conf
{
	

   drivername => 'mysql',
	

   user           => $ENV{DEV} ? 'dev' : '仆亠-dev',
	

   password       => '*',
	

   datasource => {
	

   	

 database => $ENV{DEV} ? 'dev' : '仆亠-dev',
	

   	

 host     => 'localhost',
	

   },
};
data/
 log/
tmp/
  t/
script/
弌舒仂于亶 从亳仗
亳 从 弍亳弍仍亳仂亠从舒仄, 仆舒仂亶从舒 仗亠亠仄亠仆仆
               仂从亢亠仆亳
use common::sense;
use lib qw(lib /tk/lib);

BEGIN {
	

 $ENV{DEV}++ if qx(pwd) =~ /dev/;
	

 $ENV{MOJO_MODE} ||= $ENV{DEV} ? 'dev' : 'production';
	

 $ENV{MOJO_TMPDIR} = 'tmp/upload';
	

 $ENV{MOJO_MAX_MESSAGE_SIZE} = 2 * 1024 ** 3;
};
$ENV{MOJO_APP} ||= 'App';

use Mojolicious::Commands;
Mojolicious::Commands->start;
lib/
App.pm
package App;
use Mojo::Base 'Mojolicious';

has conf => sub { do 'conf/app.conf' };
has db => sub { use Util; Util->db(
	

 do 'conf/mysql.conf'
) };

sub startup { ... }
use DBI 1.58; use DBD::mysql 4.004; use DBI::Util;

return DBI->connect(DBI::Util::_parse_cfg(
	

 $conf,
	

 {
	

 	

 RootClass => 'DBI::Util',
	

 	

 mysql_enable_utf8 => 1,
	

 	

 mysql_auto_reconnect => 1,
	

 }
));
select
query
   in
 limit
values
use dw;
Lazy-仂弍亠从舒, 于磶亳 parent/child 亳 仗仂亠亠
       仂仆亠从仆仂 仗仂亠从 亳
sub book { my $self = shift;
	

 SLICELY { $self->dw::g::part ('book_id') } 'id' => 'part' =>
	

 ...
}

sub part { my $self = shift;
	

 SLICELY { CHV {$_->[0]} $self->dw::g::book('id') } 'book_id'
=> 'book' =>
	

 ...
}
sub _list {
	

 my $self = shift;
	

 ...	

	

 return $self->dw->book(
	

 	

 $self->db->select(
	

 	

 	

 "select * from book where hidden=0
	

 	

 	

 order by $order $limit"
	

 	

 )
	

 );
}
bin/mysql
弌 弍舒亰仂亶 亟舒仆仆仂亶 舒弍仂舒 亠亠亰 从仂仆仂仍
舒仂亶从舒 仗亠亶,
仍仂亞仂于, 亠亳亶, 亳仗仂于
        startup
仂亟从仍ム亠仆亳亠
仗仍舒亞亞亳仆仂于 亳 亠仍仗亠仂于
        startup
$app->helper(db => sub { shift->app->db });

sub action {
	

 my $self = shift;
	

 # my $DB = $self->app->db;

	

 $self->db->select('...');
}
$app->helper(u => sub {
	

 	

 my $self = shift;
	

 	

 my $func = shift || return;
	

 	

	

 	

 return &{"Util::$func"};
	

 });

$self->u(iso2human => '...');

%=u iso2human => '...'
# 于 从舒亢亟仂仄 从仂仆仂仍仍亠亠
use Util;

# 于 舒弍仍仂仆亠 亳仍亳 从仂亟亠
Util::iso2human(...);

# 仂 boilercode 亳 仆亠从舒亳于仂
# 仗仂仂仄 亠仍仗亠
弍亳亠 亳
从仂仆亠从仆仂 仗仂亠从舒
     亠仍仗亠
Mojolicious::Plugin::UtilHelpers 亳 App::Helpers
亠 仂亠 仗仂亠从舒
        startup
route, bridge, waypoint,
    name, shortcut
     Mojolicious::Guides::Routing
my $ad = $r->route('/admin')->to->name('admin');
$ad->route('/login')->post->to('admin-enter#login');
	

my $a = $ad->bridge->to('admin-enter#check');

# shortcut / /sort /add /:id /:id/edit /:id/remove /:鍖lter
$a->crud($_ => "admin-$_") for qw(book part ...);

$a->route('/(*any)')->to('admin#not_found');
App::Helpers
舒亰仍亳仆亠 仂仄舒亳仂于舒仆亳, 舒弍仂 仂 仂从舒仄亳,
          仗仂于仂ム亳亠 亟亠亶于亳
$app->helper(format_mmss => sub {
	

   	

 my $self = shift;
	

   	

 my $int = shift || return '00:00';
	

   	

	

   	

 return sprintf "%02d:%02d",
	

   	

 	

 $int / 60, $int % 60;
	

   });
$app->helper(user_img => sub {
	

   	

 my $self = shift;
	

   	

 my $user = shift || $self->stash('USER');
	

   	

	

   	

 return $user->{avatar} || '/.../default.png';
	

   });
App::Index
        仂仆仂仍仍亠
$r->route->to('index#main');
package App::Index;
use App::Base -controller, with =>
['App::News', 'App::Book', 'App::Audio'];

sub main { ... }
package App::Index;
use Mojo::Base 'Mojolicious::Controller';
use common::sense;

use App::News;
use App::Book;
use App::Audio;

has news => sub { App::News->new(%{ +shift }) };
has book => sub { App::Book->new(%{ +shift }) };
has audio => sub { App::Audio->new(%{ +shift }) };
package App::Index;
use Mojo::Base 'Mojolicious::Controller';
use common::sense;

use App::News;
use App::Book;
use App::Audio;

__PACKAGE__->attr(news => sub { App::News->new
(%{ +shift }) });
__PACKAGE__->attr(book => sub { App::Book->new
(%{ +shift }) });
__PACKAGE__->attr(audio => sub { App::Audio->new
(%{ +shift }) };
Mojo::Base vs. App::Base
    common::sense, -controller, with
package App::Index;
use App::Base -controller, with =>
['App::News', 'App::Book', 'App::Audio'];

sub main { ... }
my $self = shift;
my $limit = $self->conf('limit')->{index};

$self->render('index',
	

 news => $self->news->_last(limit =>
$limit->{news}),
	

 book => $self->book->_list,
	

 part => $self->audio->_last(limit =>
$limit->{part}),
);
App::Book
  仂仆仂仍仍亠
package App::Book;
use App::Base -controller;

sub check { ... } # 亟仍 bridge

sub list { ... }

sub item { ... }

sub _list { ... } # 于仂亰舒舒亠 亟舒仆仆亠
sub check {
	

 my $self = shift;
	

	

 return 0 unless my $book = $self->dw->book(
	

 	

 $self->db->select(
	

 	

 	

 'select * from book where name=? limit 1',
	

 	

 	

 $self->stash('book_name')
	

 	

 )
	

 )->[0];
	

	

 $self->stash(book => $book);
	

 return 1;
}
sub item {
	

 my $self = shift;
	

 my $book = $self->stash('book');
	

 ...
}

# 仂亠

my $bn = $r->bridge('/book/:book_name')
->to('book#check');

$bn->route->to('book#item')->name('book');
tmpl/
index.html.ep
          丿舒弍仍仂仆
$r->route->to('index#main');
% layout 'default', title => '...';

<div id="column1">
% for (@$news) {
	

 %== include 'news/item.inc', item => $_
%}
</div>

<span class="date">
	

 %=u iso2humanM => $_->{published}
</span>

<span class="download_count">
	

 <%= format_digital($_->{listened}) %> 舒亰
</span>
$news
     vs.
stash 'news'
layouts/default.html.ep
layouts/default.mail.ep
  layouts/default.rss.ep
 layouts/admin.html.ep
etc/page.html.ep
etc/submenu.html.ep
admin/etc/sort.txt.ep
亳 于 从仂亠仄 仍舒亠
仍仂亢仆仂亶 仍仂亞亳从亳, 亠仄
   弍仂仍亠亠 SQL :-)
exception.html.ep
  exception.mail.ep
exception.dev.html.ep
% layout 'default', title => '弌舒仆亳舒 于亠仄亠仆仆仂
仆亠亟仂仗仆舒', simple => 1;

<div class="error_page">亳弍从舒 500. 弌舒仆亳舒
于亠仄亠仆仆仂 仆亠亟仂仗仆舒. 仂仗仂弍亶亠 仗仂亰亟仆亠亠.</
div>

% mail(to => conf('mail')->{devel}, template =>
'exception', format => 'mail');
stash 亳 defaults
弌仗舒于仂仆亳从亳 亳 舒弍仂舒  仆亳仄亳
include 'etc/vars'
舒仆亠 弍仍 舒弍仍仂仆, 从仂仂亶 仗仂亟从仍ム舒仍 于亠亰亟亠
# app.conf
defaults => {
	

 book_status => [
	

 	

 [soon => '仂仂于亳 从 亳亰亟舒仆亳'],
	

 	

 ...,
	

 	

 [new => '仂于亳仆从亳'],
	

 ],
	

 ...
}
# App.pm
if (my $d = $conf->{defaults}) {
	

 	

 $self->defaults( $d );
	

 	

	

 	

 for (keys %$d) {
	

 	

 	

 next unless ref $d->{$_} eq 'ARRAY';
	

 	

 	

 $self->defaults($_ . '_hash' => {
	

 	

 	

 	

 map { $_->[0] => $_->[1] }
	

 	

 	

 	

 @{ $d->{$_} }
	

 	

 	

 });
	

 	

 }
}
# 于 舒弍仍仂仆亠

@$book_status

# 亳仍亳

$book_status_hash->{new}
舒弍仂  仂仄舒仄亳
亊 仆亠 亳仗仂仍亰
仆亳从舒从亳 亞亠仆亠舒仂仂于
       仂仄
个仂仄 亟仍
 仗仂仍亰仂于舒亠仍亠亶 亳
仄仂亟亠仍 亟舒仆仆 
  舒亰仆亠 于亠亳
# App::Admin::Book
sub add {
	

 my $self = shift;
	

 return $self->form unless $self->validate->book;
	

 # 舒弍仂舒  仗仂仍亠仆仆仄亳 亟舒仆仆仄亳
}

sub edit {
	

 my $self = shift;
	

 my $item = $self->stash('item'); # 亠亠亰 bridge
	

	

 return $self->form unless $self->validate->book;
	

 ...
}
admin/book/
form.html.ep
丿舒弍仍仂仆 仄仂亢亠 弍 仂亟亳仆
 亳仂亞亠 仗仂仍舒ム
  仂亠仆 仗仂亠
  从仂仆仂仍仍亠 亳
     舒弍仍仂仆
 于亠 仗仂亠从 于 亠仍仂仄
仗仂仄仂亞舒亠仍仆亠
      从亳仗
舒仍从舒 仗仂 仗仂仍亰仂于舒亠仍礆, 亞舒亳从亳 亟仍 munin,
                cron-从亳仗
# script/munin/user.pl

use MojoX::Loader;
my $user = MojoX::Loader->load(
	

 controller => 'App::User'
);

say $user->_total;

# $user->db->select(...);
# $user->conf('server')->{www}
# $user->render_partial('...', stash1 => '..', stash2 => '..')
# $user->mail(to => '..', template => '..')
MojoX::Loader
https://github.com/sharifulin/mojox-loader
Mojolicious 仂亠仆
亟仂弍仆亶 亳 仗仂仂亶
   亳仆仄亠仆
弌 弍仂仍亳仄 从仂仍亳亠于仂仄
  仂于亠仄亠仆仆 亳
丱仂仂亳亶 open source
     仗仂亠从
从亳于仆仂亠 仂仂弍亠于仂
 于 仗亳仆亳仗亠
舒亟亠从于舒亶 舒于仂 :-)
束丕亟亳于仍亠仆 仆舒从仂仍从仂
仍亠亞从仂 亳舒亠 从仂亟,
 亟舒亢亠 亟仍 亠仍仂于亠从舒,
从仂仂亶 Perl 于亳亟亳
于仂仂亶 舒亰 于 亢亳亰仆亳損
仂仗仂弍亶亠
Mojolicious 仗礆仂
     亠亶舒!
亠 弍亟亠
束I am just slow to get
      things...損
       http://frd.io/gf6
use Mojolicious or die;
use Perl or die;
JFDI
弌仗舒亳弍仂 亰舒 于仆亳仄舒仆亳亠!
     仆舒仂仍亳亶 丿舒亳仍亳仆
      YAPC::Russia 2011
Mojolicous by @vti

More Related Content

What's hot (20)

丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC, 丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
zfconfua
PHP basic
PHP basicPHP basic
PHP basic
Noveo
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
Oleg Poludnenko
Psgi app
Psgi appPsgi app
Psgi app
und3f
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Stepan Tanasiychuk
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
Kolya Korobochkin
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
Ruslan Begaliev
弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
 弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers 弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
Positive Hack Days
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
Moscow.pm
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
ygoltsev
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
Moscow.pm
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
Positive Hack Days
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
Nikita Shilnikov
丼仂 仆仂于仂亞仂 于 PHP-5.3
丼仂 仆仂于仂亞仂 于 PHP-5.3 丼仂 仆仂于仂亞仂 于 PHP-5.3
丼仂 仆仂于仂亞仂 于 PHP-5.3
phpclub
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
megakott
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
Paul Klimov
弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2
Paul Klimov
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
Chef 从仂仂从仂 仂弍 亳仆舒从亠
Chef 从仂仂从仂 仂弍 亳仆舒从亠Chef 从仂仂从仂 仂弍 亳仆舒从亠
Chef 从仂仂从仂 仂弍 亳仆舒从亠
Andrey Subbota
Perl: Symbol table
Perl: Symbol tablePerl: Symbol table
Perl: Symbol table
Elena Shishkina
丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC, 丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
丼 仍仂亢仆亠亠 亠仄 Singleton: 舒仆仆仂舒亳亳, IOC,
zfconfua
PHP basic
PHP basicPHP basic
PHP basic
Noveo
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
仍亠从亠亶 仍亠舒仆仂于: 25 仗亳亳仆 仗仂仗仂弍仂于舒 Laravel
Oleg Poludnenko
Psgi app
Psgi appPsgi app
Psgi app
und3f
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Symfony2. 舒 亠仄 仄仂亢仆仂 从仂仆仂仄亳 于亠仄 仗亳 舒亰舒弍仂从亠?
Stepan Tanasiychuk
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
弌舒 亳 仆亠仆舒于亳 于 亳仂亟仆仂仄 从仂亟亠
Kolya Korobochkin
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
亳舒 亟舒: 于亠亟亠仆亳亠 于 HTTP API WordPress
Ruslan Begaliev
弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
 弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers 弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
弍亠亰仂仗舒仆仂仄 亳仗仂仍亰仂于舒仆亳亳 PHP wrappers
Positive Hack Days
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
亳仆舒仄亳亠从亳亶 从仂亟: 仄仂亟亳亳亳亠仄 舒弍仍亳 亳仄于仂仍仂于 于仂 于亠仄 于仗仂仍仆亠仆亳. 仍亠仆舒 丿亳...
Moscow.pm
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
ygoltsev
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
亠 于亠 仆亳从仂仄 亳仍亳 舒亰舒弍仂从舒 亠从亳于仆 仗亳仍仂亢亠仆亳亶 (舒从 仗亳舒 仗仂 仆舒仂亠仄...
Moscow.pm
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
豫亳亶 仂仍亠于 - 弌亠于亳 PLWWW
Positive Hack Days
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
仂弍亠仆仆仂亳 仂于仄亠仆仂亶 舒弍仂 Ruby 亳 Oracle
Nikita Shilnikov
丼仂 仆仂于仂亞仂 于 PHP-5.3
丼仂 仆仂于仂亞仂 于 PHP-5.3 丼仂 仆仂于仂亞仂 于 PHP-5.3
丼仂 仆仂于仂亞仂 于 PHP-5.3
phpclub
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
megakott
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
Paul Klimov
弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2
Paul Klimov
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
Chef 从仂仂从仂 仂弍 亳仆舒从亠
Chef 从仂仂从仂 仂弍 亳仆舒从亠Chef 从仂仂从仂 仂弍 亳仆舒从亠
Chef 从仂仂从仂 仂弍 亳仆舒从亠
Andrey Subbota

Viewers also liked (9)

Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
Kar Juan
Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101
hendrikvb
Developing apps using Perl
Developing apps using PerlDeveloping apps using Perl
Developing apps using Perl
Anatoly Sharifulin
TELEMEDICINE OUR VISION TO FUTURE
TELEMEDICINE OUR VISION TO FUTURE TELEMEDICINE OUR VISION TO FUTURE
TELEMEDICINE OUR VISION TO FUTURE
Society for Microbiology and Infection care
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
Yusuke Wada
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojo
bpmedley
Mojo as a_client
Mojo as a_clientMojo as a_client
Mojo as a_client
Marcus Ramberg
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
Kar Juan
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
Helge Tenn淡
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
Kar Juan
Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101
hendrikvb
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
Yusuke Wada
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojo
bpmedley
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
Kar Juan
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
Helge Tenn淡

Similar to Mojolicious (20)

仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
Alexey Kinyov
Behat 于 PHP 亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
Behat 于 PHP  亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 MinkBehat 于 PHP  亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
Behat 于 PHP 亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
tyomo4ka
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
Yura Bogdanov
Crazy owl yii1=> yii2
Crazy owl yii1=> yii2Crazy owl yii1=> yii2
Crazy owl yii1=> yii2
Alexei Smolyanov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仍亠弍 丐舒舒仂于
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
drupalconf
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
drupalconf
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
OdessaJS Conf
Easy authcache 2 从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
Easy authcache 2   从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂Easy authcache 2   从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
Easy authcache 2 从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
PVasili
亳从仂亠亶仄于仂从亳 PHP
亳从仂亠亶仄于仂从亳 PHP亳从仂亠亶仄于仂从亳 PHP
亳从仂亠亶仄于仂从亳 PHP
Ekaterina Giganova
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
Alexander Makarov
BDD 亟仍 PHP 仗仂亠从仂于
BDD 亟仍 PHP 仗仂亠从仂于BDD 亟仍 PHP 仗仂亠从仂于
BDD 亟仍 PHP 仗仂亠从仂于
Konstantin Kudryashov
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
DSLs 于 Perl
DSLs 于 PerlDSLs 于 Perl
DSLs 于 Perl
Ruslan Zakirov
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
Ilya Chesnokov
MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?
Ivan Klimchuk
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
Magento Dev
仆仄亠仆亳亶 仂
仆仄亠仆亳亶 仂仆仄亠仆亳亶 仂
仆仄亠仆亳亶 仂
Roman Dvornov
仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
仍亳-亟仂仄亠仆仆仂 于 Django 仗仂亠从亠
Alexey Kinyov
Behat 于 PHP 亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
Behat 于 PHP  亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 MinkBehat 于 PHP  亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
Behat 于 PHP 亳仗仂仍亰仂于舒仆亳亠仄 Behat 亳 Mink
tyomo4ka
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
亅亠从亳于仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 仆舒 NodeJS
Yura Bogdanov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仍亠弍 丐舒舒仂于
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
drupalconf
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
drupalconf
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
OdessaJS Conf
Easy authcache 2 从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
Easy authcache 2   从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂Easy authcache 2   从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
Easy authcache 2 从亳仂于舒仆亳亠 亟仍 pro. 仂亟亳仂仆仂于 亞仂
PVasili
亳从仂亠亶仄于仂从亳 PHP
亳从仂亠亶仄于仂从亳 PHP亳从仂亠亶仄于仂从亳 PHP
亳从仂亠亶仄于仂从亳 PHP
Ekaterina Giganova
BDD 亟仍 PHP 仗仂亠从仂于
BDD 亟仍 PHP 仗仂亠从仂于BDD 亟仍 PHP 仗仂亠从仂于
BDD 亟仍 PHP 仗仂亠从仂于
Konstantin Kudryashov
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
舒亰舒弍仂从舒 仆舒 Perl 仗仂亟 Raspberry PI
Ilya Chesnokov
MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?
Ivan Klimchuk
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
Magento Dev
仆仄亠仆亳亶 仂
仆仄亠仆亳亶 仂仆仄亠仆亳亶 仂
仆仄亠仆亳亶 仂
Roman Dvornov

Mojolicious