SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Movable Type PHP
API
柳下 剛利
Movable Type は
今年の10月で12周年
データとロジックが分離
パブリッシングシステム
PHP API の登場は
3.1 (2004.10)
ダイナミックパブリッシング
• ブラウザからのリクエストの際に
HTML を出力する機能
• 再構築負荷の軽減
アクセス頻度の低いページに利用
ダイナミックパブリッシングの処理 (1)
• 404 エラーをフックして処理を実行
DirectoryIndex index.php index.html index.htm /5.2.7/01/02/mtview.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)(?.*)?$ /5.2.7/01/02/mtview.php$2 [L,QSA]
ダイナミックパブリッシングの処理 (2)
• mtview.php
• リクエストからテンプレート情報取得
• Smarty を利用して表示
<?php
include('/Users/taketoshi/Sites/5.2.7/mt/php/mt.php');
$mt = MT::get_instance(3, '/Users/taketoshi/Sites/5.2.7/mt/mt-config.cgi');
$mt->view();
?>
ダイナミックパブリッシングの処理 (3)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
<$mt:Include module="HTMLヘッダー"$>
<title><$mt:BlogName encode_html="1"$>: <$mt:ArchiveTitle$>アーカイブ</
title>
ダイナミックパブリッシングの処理 (4)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
<?php $this->_tag_stack[] = array("mtinclude", array (
'module' => 'HTMLヘッダー',
)); echo multiblog_MTInclude(array('module' => "HTMLヘッダー"), $this);
array_pop($this->_tag_stack); ?>
<title><?php $this->_tag_stack[] = array("mtblogname", array (
'encode_html' => '1',
)); echo ((is_array($_tmp=smarty_function_mtblogname(array(), $this))) ?
$this->_run_mod_handler('encode_html', true, $_tmp, '1') :
smarty_modifier_encode_html($_tmp, '1')); array_pop($this->_tag_stack); ?>
: <?php $this->_tag_stack[] = array("mtarchivetitle", array (
)); echo smarty_function_mtarchivetitle(array(), $this); array_pop($this-
>_tag_stack); ?>
アーカイブ</title>
ダイナミックパブリッシングの処理 (5)
<?php
function smarty_function_mtblogname($args, &$ctx) {
// status: complete
// parameters: none
$blog = $ctx->stash('blog');
return $blog->blog_name;
}
?>
PHP からの利用<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="<mt:PublishCharset />">
<title>#02</title>
</head>
<body>
<p>Display Name of author_id = 1</p>
<?php
$MT_PHP = '<mt:CGIServerPath />/php/mt.php';
$MT_CFG = '<mt:ConfigFile />';
include( $MT_PHP );
$mt = MT::get_instance();
require_once('<mt:CGIServerPath />/php/lib/class.mt_author.php');
$author = new Author;
if ( $author->Load('author_id=1') ) {
echo " <p>Display Name: ".$author->nickname."</p>";
}
?>
</body>
</html>
Movable Typa PHP API
• PHP から MT オブジェクトへのアクセス
• get_instance 後にクラスを require
• オブジェクトを取得するだけで OK
• テンプレートデータを利用するために
Smarty を利用して出力

Weitere ähnliche Inhalte

Ähnlich wie Movable Type PHP API について - MTCafe Saitama 2013

PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
Masaki Takeda
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)
Fumio SAGAWA
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
Tusyoshi Matsuzaki
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 

Ähnlich wie Movable Type PHP API について - MTCafe Saitama 2013 (20)

スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Movable Type PHP API について - MTCafe Saitama 2013