Soumettre la recherche
Mettre en ligne
MobaSiF::Template Introduction
•
4 j'aime
•
1,596 vues
Tadashi Matsuda
Suivre
MobaSiF::Template introduction on YAPC::Asia 2009 at 2009.09.10
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 52
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Sql php-vibrant course-mumbai(1)
Sql php-vibrant course-mumbai(1)
vibrantuser
PHP Output Buffering
PHP Output Buffering
Dave Ross
How PHP Works ?
How PHP Works ?
Ravi Raj
1. MySql plugins
1. MySql plugins
Roland Bouman
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API Mimarisi
Behram ÇELEN
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
rivierarb
A History of PHP
A History of PHP
Xinchen Hui
PHP language presentation
PHP language presentation
Annujj Agrawaal
Recommandé
Sql php-vibrant course-mumbai(1)
Sql php-vibrant course-mumbai(1)
vibrantuser
PHP Output Buffering
PHP Output Buffering
Dave Ross
How PHP Works ?
How PHP Works ?
Ravi Raj
1. MySql plugins
1. MySql plugins
Roland Bouman
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API Mimarisi
Behram ÇELEN
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
rivierarb
A History of PHP
A History of PHP
Xinchen Hui
PHP language presentation
PHP language presentation
Annujj Agrawaal
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Uilian Ries
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
Ryan Weaver
All about Erubis (English)
All about Erubis (English)
kwatch
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
Benny Siegert
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
jeresig
php 1
php 1
tumetr1
Living With Legacy Code
Living With Legacy Code
Rowan Merewood
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
ObjectAutomation2
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Wim Godden
Merb
Merb
Yehuda Katz
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
Sam Keen
PHP
PHP
sometech
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Jeffrey Clark
Node.js basics
Node.js basics
Ben Lin
The Skinny on Slim
The Skinny on Slim
Eric Mulligan
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
Brad Pillow
From CakePHP to Laravel
From CakePHP to Laravel
Jason McCreary
Tuning web performance
Tuning web performance
George Ang
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Contenu connexe
Similaire à MobaSiF::Template Introduction
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Uilian Ries
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
Ryan Weaver
All about Erubis (English)
All about Erubis (English)
kwatch
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
Benny Siegert
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
jeresig
php 1
php 1
tumetr1
Living With Legacy Code
Living With Legacy Code
Rowan Merewood
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
ObjectAutomation2
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Wim Godden
Merb
Merb
Yehuda Katz
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
Sam Keen
PHP
PHP
sometech
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Jeffrey Clark
Node.js basics
Node.js basics
Ben Lin
The Skinny on Slim
The Skinny on Slim
Eric Mulligan
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
Brad Pillow
From CakePHP to Laravel
From CakePHP to Laravel
Jason McCreary
Tuning web performance
Tuning web performance
George Ang
Similaire à MobaSiF::Template Introduction
(20)
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
All about Erubis (English)
All about Erubis (English)
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
php 1
php 1
Living With Legacy Code
Living With Legacy Code
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Merb
Merb
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
PHP
PHP
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Node.js basics
Node.js basics
The Skinny on Slim
The Skinny on Slim
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
From CakePHP to Laravel
From CakePHP to Laravel
Tuning web performance
Tuning web performance
Dernier
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Dernier
(20)
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
MobaSiF::Template Introduction
1.
MobaSiF::Template DeNA -
Tadashi Matsuda - bobpp bobpp+yapc@bobpp.jp YAPC::Asia 2009 - 2009.09.10
2.
• • MobaSiF::Template
/ • • •
3.
•
( ) • bobpp ( ) • http://bobpp.jp/ •( ) • (http://mbok.jp)
4.
YAPC! • YAPC • •
5.
Check this! •Twitter: BoBpp
•
6.
MobaSiF
7.
Moba* Simple Framework
8.
Moba* •
• 2003 • •5 PV/day • and more...
9.
Moba* Simple Framework
10.
Mobile Simple Framework
11.
12.
YAPC::Asia 2008
13.
MobaSiF::Template
14.
MTemplate • MobaSiF::Template • MobaSiF •
15.
MobaSiF::Template •
(MobaSiF::*) • github • CPAN • •
16.
•
• MobaSiF::Template • • MobaSiF::Template::Compiler •
17.
18.
HTML Template (*.html)
19.
HTML
Template (*.html) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler precompile compile Include Template (*.txt/html)
20.
HTML
Compiled Template Template (*.html) (*.bin) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler precompile compile Include Template (*.txt/html)
21.
HTML
Compiled Template Template (*.html) (*.bin) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler MobaSiF::Template precompile compile insert / render Include Output Template (*.html) (*.txt/html)
22.
HTML
HTML Compiled HTML HTML Template Template Template Template Template (*.html) (*.html) (*.bin) (*.html) (*.html) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler MobaSiF::Template precompile compile insert / render Include Output Template Compile Command (*.html) (*.txt/html)
23.
•
• • • • • URL Encode •
24.
$ cpan cpan> install
MobaSiF::Template
25.
<
: > <!-- Escape --> $=h:escape_string$ <!-- Escape (bypass) --> $=b:not_escape_data$ <!-- URL Encode --> $=e:url_encode_string$
26.
<
: > $ if (val > 10) { $ val 10 $ } elsif (val > 5) { $ val 5 $ } else { $ val 5 $}$
27.
<
: > $ loop (list) { $ $=h:id$ / $=h:key$ / $=h:value$ $}$
28.
<
> use MobaSiF::Template::Compiler; MobaSiF::Template::Compiler::compile( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin” );
29.
<
> use MobaSiF::Template; my $param = +{ hoge => 1, fuga => [ +{ id => 1, value => ‘A’ }, +{ id => 2, value => ‘B’ }, ] }; print MobaSiF::Template::insert( “/path/to/compiled_binary_file.bin”, $param);
30.
use MobaSiF::Template; my $param
= +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
31.
use MobaSiF::Template;
0 my $param = +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
32.
use MobaSiF::Template;
1 down 0 my $param = +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
33.
34.
35.
Benchmark! <Rivals> • Template
Toolkit • Tenjin • HTML::Template::Pro • MobaSiF::Template
36.
Benchmark •
/ • 10,000 qps
37.
Machine • MacBook • OS
X 10.5 Leopard • perl v.5.8.9 • 2.4GHz Core2 Duo • 4GB Memory
38.
Result.
Benchmark#1
39.
Result.
Benchmark#1 0 5000.00 10000.00 15000.00 20000.00 Template Toolkit 585.8 Tenjin 2421.3 HTML::Template::Pro 6451.6 MobaSiF::Template 17543.9
40.
41.
binary template /
XS
42.
binary template •
(option)... • • XS
43.
XS • mmap •
44.
45.
NULL
46.
PLAIN REPLACE
IF/ELSE LOOP / etc. NULL
47.
• •
View(Template) =
48.
• Pre-Compiler • Mobile
Pre-Compiler • compile files command • tests! •
49.
50.
• •
51.
CPAN / github •
http://search.cpan.org/~bobpp/MobaSiF- Template/ • http://github.com/bobpp/perl-MobaSiF- Template/
Télécharger maintenant